YubiKey
YubiKey — аппаратное устройство аутентификации, производимое компанией Yubico Inc. для защиты доступа к компьютерам, сетям и онлайн-сервисам с поддержкой одноразовых паролей (OTP), асимметричной криптографии, аутентификации по стандартам U2F и FIDO2[1], разработанным FIDO Alliance. YubiKey позволяет безопасно входить в учётные записи с помощью одноразовых паролей или с применением пары ключей, сгенерированной на устройстве по протоколам FIDO. Также в YubiKey можно хранить статические пароли для сайтов, не поддерживающих OTP[2]. Крупные компании, такие как Google, Amazon, Microsoft, Twitter и Facebook, применяют YubiKey для защиты учётных записей сотрудников и пользователей[3][4][5]. Некоторые менеджеры паролей поддерживают YubiKey[6][7]. Yubico также выпускает устройство Security Key — более дешёвую версию с поддержкой только FIDO2/WebAuthn и FIDO/U2F[8][9][10].
Общие сведения
| Yubico Inc. | |
|---|---|
| Тип | публичная компания |
| Основание | 2007 |
| Основатели | Стина Ерэнсверд (Stina Ehrensvärd) |
| Расположение | Санта-Клара, Калифорния, США |
| Ключевые фигуры |
Стина Ерэнсверд — основатель и Chief Evangelist Якоб Ерэнсверд — технический директор Маттиас Даниэльссон — генеральный директор |
| Отрасль | Электроника |
| Сайт | yubico.com |
Описание
YubiKey поддерживает алгоритмы HOTP и TOTP для создания одноразовых паролей и определяется как клавиатура, которая отправляет эти пароли через протокол USB HID. Также YubiKey может эмулировать карту OpenPGP с поддержкой ключей RSA (1024, 2048, 3072 и 4096 бит; для ключей больше 2048 бит требуется GnuPG 2.0+) и эллиптических кривых p256, p384 и других, в зависимости от модели[11], не раскрывая приватные ключи. Также поддерживается стандарт PKCS#11 для эмуляции PIV-карт, что позволяет подписывать коды, например для Docker, аутентифицироваться по сертификату в Active Directory и SSH[12][13][14][15].
Компания Yubico основана в 2007 году бывшим генеральным директором, ныне Chief Evangelist, Стиной Ерэнсверд. Головной офис расположен в Санта-Кларе (Калифорния), также есть офисы в Белвью и Стокгольме[16]. Технический директор Якоб Ерэнсверд — основной автор спецификации Universal 2nd Factor (U2F)[17].
В 2018 году вышла серия YubiKey 5 с поддержкой FIDO2[18].
История
Компания Yubico основана в 2007 году и в ноябре того же года представила набор Pilot Box для разработчиков[19]. Первый продукт YubiKey был показан на ежегодной конференции RSA в апреле 2008 года[20][21]. Более надёжная модель YubiKey II вышла в 2009 году[22]. По заявлению компании, название «YubiKey» происходит от фразы «your ubiquitous key» («твой вездесущий ключ»), а слово «yubi» по-японски означает «палец»[23].
YubiKey II и последующие версии имеют два «слота» для разных конфигураций с отдельными секретными ключами AES. Для аутентификации используется первый слот (короткое нажатие), второй — при удержании кнопки 2-5 секунд.
В 2010 году появились модели YubiKey OATH и YubiKey RFID. YubiKey OATH добавил поддержку 6- и 8-значных OTP по протоколу OATH, в дополнение к 32-значным паролям родной схемы, а YubiKey RFID включал RFID-чип MIFARE Classic 1k[24], причём этот функционал реализован отдельным устройством и Yubico-программой через USB не настраивается[25].
В феврале 2012 была представлена миниатюрная версия — YubiKey Nano, почти полностью помещающаяся в USB-порт[26]. Впоследствии почти все модели выпускались и в nano-варианте.
В 2012 году также вышел YubiKey Neo с поддержкой NFC и интеграцией с USB-стороной устройства[27]. Neo и Neo-n (nano-версия) отправляют одноразовые пароли через NFC как часть URL в формате NDEF. Neo поддерживает протокол CCID для PIV и OpenPGP, а USB HID используется для OTP[28].
В 2014 году Neo получил поддержку FIDO U2F[29]. Позже выпущен FIDO U2F Security Key без поддержки OTP, статических паролей и NFC, по сниженной цене (18 долларов против $25/40/50/60 у других моделей)[8][30]. Некоторые устройства для тестирования Google назывались «Yubico WinUSB Gnubby (gnubby1)»[31].
В апреле 2015 был презентован YubiKey Edge (стандартный и nano), между Neo и U2F по функциям (OTP и U2F без smartcard и NFC)[32].
Линейка YubiKey 4 вышла в ноябре 2015 — модели USB-A (обычные и nano); поддерживает ключи OpenPGP до 4096 бит, но без NFC.
На выставке CES 2017 была анонсирована серия YubiKey 4C — форм-фактор USB-C, выпущена 13 февраля 2017[33]. Для Android поддерживается только OTP, а U2F и другие функции не реализованы в ОС[34]. Версия 4C Nano доступна с сентября 2017[35].
В апреле 2018 года выпущен Security Key by Yubico с поддержкой новых протоколов FIDO2 (WebAuthn и CTAP, форм-фактор только USB-A, синий цвет, иконка-ключ с цифрой «2»)[9]. Стоимость ниже по сравнению с Neo и YubiKey 4 ($20 на старте), так как отсутствует поддержка OTP и smartcard.
Деятельность и продукция
Ниже приведены основные возможности и функционал продуктов YubiKey[36].
| Модель | Годы продаж | Безопасные статические пароли |
OTP-стандарты | Смарт-карты | FIDO-стандарты | HSM | FIPS 140-2 вариант |
Интерфейс | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| OATH OTP |
Yubico OTP |
OATH: HOTP | OATH: TOTP | PIV | OpenPGP | U2F | FIDO2 | NFC | USB-A | USB-C | Lightning | |||||
| YubiKey VIP | 2011-2017 | Да | Да | |||||||||||||
| YubiKey Nano | 2012-2016 | Да | Да | Да | Да | |||||||||||
| YubiKey NEO | 2012-2018 | Да | Да | Да | Да | Да | Да | Да | Да | Да | ||||||
| FIDO U2F Security Key | 2013-2018 | Да | Да | |||||||||||||
| YubiKey Plus | 2014-2015 | Да | Да | Да | ||||||||||||
| YubiKey NEO-n | 2014-2016 | Да | Да | Да | Да | Да | Да | Да | Да | |||||||
| YubiKey Standard | 2014-2016 | Да | Да | Да | Да | |||||||||||
| YubiKey Edge-n | 2015-2016 | Да | Да | Да | Да | Да | Да | Да | ||||||||
| YubiKey 4 Nano | 2016-2017 | Да | Да | Да | Да | Да | Да | Да | ||||||||
| YubiHSM 1 | 2015-2017 | Да | Да | |||||||||||||
| YubiKey 4 | 2015-2018 | Да | Да | Да | Да | Да | Да | Да | Да | |||||||
| YubiKey 4 Nano | 2015-2018 | Да | Да | Да | Да | Да | Да | Да | Да | |||||||
| YubiKey 4C Nano | 2017-2018 | Да | Да | Да | Да | Да | Да | Да | Да | |||||||
| YubiKey 4C | 2017-2018 | Да | Да | Да | Да | Да | Да | Да | Да | |||||||
| YubiHSM 2 | 2017- | Да | Да | |||||||||||||
| Security Key by Yubico | 2018-2020 | Да | Да | Да | ||||||||||||
| Security Key NFC by Yubico | 2019- | Да | Да | Да | Да | |||||||||||
| YubiKey 5C Nano | 2018- | Да | Да | Да | Да | Да | Да | Да | Да | Да | ||||||
| YubiKey 5C | 2018- | Да | Да | Да | Да | Да | Да | Да | Да | Да | ||||||
| YubiKey 5 Nano | 2018- | Да | Да | Да | Да | Да | Да | Да | Да | Да | ||||||
| YubiKey 5 NFC | 2018- | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | |||||
| YubiKey 5Ci | 2019- | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | |||||
| YubiKey 5C NFC | 2020- | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | |||||
ModHex
При использовании YubiKey для создания одноразовых или статических паролей применён модифицированный шестнадцатеричный алфавит ModHex, что позволяет минимизировать зависимость от раскладки клавиатуры. Алфавит состоит из символов «cbdefghijklnrtuv», которые соответствуют «0123456789abcdef»[37].
В режиме USB HID возможны сложности на компьютерах с другой раскладкой, для чего был введён ModHex[38]. Также проблему можно обойти, временно переключив на US-раскладку. YubiKey Neo и новее позволяют настраивать другие сканкоды, чтобы поддерживать несовместимые раскладки[39].
Это ограничение относится только к устройствам YubiKey в режиме HID. При использовании U2F применяется альтернативный протокол, передающий бинарные сообщения, а не коды клавиш[40]. В режиме CCID устройство работает как смарт-карта без эмуляции клавиатуры.
Проблемы безопасности
Большинство кода на устройствах YubiKey — закрытое ПО. Yubico выкладывал исходники для отдельных функций (например, PGP или HOTP), однако начиная с 4-го поколения используется не тот же код, что публиковался[41][42]. Поскольку новые устройства имеют заблокированную на заводе прошивку, невозможно самостоятельно загрузить альтернативный open-source код; пользователь вынужден доверять, что встроенное ПО аутентично и безопасно.
Код для других функций, таких как U2F, PIV и ModHex, полностью закрытый.
16 мая 2016 года технический директор Yubico Якоб Ерэнсверд опубликовал в блоге ответ на опасения сообщества, отдельно отметив: «Мы как продуктовая компания дали чёткий ответ против использования ПО на базе стандартных однокристальных контроллеров, потому что считаем AVR или ARM недостаточно безопасными для подобных продуктов»[43].
Глава Techdirt Майк Мезник резко раскритиковал это решение, отметив: «Шифрование — дело тонкое. Почти всегда есть уязвимости. Лучший способ выявить их — дать как можно больше специалистов доступ к коду, но это невозможно, когда код закрыт»[44].
В октябре 2017 года исследователи нашли уязвимость ROCA в реализации генерации ключевой пары RSA в криптобиблиотеке Infineon, применявшейся в ряде токенов, включая YubiKey[45][46]. Все устройства YubiKey 4, 4C и 4 Nano с ревизиями от 4.2.6 до 4.3.4 были уязвимы[47]. Проблема решена во всех новых поставках, а пострадавшим пользователям до 31 марта 2019 года предоставлялись бесплатные замены. В отдельных случаях обход возможен созданием ключа вне устройства с последующей загрузкой[48].
В январе 2018 года Yubico объявила о средней серьёзности уязвимости: защита паролем для OTP в YubiKey NEO могла быть обойдена при определённых условиях. Исправлено с версии прошивки 3.5.0, для затронутых пользователей до 1 апреля 2019 года предлагалась бесплатная замена[49].
В июне 2019 года компания выпустила уведомление о снижении энтропии в FIPS-серии устройств с прошивкой 4.4.2 и 4.4.4 (4.4.3 отсутствует) после включения питания[50]. Низкая случайность могла повлиять на надёжность ключей при определённых сценариях, особенно при использовании ECDSA. Пострадавшим клиентам предлагалась бесплатная замена.
В сентябре 2024 года исследователи из NinjaLab обнаружили уязвимость чипов Infineon, позволяющую клонировать Yubikey при физическом доступе к нему. Проблема затрагивает все ключи до версии прошивки 5.7. В компании отметили, что уровень угрозы «умеренный», так как необходим физический доступ, дорогостоящее оборудование и глубокие технические знания[51][52][53].
Социальная активность
В 2018 году компания раздавала бесплатные ключи YubiKey с гравировкой подписчикам WIRED и ArsTechnica[54].
В ходе протестов 2019—2020 годов в Гонконге Yubico предоставила 500 ключей местным активистам, ссылаясь на миссию по защите уязвимых пользователей и сотрудничество со сторонниками свободы слова[55][56].