FIDO2
FIDO2 — это открытый стандарт аутентификации, разработанный альянсом FIDO (Fast IDentity Online) для замены парольной аутентификации на криптографические методы. Он позволяет пользователям входить в онлайн-сервисы и приложения без ввода пароля, используя для подтверждения личности аппаратные токены, биометрические данные (отпечаток пальца, лицо) или PIN-код. FIDO2 является развитием более ранних спецификаций FIDO (U2F и UAF) и включает в себя два ключевых компонента: протокол WebAuthn (Web Authentication), разработанный Консорциумом Всемирной паутины (W3C), и протокол CTAP (Client to Authenticator Protocol), разработанный альянсом FIDO.
История и предпосылки создания
Проблема парольной аутентификации стала очевидной к началу 2010-х годов: пароли легко поддаются фишингу, перебору, краже баз данных и социальной инженерии. В 2012 году был основан альянс FIDO, объединивший компании Google, Microsoft, PayPal, Yubico, Intel и других, с целью создания открытых, масштабируемых и безопасных протоколов аутентификации.
Первой спецификацией стал U2F (Universal 2nd Factor), выпущенный в 2014 году. Он предполагал использование аппаратного ключа в качестве второго фактора (после пароля). В 2015 году вышла спецификация UAF (Universal Authentication Framework), позволявшая полностью отказаться от пароля, используя биометрию или PIN на устройстве пользователя.
Однако обе эти спецификации требовали установки дополнительного программного обеспечения на стороне клиента (драйверов, браузерных плагинов), что ограничивало их распространение. В 2018 году альянс FIDO совместно с W3C представил стандарт FIDO2, который решал эту проблему. Ключевым нововведением стала интеграция протокола WebAuthn непосредственно в веб-браузеры и операционные системы, что устранило необходимость в сторонних плагинах. В 2019 году FIDO2 был признан международным стандартом ISO/IEC 29003.
Архитектура и компоненты FIDO2
Стандарт FIDO2 состоит из двух основных протоколов, работающих в связке:
WebAuthn (Web Authentication)
Это API (интерфейс программирования приложений), встроенный в веб-браузеры (Chrome, Firefox, Safari, Edge) и операционные системы (Windows, macOS, Android, iOS). WebAuthn определяет, как веб-сайт (полагающаяся сторона, RP) может взаимодействовать с аутентификатором пользователя через браузер. Процесс включает две операции:
- Регистрация (attestation): создание новой пары криптографических ключей (открытого и закрытого) для конкретного сайта. Открытый ключ передаётся на сервер, закрытый остаётся на устройстве пользователя.
- Аутентификация (assertion): доказательство владения закрытым ключом путём подписания случайного вызова (challenge) от сервера.
CTAP (Client to Authenticator Protocol)
Это протокол, определяющий, как браузер (клиент) общается с аутентификатором — устройством, которое хранит закрытые ключи и выполняет криптографические операции. Существует две версии:
- CTAP1: устаревший протокол для поддержки устройств U2F (например, старых ключей YubiKey).
- CTAP2: современный протокол, используемый в FIDO2. Он поддерживает как внешние (USB, NFC, Bluetooth) аутентификаторы, так и встроенные (TPM-чип, Secure Enclave, Trusted Execution Environment).
Типы аутентификаторов
FIDO2 поддерживает два основных типа аутентификаторов, различающихся по способу подключения и уровню безопасности:
Внешние (roaming) аутентификаторы
Это отдельные физические устройства, подключаемые к компьютеру или мобильному устройству. Наиболее распространённый тип — USB-ключи (например, YubiKey, Google Titan Security Key). Они также могут подключаться через NFC (для мобильных телефонов) или Bluetooth (для устройств без USB-порта). Внешние аутентификаторы обеспечивают высокий уровень безопасности, так как закрытые ключи физически изолированы от потенциально скомпрометированной операционной системы.
Встроенные (platform) аутентификаторы
Это программно-аппаратные модули, встроенные в устройство пользователя. К ним относятся:
- TPM (Trusted Platform Module) в Windows (например, Windows Hello).
- Secure Enclave в устройствах Apple (Touch ID, Face ID).
- Android Trusted Execution Environment (биометрическая аутентификация на Android).
Встроенные аутентификаторы удобны, так как не требуют ношения отдельного устройства, но их безопасность зависит от защищённости самого устройства (например, от вредоносного ПО, которое может перехватить биометрические данные).
Процесс аутентификации
Процесс входа с использованием FIDO2 обычно выглядит следующим образом:
- Пользователь заходит на сайт, поддерживающий FIDO2, и нажимает кнопку «Войти с помощью ключа безопасности» или «Использовать биометрию».
- Браузер вызывает API WebAuthn, который отправляет серверу запрос на получение случайного вызова (challenge).
- Сервер генерирует challenge и отправляет его браузеру.
- Браузер через протокол CTAP передаёт challenge аутентификатору (внешнему или встроенному).
- Аутентификатор запрашивает у пользователя подтверждение (нажатие кнопки на ключе, сканирование отпечатка пальца, ввод PIN).
- После подтверждения аутентификатор подписывает challenge закрытым ключом, соответствующим данному сайту.
- Подписанный challenge (цифровая подпись) возвращается браузеру, который отправляет его на сервер.
- Сервер проверяет подпись с помощью сохранённого открытого ключа. Если подпись верна — доступ разрешается.
Преимущества перед паролями
FIDO2 обладает рядом существенных преимуществ по сравнению с традиционной парольной аутентификацией:
- Устойчивость к фишингу: закрытый ключ никогда не покидает устройство пользователя и не передаётся по сети. Даже если злоумышленник создаст поддельную копию сайта, он не сможет получить данные для аутентификации, так как ключ привязан к конкретному домену (origin).
- Отсутствие паролей: пользователю не нужно запоминать или хранить сложные пароли, что снижает риск их утечки или повторного использования.
- Защита от перебора: криптографическая аутентификация не подвержена атакам перебора, так как каждый запрос требует подписи уникальным ключом.
- Удобство: вход осуществляется одним касанием или взглядом, без необходимости вводить текст.
- Масштабируемость: стандарт не требует централизованной инфраструктуры для управления ключами — открытые ключи хранятся на серверах самих сервисов.
Недостатки и ограничения
Несмотря на преимущества, FIDO2 имеет и определённые недостатки:
- Потеря устройства: если внешний аутентификатор утерян или сломан, а пользователь не создал резервные копии ключей (например, не зарегистрировал второй ключ или не настроил резервные коды), доступ к учётной записи может быть потерян.
- Стоимость: аппаратные ключи (YubiKey, Titan) стоят денег (от 20 до 100 долларов США в зависимости от модели и функций), что может быть барьером для массового распространения.
- Несовместимость: некоторые старые веб-сайты и приложения не поддерживают FIDO2. Кроме того, существуют проблемы с поддержкой на некоторых мобильных платформах (например, на старых версиях Android или iOS).
- Приватность: при регистрации аутентификатор может передавать серверу метаданные о себе (например, производителя и модель), что потенциально может использоваться для отслеживания пользователя. Однако стандарт предусматривает механизмы анонимизации (например, использование анонимных сертификатов аттестации).
- Зависимость от платформы: встроенные аутентификаторы (Windows Hello, Touch ID) привязаны к конкретному устройству. Переход на новое устройство требует повторной регистрации на всех сервисах.
Применение и распространение
FIDO2 активно внедряется крупнейшими технологическими компаниями и государственными организациями:
- Google: Gmail, Google Workspace, Google Cloud Platform поддерживают FIDO2. Компания также выпускает собственный ключ Google Titan Security Key.
- Microsoft: Windows 10 и 11, Azure Active Directory, Microsoft 365, Xbox Live поддерживают FIDO2 через Windows Hello. В 2021 году Microsoft объявила о планах полностью отказаться от паролей в своих сервисах.
- Apple: начиная с iOS 16 и macOS Ventura, устройства Apple поддерживают FIDO2 через Face ID и Touch ID. В 2023 году Apple, Google и Microsoft совместно объявили о расширении поддержки FIDO2 на мобильных платформах, включая возможность синхронизации ключей через облако (passkeys).
- Facebook (принадлежит компании Meta, признанной экстремистской и запрещённой в РФ): поддерживает FIDO2 для входа через аппаратные ключи.
- Правительственные организации: правительства США (например, программа PIV для федеральных служащих), Великобритании, Эстонии и других стран внедряют FIDO2 для аутентификации сотрудников и граждан в государственных цифровых сервисах.
- Финансовый сектор: банки и платёжные системы (например, PayPal) используют FIDO2 для защиты транзакций.
Критика и перспективы
Основная критика FIDO2 связана с проблемой восстановления доступа при потере устройства. Некоторые эксперты отмечают, что стандарт требует от пользователя более высокой технической грамотности, чем пароли. Кроме того, существует опасение, что централизованное хранение открытых ключей на серверах может создать новые точки уязвимости (хотя сами ключи не являются секретом).
В ответ на эти проблемы разрабатывается концепция passkeys — синхронизируемых ключей, которые хранятся в облаке (например, в iCloud Keychain или Google Password Manager) и могут быть восстановлены на новом устройстве. Это делает FIDO2 более удобным для массового пользователя, но частично снижает уровень безопасности (так как ключи становятся доступны облачному провайдеру).
В целом, FIDO2 рассматривается как ключевой элемент перехода к беcпарольному будущему в интернете. Его внедрение продолжает расти, особенно после совместного заявления Apple, Google и Microsoft в 2023 году о расширении поддержки на мобильных платформах.
Источники
- Спецификация WebAuthn (W3C Recommendation, 2019).
- Спецификация CTAP 2.1 (FIDO Alliance, 2021).
- Документация FIDO Alliance: «FIDO2: WebAuthn & CTAP».
- Материалы конференции RSA Conference 2022: «The State of FIDO Authentication».
- Публикации Google Security Blog (2018-2023).
- Публикации Microsoft Security Blog (2020-2023).
- ISO/IEC 29003:2019 — Information technology — Security techniques — Authentication framework.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →