WebAuthN - авторизация без пароля
Некоторое время назад, изучая новости, я натолкнулся на весьма интересную тему. А именно — авторизацию без пароля. Идея в следующем: вместо запоминания кучи паролей к разным сайтам предлагается использовать специальное устройство, которе будет брать на себя весь процесс регистрации и авторизации. Данные при этом шифруются симметричным ключом, а чтобы воспользоваться ими мог только владелец, предполагается оснастить устройство биометрическим сенсором, например сканером отпечатков пальцев.
Регистрация на сайте будет выглядеть примерно так:
- Пользователь вводит имя пользователя или емейл
- Браузер обращается к авторизующему устройству, которое просит пользователя подтвердить регистрацию отпечатком пальца
- В случае успеха создается новая пара криптографических ключей, которая и используется потом при авторизации. Публичный ключ отправляется на сайт.
Авторизация, соответственно выглядит так:
- Пользователь вводит емейл
- Браузер запрашивает поддверждения через сканирование отпечатка на устройстве.
Довольно просто — не нужно придумывать и запоминать сложные пароли. Это безопасно — украсть отпечатки пальцев гораздо сложнее, чем пароль. Это надежнее, чем двухступенчатая авторизация через СМС. Утечка базы пользователей с сайта никак не откроет спрятанный в устройстве закрытый ключ.
Полностью система авторизации описана в стандарте FIDO2: Web Authentication (WebAuthn), который был принят в начале этого года как рекомендация w3c. Над стандартом работали такие гранды, как Google, Microsoft и Yubico.
Поддержка стандарта уже реализована в Google Chrome (кто бы сомневался). В остальных браузерах — в разной степени готовности.
Мне пока не понятны разные детали реализации. Например, что делать при потере устройства — можно ли разом отменить все ключи выданные им на всех сайтах?
Но, тем не менее, можно предполагать что весьма скоро помнить пароль от фейсбука будет уже не нужно. Да и украсть его никто не сможет.