«FIDO использует асимметричную криптографию, чтобы гарантировать, что все конфиденциальные секреты и аппаратные средства криптографического ключа постоянно остаются во владении клиента и не передаются службе аутентификации.
FIDO Universal Authentication Framework
Альянс FIDO (Fast IDentity Online) — это организация, созданная для решения проблемы отсутствия совместимости между устройствами строгой аутентификации, а также проблем, с которыми сталкиваются пользователи при создании и запоминании нескольких имен пользователей и паролей.
FIDO охватывает как беспарольную аутентификацию (с помощью элементов FIDO UAF), таких как отпечаток пальца, радужная оболочка глаза, голос, так и многофакторную аутентификацию, такую как OTP и USB-ключ. В настоящее время Tizen не поддерживает многофакторную аутентификацию.
FIDO Alliance предлагает сертификацию FIDO Ready™ для FIDO-совместимых продуктов.
FIDO UAF Components
Аутентификаторы Universal Authentication Framework (UAF) могут быть подключены к пользовательскому устройству через различные физические интерфейсы, такие как SPI, USB и Bluetooth. Специфический модуль аутентификатора UAF (ASM) — это программный интерфейс поверх аутентификаторов UAF, который обеспечивает стандартизированный способ распознавания и доступа клиентов FIDO UAF к функциональности аутентификаторов UAF и скрывает от клиентов внутреннюю сложность коммуникации.
ASM — это программный компонент для конкретной платформы, который предоставляет API для клиентов FIDO UAF для распознавания и взаимодействия с одним или несколькими доступными аутентификаторами. Один ASM может создавать отчеты от имени нескольких аутентификаторов.
Протокол FIDO UAF и его различные функции описаны в Спецификации протокола FIDO UAF. На следующем рисунке показана упрощенная архитектурная диаграмма взаимодействий и действующих лиц.
Рисунок: Высокоуровневая архитектура UAF.
FIDO UAF состоит из следующих ключевых элементов:
- FIDO UAF client The FIDO UAF client implements the client side of the FIDO UAF protocols, and is responsible for interacting with specific FIDO UAF authenticators using the FIDO UAF authenticator abstraction layer through the FIDO UAF Authenticator API (in mobile and wearable applications). Before you use the authenticators, check whether the device can process the UAF protocol messages.
- FIDO UAF server The FIDO UAF server implements the server side of the FIDO UAF protocols and is responsible for:
- Interacting with the relying party Web server to communicate FIDO UAF protocol messages to a FIDO UAF client using a device user agent.
- Validating FIDO UAF authenticator attestations against the configured authenticator metadata to ensure only trusted authenticators are registered for use.
- Managing the association of registered FIDO UAF authenticators to user accounts at the relying party.
- Evaluating user authentication and transaction confirmation responses to determine their validity.
- FIDO UAF protocols The FIDO UAF protocols carry FIDO UAF messages between user devices and relying parties. Use the protocol messages to register, authenticate, and deregister the authentication:
- Authenticator registration: The FIDO UAF registration protocol enables relying parties to discover the FIDO UAF authenticators available on a user’s system or device. Discovery conveys the FIDO UAF authenticator attributes to the relying party, thus enabling policy decisions and enforcement to take place. Figure: FIDO UAF registration
- User authentication: Authentication is typically based on cryptographic challenge-response authentication protocols and facilitates the user choice regarding which FIDO UAF authenticators are employed in an authentication event. Figure: FIDO UAF authentication
- Authenticator deregistration: Deregistration is typically required when the user account is removed at the relying party. The relying party can trigger the deregistration by requesting the authenticator to delete the UAF credential associated with the user account. Figure: FIDO UAF deregistration
Finding the FIDO Authenticator
Чтобы получить список всех доступных аутентификаторов, используйте функцию fido_foreach_authenticator():
_invalid_start_discover(недействительный*данные, evas_Object*obj,недействительный*информация о событии)<intret = fido_foreach_authenticator(auth_list_cb,данные);>static void auth_list_cb(constfido_authenticator_hАвторизация,недействительный*пользовательские данные)
__print_authinfo(Авторизация,ad);>статическая пустота__print_authinfo(fido_authenticator_hАвторизация,appdata_s*ad)<char*title = NULL; fido_authenticator_get_title(Авторизация, &Название);char*aaid = NULL; fido_authenticator_get_aaid(Авторизация, &aaid);> Что такое двухфакторная аутентификация и протокол FIDO U2F
Почти каждый месяц в открытый доступ попадают миллионы логинов и паролей для электронной почты и различных социальных сервисов. Это лучше любого эксперта по безопасности говорит нам о том, что пароли, даже надежные, больше не являются самым важным инструментом безопасности.
Предпочтения пользователей при выборе той или иной услуги меняются. Раньше выбор падал на самый удобный вариант, а теперь — на самый безопасный.
Для обеспечения безопасности они изобрели многофакторную аутентификацию (MFA) и ее упрощенную версию — двухфакторную аутентификацию (2FA): Первая линия безопасности — это логин и пароль, то есть то, что пользователь знает и помнит, а вторая — то, что есть только у пользователя: SMS, электронная почта, приложения одноразовых паролей (OTP/TOTP/HOTP), криптографические токены, биометрия. Самые дешевые и удобные варианты — это приложение и SMS. Мы вводим ваше имя пользователя и пароль на сайте, а затем получаем SMS-код на ваш мобильный телефон. Введите код, и вы получите доступ к данным.
Мир 2FA сегодня
2FA существует уже давно, и большинство крупных онлайн-сервисов широко используют его. 2FA «поднялся» в финтех-индустрии: онлайн-платежи без подтверждения и авторизации, например, через SMS, больше немыслимы.
Как ни странно, несмотря на повсеместное внедрение 2FA, учетные записи пользователей по-прежнему подвергаются кражам и взломам. Давайте попробуем разобраться в слабых сторонах методов 2FA и их уязвимости.
- Фишинг. Практически все 2FA решения уязвимы к MITM (men in the middle) атакам, и соответственно фишингу.
- Безопасность. Для примера рассмотрим SMS, на данный момент самое популярное решение 2FA на рынке. Интернет пестрит историями о перевыпусках сим-карт в России, США, ЮАР, Великобритании и других странах. К тому же специальные технические средства, доступные уже и не только спецслужбам, а также методы социальной инженерии еще никто не отменял.
- Стоимость. Криптографические токены, отлично себя зарекомендовавшие с точки зрения безопасности — достаточно недешевое удовольствие. Их покупка ложится на плечи конечных пользователей, редкий сервис берет их оплату и доставку пользователю на себя. Даже отправка SMS стоит денег. Таким образом, внедрение и использование 2FA могут позволить себе далеко не все.
- Совместимость. Далеко не все операционные системы имеют в своем составе драйвера для работы криптографических токенов. Далеко не все пользователи хотят возиться с поиском и их установкой.
- Удобство использования. Пользователям лень вводить одноразовые пароли. Разблокируй экран телефона, открой сообщение или OTP программу, прочитай код, введи его, ошибись, повтори все сначала — это стандартный алгоритм взаимодействия пользователя и двухфакторной аутентификации.
Сегодняшние решения 2FA не обеспечивают надежной защиты пользователей, зачастую сложны в реализации, дороги и недостаточно гибкие.
FIDO U2F
В 2007 году PayPal попытался внедрить 2FA, отправляя OTP через SMS. Хотя в то время этот метод был передовым и достаточно безопасным, процент принятия был катастрофически низким. Большинство пользователей просто проигнорировали возможность повысить безопасность своих данных.
Когда компания PayPal совместно с Validity Sensors исследовала возможности внедрения биометрических технологий, родилась идея о том, что пришло время создать отраслевой стандарт, который будет поддерживать все аппаратные средства аутентификации. В 2013 году был основан альянс FIDO (Fast IDentity Online), целью которого является создание такого стандарта. Членами организации стали многие крупные компании, такие как Google, ARM, Bank of America, Master Card, Visa, Microsoft, Samsung, LG, Dell и RSA.
Основными целями FIDO на данный момент являются удобные для пользователей, безопасные, частные и стандартизированные решения.
На данный момент FIDO разработала два стандарта: U2F (универсальный второй фактор) и UAF (универсальная структура аутентификации для биометрической аутентификации).
Что из себя представляет U2F?
U2F — это открытый протокол без драйверов, изначально разработанный Google и Yubico и используемый для двухфакторной аутентификации на некоторых устройствах USB, NFC, Bluetooth LE или SIM-картах (спецификации все еще разрабатываются), которые хранят ключи и выполняют криптографические функции.
В настоящее время поддержка U2F реализована в браузерах Chrome и Edge, а также в операционной системе Windows 10.
Протокол основан на аутентификации по принципу «вызов-ответ» с использованием электронных цифровых подписей.
Со стороны пользователя
С точки зрения пользователя, работа с протоколом довольно проста. Пользователь вводит имя пользователя и пароль, подключает устройство U2F к компьютеру через USB (или через Bluetooth или NFC) (нажимает кнопку, вводит пин-код, проходит биометрическую верификацию или ничего не делает) и успешно проходит аутентификацию.
Углубление в протокол U2F
Взаимодействие с U2F-клиентом (например, браузером или Windows 10) происходит следующим образом:
Давайте рассмотрим подробнее, как работает протокол.
Пользователь вводит имя пользователя и пароль, сервер проверяет учетные данные и, если они верны, генерирует случайный вызов и отправляет его клиентскому программному обеспечению, которое, в свою очередь, пересылает его устройству U2F. Устройство U2F ждет, пока пользователь подтвердит дальнейшие операции (как упоминалось выше, например, нажатием кнопки на устройстве), а затем отправляет подписанный вызов обратно в клиентское программное обеспечение, которое пересылает его в