Железный выбор

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

Кто не в курсе, что это за «флешки» и как они спасают от фишинга — сначала прочитайте их пост. Теперь разберёмся в главном вопросе: насколько на самом деле безопасны YubiKey и его аналоги, и что в итоге выбрать?

Чтобы прочитать все гиперссылки, нужно быть подписанным на оба канала: - Onion Links Prime - Onion Links Review

Начнём с теории. Вся магия аппаратного ключа — в специальном чипе, Secure Element (SE). Это отдельный, защищённый микрокомпьютер внутри ключа. Его единственная задача — хранить криптографические ключи и выполнять операции так, чтобы сами ключи никогда не покидали его пределов. Он защищает не только от софтверных атак, но и от физического извлечения в лаборатории, в отличие от обычной флеш-памяти.

Теперь к железу. С одной стороны — лагерь закрытых корпоративных решений, возглавляемый YubiKey. Их прошивка и железо проприетарны, а обновления невозможны в принципе. Как же они латают дыры? Никак. При обнаружении уязвимости они отзывают ключи и выдают пользователям новые. Не очень практично, но такой подход защищает от supply-chain атак на прошивку. Yubico заявляет, что у них нет мастер-ключей, и независимые аудиты это подтверждают. Случаев взлома YubiKey до сих пор не было.

К этому же лагерю можно отнести и Google Titan с его мощным чипом Titan M — да-да, тем же, что и в Pixel. Почитателей Google здесь и так немного, к тому же у этого ключа есть неприятная история. В своё время Google решили добавить в свой супер-безопасный девайс Bluetooth. Гениально! Реализация оказалась небезопасной, и всю партию пришлось отозвать.

На другом полюсе — мир FOSS, где, казалось бы, всё должно быть идеально. Яркий представитель — SoloKeys, самый идеологически «чистый» опенсорс-проект с полностью открытым софтом и железом. Но идеологическая чистота — не гарантия безопасности. У SoloKeys нет SE, и ключи хранятся в обычной флеш-памяти микроконтроллера.

В этой же FOSS-категории стоит особняком OnlyKey, который как раз пытается ответить на вопрос «а что насчёт паяльника?». Его решение — встроенная клавиатура. В отличие от YubiKey, который активируется простым касанием, OnlyKey требует ввода PIN-кода прямо на устройстве. Это открывает дорогу к правдоподобному отрицанию: под разными PIN-кодами можно хранить разные профили, или установить duress-PIN. Добавим сюда поддержку YubiKey OTP и водонепроницаемый корпус и получим почти идеальный девайс? Нет. К сожалению при открытой прошивке его железо остаётся закрытым, а независимые аудиты отсутствуют. Это оставляет вопрос доверия открытым.

Действительно годно сделала компания Nitrokey, взяв лучшее из двух миров. Их прошивка и железо (CAD/PCB файлы) открыты, что позволяет сообществу проводить аудит и собирать свои DIY ключи. SE присутствует, и обновление прошивки поддерживается. К тому же разнообразие моделей превосходит Solo и Only.

Отдельно стоит сказать про беспроводные интерфейсы. По мнению редакции, NFC и Bluetooth только расширяют поверхность атаки. Тем более, вендоры умудряются лажать в реализации. Например, в линейке Nitrokey 3 используется сертифицированный по EAL 6+ (крутой) чип SE050, но из-за энергетических ограничений он не может работать через NFC. Это означает, что при использовании NFC криптографические операции выполняются на менее защищённом основном процессоре.

ИМХО: Если ваша модель включает физическое изъятие, ключ без Secure Element (как SoloKeys) — это брелок, а не инструмент. OnlyKey выглядит многообещающе, но его реальная безопасность пока под сомнением. Дальше выбор стоит между доверием закрытому коду YubiKey, который живёт с вечными уязвимостями, и проверяемой, обновляемой открытостью Nitrokey. Добавив к этому риски беспроводных интерфейсов, наш выбор на конец 2025 года — Nitrokey 3A Mini (без NFC). Проводное подключение и верифицируемая прошивка всегда надёжнее.

Свежее