Что такое этот ваш FIDO2?

FIDO2 - это открытый стандарт аутентификации, поддерживаемый FIDO Alliance, который состоит из спецификации веб-аутентификации W3C (WebAuthn API) и протокола аутентификации клиента (CTAP). CTAP - это протокол прикладного уровня, используемый для связи между клиентом (браузером) или платформой (операционной системой) с внешним аутентификатором, таким как YubiKey 5 Series и Security Key Series от Yubico. Yubico является основным разработчиком открытого протокола аутентификации FIDO2.

Проще говоря регистрируясь на сайте вы указываете только имя пользователя и используете ваш YubiKey для создания публичного ключа, который отсылается сервису и привязывается к вашему логину.

Сам FIDO2 пока еще не так сильно распространён, хотя мне кажется это удобнее чем пароли и его уже использует многие web гиганты, но в основном как двухфакторную аутентификацию. Поэтому я покажу как это работает на демо сайте.

Работает FIDO2 уже почти во всех новых браузерах. Список совместимости можно посмотреть тут.

Основные преимущества перед простым паролем:

  • Короткие пароли можно быстро взломать (brute-force)
  • Пользователи повторно используют один и тот же пароль на нескольких веб-сайтах.
  • Фишинговые атаки являются обычным явлением и часто позволяют злоумышленникам получить пароли.
  • Ну и конечно пользователь может забыть свой пароль на каком-либо сайте если его не использует

Да кто-то скажет что YubiKey можно потерять и будет прав. Но для того и ставится PIN-код чтобы обезопасить вас. Т.е если кто-то найдёт ваш YubiKey ему нужно будет ещё знать ваш PIN. Ну и естественно желательно иметь 2 YubiKey.

Как это работает

  1. Когда вы проводите регистрацию на сайте первым делом генерируется пара закрытого и открытого ключа на вашем YubiKey.
  2. Далее открытый ключ передаётся стороне, на которой вы производите регистрацию
  3. Сторона на которой вы регистрируетесь связывает этот публичный ключ с вашей учетной записью и хранит его у себя.

Используем FIDO2

Для начала задаём PIN в YubiKey Manager.

  1. Вставляем YubiKey в USB порт компьютера
  2. Запускаем YubiKey Manager
  3. Нажимаем Applications -> FIDO2 enter image description here
  4. Наживаем Set PIN
  5. Дважды вбиваем PIN

Для регистрации используя FIDO2 выполняем:

  1. Вставляем наш ключ YubiKey в usb
  2. Переходим на сайт
  3. Вводим логин
  4. Нажимаем регистрироваться enter image description here
  5. Нажимаем OK на запросе enter image description here
  6. Вбиваем PIN, который мы прописывали в YubiKey Manager
  7. Касаемся нашего YubiKey enter image description here
  8. И вот мы зарегистрировались не вбивая при этом нигде пароля enter link description here
  9. Пробуем залогиниться (Нажимаем Login)
  10. Опять вбиваем PIN
  11. Касаемся нашего YubiKey и удачно логинимся enter link description here

Видео