Как работает аппаратный ключ безопасности — и почему не сделать программируемый ключ с улучшенной защитой?

Как известно, пароль — только первый этап аутентификации, причём наименее надёжный. Пароль можно перехватить во время ввода (с клавиатуры или экрана), в процессе передачи на сервер, подобрать брутфорсом, скопировать из места хранения (в том числе с сервера компании, безопасность которого нам не подконтрольна) или узнать у человека. Даже наличие парольного менеджера не слишком улучшает ситуацию.
Двухфакторная аутентификация (2FA) сегодня обязательна, потому что второй фактор и на порядок увеличивает усилия для взлома. Стандартный второй фактор — это телефон, куда приходит дополнительный код. Ещё один дополнительный фактор — аппаратный ключ безопасности, который невозможно скопировать. Такой ключ может защищать доступ к вашему парольному менеджеру.
Давайте посмотрим, как сделаны такие ключи, кто их выпускает. И самое главное — как их сделать ещё лучше.
Стандарт U2F
Стандартом открытой аутентификации сейчас считается U2F (Universal 2nd Factor), его продвижением занимается альянс FIDO.
U2F — это открытый, бездрайверный протокол 2FA, позволяющий интернет-пользователям использовать U2F-устройство как второй фактор для аутентификации на большом количестве онлайн-сервисов.
Используется вызов-ответная схема аутентификации:
- Проверяющая сторона отправляет некоторые данные (то есть генерирует вызов) и дескриптор ключа для подписи браузеру.
- Браузер добавляет к этому URI, с которого был произведён запрос на подпись и ID канала TLS и отправляет на U2F устройство.
- Используя дескриптор ключа, устройство выбирает соответствующий ему закрытый ключ для подписи.
- Для предотвращения клонирования устройства, внутри него находится счётчик, который при каждой аутентификации увеличивает своё значение. Его значение тоже подписывается и отправляется проверяющей стороне.

Для подписи используется алгоритм ECDSA над кривой P-256, для хеширования — SHA-256.
Производители
Ключи для U2F выпускает несколько компаний, в том числе:

- Yubico: Security Key, Security Key NFC, Security Key C NFC, YubiKey 5C, 5C NFC, 5Ci, 5 NFC)
- Google: линейка ключей Titan (USB-A/NFC, USB-C/NFC);
- Thetis (FIDO U2F и BLE U2F)
- SoloKeys (Solo USB-C, Solo USB-A, Solo Tap USB-C, Solo Tap USB-A)
На практике использование такого ключа интуитивно понятно и просто:
Собственные ключи безопасности
Но ничто не останавливает инженеров от того, чтобы искать лучшие решения вместо существующих.
Например, шведская компания Multivad, которая занимается программными решениями в области информационной безопасности, недавно решила спроектировать и изготовить собственный ключ безопасности на платформе RISC-V со 128 КБ RAM. Для этого была зарегистрирована отдельная дочерняя фирма Tillitis AB. Первым её продуктом станет Tillitis Key — ключ безопасности нового типа, созданный с применением технологий DICE и Measured Boot.
Для справки, Measured Boot — это функция проверки аппаратной прошивки во время каждой загрузки, с сохранением информации в Trusted Platform Module (TPM), впервые представленная в Windows 8.
DICE (Device Identifier Composition Engine) aka RIoT (Robust | Resilient | Recoverable — IoT) — промышленный стандарт Trusted Computing Group для микроконтроллеров на базе TPM.

