Физические ключи безопасности (YubiKey, Nitrokey, OnlyKey)

konstrukt
Оффлайн

konstrukt

.
.
.
Регистрация
19.09.18
Сообщения
141
Реакции
78
Репутация
1
Всем привет. Продолжаю тему двухфакторной аутентификации — сегодня хочу разобрать физические ключи безопасности, потому что это принципиально другой уровень защиты по сравнению с приложениями-генераторами кодов, и разница не в удобстве, а в самой архитектуре защиты.


Почему TOTP-коды не защищают от фишинга


Когда вы используете генератор одноразовых кодов — Aegis или любой другой — у этой схемы есть фундаментальная уязвимость: код можно перехватить в реальном времени. Атакующий делает точную копию страницы входа, вы вводите логин, пароль и шестизначный код — атакующий моментально использует все три на настоящем сайте, пока код ещё действует. Называется это real-time phishing, и против него TOTP не защищает никак, потому что код валиден 30 секунд, а автоматизированная атака работает за доли секунды.


Физический ключ безопасности работает принципиально иначе. Протокол FIDO2/WebAuthn криптографически привязывает аутентификацию к конкретному домену в момент регистрации ключа. Когда вы пытаетесь войти, ключ проверяет домен страницы, на которой происходит вход — и если домен не совпадает с тем, на котором ключ был зарегистрирован, аутентификация просто не происходит, даже если внешне сайт выглядит идентично. Никакого кода, который можно перехватить, не существует в принципе — вся криптография происходит между ключом и браузером локально.


Три основных игрока


YubiKey — самое известное имя в этом сегменте, производится шведско-американской компанией Yubico. Линейка широкая: есть версии с USB-A, USB-C, NFC для телефонов, версия для Lightning под старые iPhone. Поддерживает FIDO2, WebAuthn, TOTP, OpenPGP, PIV и ряд других протоколов в зависимости от модели. Прошивка закрытая — это честная претензия к YubiKey, которую стоит обозначить: вы не можете проверить, что именно исполняется внутри устройства.


Nitrokey — немецкий открытый альтернативный ключ с открытой прошивкой и открытым железом. Это принципиальное отличие от YubiKey — можно проверить исходный код, можно собрать прошивку самостоятельно. Поддерживает OpenPGP, FIDO2, хранение ключей шифрования. Отдельная модель Nitrokey HSM ориентирована на корпоративное использование. Для людей, у которых в модели угроз есть закладки на уровне прошивки — это единственный разумный выбор в этом сегменте.


OnlyKey — американский ключ с открытой прошивкой, имеет уникальную функцию, которой нет у конкурентов: PIN вводится непосредственно на самом ключе через встроенные кнопки, а не на компьютере. Это защищает от кейлоггеров — даже если устройство заражено, PIN, введённый на самом ключе, не может быть перехвачен программно. Также поддерживает хранение паролей прямо на ключе с вводом через кнопки без необходимости вводить что-либо с клавиатуры.


Практические сценарии использования


Для защиты аккаунтов через FIDO2/WebAuthn — все три ключа работают одинаково хорошо с сервисами, которые поддерживают этот протокол. Большинство крупных платформ уже его поддерживают.


Для хранения PGP-ключей и подписи коммитов в Git — Nitrokey и YubiKey, причём ключ генерируется прямо на устройстве и никогда не покидает его в открытом виде, что принципиально сильнее хранения ключа в файле на диске.


Для SSH-аутентификации на серверах — все три поддерживают хранение SSH-ключей с обязательным физическим касанием ключа при каждом подключении, что делает автоматизированное использование украденных учётных данных невозможным.


Что важно учитывать в модели угроз


Физический ключ решает конкретную проблему — защиту от удалённых атак, фишинга и компрометации паролей. Он не защищает от сценария, где атакующий имеет физический доступ к вашему компьютеру в момент активной сессии, и не защищает от ситуации, когда вас принуждают аутентифицироваться физически.


Важный практический момент — всегда нужен второй резервный ключ на случай потери основного, зарегистрированный на тех же сервисах. Потеря единственного ключа без резервных кодов восстановления означает полную потерю доступа к аккаунтам, что по последствиям не лучше взлома.


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