Андрей Овчаров

маленькое невинное хобби

WebAuthN - авторизация без пароля

Некоторое время назад, изучая новости, я натолкнулся на весьма интересную тему. А именно - авторизацию без пароля. Идея в следующем: вместо запоминания кучи паролей к разным сайтам предлагается использовать специальное устройство, которе будет брать на себя весь процесс регистрации и авторизации. Данные при этом шифруются симметричным ключом, а чтобы воспользоваться ими мог только владелец, предполагается оснастить устройство биометрическим сенсором, например сканером отпечатков пальцев.

Регистрация на сайте будет выглядеть примерно так:

  • Пользователь вводит имя пользователя или емейл
  • Браузер обращается к авторизующему устройству, которое просит пользователя подтвердить регистрацию отпечатком пальца
  • В случае успеха создается новая пара криптографических ключей, которая и используется потом при авторизации. Публичный ключ отправляется на сайт.

Авторизация, соответственно выглядит так:

  • Пользователь вводит емейл
  • Браузер запрашивает поддверждения через сканирование отпечатка на устройстве.

Довольно просто - не нужно придумывать и запоминать сложные пароли. Это безопасно - украсть отпечатки пальцев гораздо сложнее, чем пароль. Это надежнее, чем двухступенчатая авторизация через СМС. Утечка базы пользователей с сайта никак не откроет спрятанный в устройстве закрытый ключ.

Полностью система авторизации описана в стандарте FIDO2: Web Authentication (WebAuthn), который был принят в начале этого года как рекомендация w3c. Над стандартом работали такие гранды, как Google, Microsoft и Yubico.

Поддержка стандарта уже реализована в Google Chrome (кто бы сомневался). В остальных браузерах - в разной степени готовности.

Мне пока не понятны разные детали реализации. Например, что делать при потере устройства - можно ли разом отменить все ключи выданные им на всех сайтах?

Но, тем не менее, можно предполагать что весьма скоро помнить пароль от фейсбука будет уже не нужно. Да и украсть его никто не сможет.