Ключ Tillitis
Tillitis Key предполагает функцию программирования пользователем и использования произвольных пользовательских приложений (на 128 КБ RAM). Как сказано в описании, во время использования микропрограмма на Tillitis Key извлекает уникальный ключ для каждого запускаемого приложения, проверяя его перед выполнением:
Это делается путём комбинирования хеш-значения приложения с уникальным секретом для каждого устройства. Приложения загружаются на устройство с главного компьютера во время использования и не хранятся на устройстве постоянно.
Секрет, предоставляемый пользователем или хостом, также может быть подмешан в функцию генерации нового ключа (key derivation function), что обеспечивает дополнительную защиту. Предполагается, что продвинутый аппаратный взломщик знает хеш целевого приложения и, скорее всего, в конечном итоге сумеет извлечь UDS из аппаратного обеспечения. При добавлении секрета, предоставляемого хостом, знания используемого приложения, а также UDS ключа безопасности будет недостаточно для получения секрета приложения. Таким образом, влияние потери или кражи ключа Tillitis Key на безопасность меньше, чем в случае обычных ключей безопасности.
Приложения устройства могут быть загружены по цепочке, когда первый этап приложения передаёт свой секрет второму этапу. Это повышает удобство работы пользователей, поскольку позволяет сохранить секрет приложения (и его открытый ключ) неизменным даже при обновлении приложения на устройстве. Это также позволяет разработчикам определять собственные политики доверия к обновлению ПО. Простое приложение первого этапа может выполнять проверку подписи кода на втором этапе, в то время как более продвинутое приложение потребует m-из-n подписей кода или доказательство включения Sigsum с учётом встроенных сценариев использования.
В общем, с учётом таких сценариев программируемый ключ безопасности может использоваться в более продвинутых политиках безопасности, чем современные ключи U2F.
Самое главное, что Tillitis Key разрабатывается на открытом дизайне, то есть схемы и материалы/компоненты для изготовления аппаратного ключа публикуются в открытом доступе. С одной стороны, это гарантирует отсутствие в нём аппаратных закладок и повышает доверие к продукту. С другой стороны, любой желающий теоретически может заказать производство точно таких же изделий или даже собрать нечто подобное в единственном экземпляре конкретно для себя.
Можно вспомнить ещё одну попытку спроектировать ключ безопасности с открытым дизайном и применением надёжной криптографии — ключи Solo V2 от компании SoloKeys, которые в 2021 году успешно собрали финансирование на Кикстартере и сейчас запущены в производство.


Ключи Solo V2 изготавливаются на опенсорсном фреймворке Trussed для современных криптографических приложений. Идея в том, что все криптографические примитивы собраны в прошивку. Исходный код опубликован на GitHub.
Эти криптографические примитивы, а также прошивки от SoloKeys любой желающий может использовать в разработке своих криптографических продуктов, как аппаратных, так и программных. Например, немецкая фирма Nitrokey скопировала весь этот стек — и выпустила собственные ключи. Наладить такое производство может любой стартап. Всё совершенно легально, при этом используется проверенная криптография.
Открытая экосистема
В целом, разработчики Trussed хотели бы сформировать большую открытую экосистему «доверенных приложений безопасности», куда войдут WireGuard, менеджеры паролей, GPG, карманные HSM и другое оборудование и софт на открытом стеке. «Всё это в итоге заменит JavaCard и перенесёт встроенные криптографические прошивки в современную эпоху», — рассчитывают они.
- Блог компании GlobalSign
- Информационная безопасность
- Криптография
- Open source
- Производство и разработка электроники
Для чего в телефоне нужна функция Защитный ключ «Защитный ключ FIDO»?
Объясните что за такая функция в телефоне «Защитный ключ FIDO»?
Голосование за лучший ответ
Первый раз слышу о этой функции
Павел ОрловУченик (1) 1 год назад

Я вот тоже первый раз о ней слышу. И хотел бы понять для чего она нужна.
FIDO-ключ — это паспорт для быстрого доступа к технике, ресурсам и сайтам, которые этот паспорт поддерживают. Он НЕ сможет полностью ЗАМЕНИТЬ пароли да явки, потому что используется после ввода логина и пароля. Фактически — это ключ для двухфакторной авторизации
Похожие вопросы
Что такое Защитный ключ FIDO?
Когда технология FIDO применяется в двухфакторной аутентификации, помимо пароля для реализации второго этапа аутентификации может потребоваться устройство, используемое в качестве ключа безопасности. Устройство-ключ для реализации функции Защитный ключ FIDO по виду напоминает USB-накопитель или USB-ключ. Принцип работы также схож с принципом работы некоторых USB-ключей. Для подтверждения операции необходимо нажать на кнопки на устройстве.
В определенной мере Защитный ключ FIDO HUAWEI может выполнять функции устройства-ключа безопасности. Технологию можно использовать для аутентификации, когда требуется использовать устройство Защитный ключ FIDO .
Что такое ключи безопасности Apple ID и как ими пользоваться
Если вас спросить: с каким производителем смартфонов у вас ассоциируется безопасность и конфиденциальность, вы наверняка ответите: Apple. И это будет не удивительно. Компания из Купертино не первый год продвигает эти принципы в своих продуктах, предоставляя пользователям различные инструменты, позволяющие защитить свои данные от утечек. И если владелец какого-либо устройства Apple будет следовать установленным правилам, то взломать их или получить доступ к Apple ID не получится.

Ключи безопасности помогут защитить вашу учетную запись.
❗️ЕЩЕ БОЛЬШЕ СТАТЕЙ ОБ APPLE ИЩИТЕ В НАШЕМ ДЗЕНЕ СОВЕРШЕННО БЕСПЛАТНО
Но некоторым пользователям недостаточно стандартных методов защиты Apple ID. Для таких случаев в iOS 16.3 появилась возможность использовать физические ключи безопасности для двухфакторной аутентификации. Разбираемся, как работает эта функциональность, какие ключи можно использовать для этого и где их приобрести.
Двухфакторная аутентификация Apple

Если на ключе есть USB, то его можно подключить к компьютеру.
Для использования двухфакторной аутентификации с помощью физических ключей необходимо, по заявлению Apple, задействовать специальные защитные ключи FIDO. Они представляют собой небольшую флешку. В момент, когда требуется подтвердить личность, этот ключ вставляется в USB-разъем компьютера или, как в случае со смартфонами, просто прикладывается к NFC-модулю и последний считывает нужную информацию с него без прямого подключения.
❗️ПОДПИСЫВАЙСЯ НА ТЕЛЕГРАМ-КАНАЛ СУНДУК АЛИБАБЫ, ЧТОБЫ ПОКУПАТЬ ТОЛЬКО ЛУЧШИЕ ТОВАРЫ С АЛИЭКСПРЕСС
Именно по такой схеме и происходит подтверждение личности при входе в вашу учетную запись Apple ID. После ввода пароля iPhone просит вас воспользоваться защитным ключом, и пока вы его не приложите к смартфону или не вставите в компьютер, доступ открыт не будет. Если так подумать, то у этого способа аутентификации достаточное количество минусов. Первый и самый главный — защитный ключ стоит денег. Чтобы можно было провести его настройку, вам в обязательном порядке нужно, чтобы он был оснащен NFC. В противном случае использовать его не получится.
Подобное устройство на AliExpress стоит 3,5 тысячи рублей, а на Яндекс Маркете его можно найти уже за 4,5. Скажем прямо, для такой вещи цена не маленькая. Тем более для настройки их необходимо два. Это требование Apple, и обойти его никак не получится. Поэтому цену сразу можете удваивать.

Но есть ключи и без USB.
Второй минус защитного ключа — он всегда должен быть с вами. А что, если вы его потеряли? Именно для такой ситуации Apple и просит сделать два ключа. Но не будете же вы носить с собой их оба. Поэтому если вам надо срочно получить доступ к вашим данным, а ключ пропал, то вам необходимо будет каким-то образом добраться до второго. А это может быть не всегда просто.
Ну и третий минус — его необходимо как-то носить с собой. Многие крепят подобные устройства к ключам. Но ключи — это одна из самых часто теряемых вещей, поэтому стоит ли так поступать — большой вопрос. Так что если вы задумались о настройке подобного способа аутентификации, вам необходимо решить для себя несколько вопросов: где носить первый ключ, где хранить второй ключ, чтобы к нему могли получить доступ только вы, и найти сами ключи по нормальной цене.
❗️ПОДПИШИСЬ НА НАШ ЧАТИК В ТЕЛЕГРАМЕ. ТАМ ТЕБЕ ОТВЕТЯТ НА ЛЮБЫЕ ВОПРОСЫ
С другой стороны, безопасность такого метода превышает двухфакторную аутентификацию через номер телефона. Ведь только вы будете иметь доступ к ключу и сможете им воспользоваться. Так что если вы хотите максимально себя обезопасить и готовы потратиться, то этот способ для вас.
Как включить двухфакторную аутентификацию на Айфоне
Для настройки защитного ключа вам необходимо обновиться на iOS 16.3. В настоящий момент эта версия операционки существует только в статусе бета-версии. Мы не советуем устанавливать бета-версии на основные устройства, а тем более проводить такую серьезную настройку на бетках. Все-таки они не такие стабильные, как финальные версии, и в случае какого-либо сбоя вы просто не получите доступ к своему аккаунту.
Если же вы все же решили рискнуть, то установите iOS 16.3 beta 1 по нашей инструкции, купите два защитных ключа FIDO и можете переходить к настройке:
- Откройте настройки на вашем Айфоне.
- Пролистайте в самый верх и нажмите на ваш аккаунт.

Настройка ключей очень простая и не требует специальных знаний.

Для регистрации ключа его нужно просто приложить к Айфону.
❗️ПОДПИШИСЬ НА НАШ ПУЛЬС. БУДЕШЬ УЗНАВАТЬ ВСЕ НОВОЕ САМЫМ ПЕРВЫМ
После того как ключи доступа будут настроены, вы перестанете получать коды доступа для входа в Apple ID, и придется использовать только их. Перед покупкой ключей призываю вас как следует подумать и взвесить все преимущества и недостатки. Возможно, что вашей учетной записи не требуется такая серьезная защита, и вы только все сильно усложните.