Как превратить плату за 500 рублей в аппаратный ключ безопасности
Аппаратные ключи вроде YubiKey стоят от 50 до 100 долларов, а для надежности их обычно покупают сразу два. Если вам просто хочется защитить домашний сервер, подписывать коммиты в Git через аппаратный модуль или попробовать беспарольный вход через Passkeys, ценник кусается. Недавно наткнулся на проект RS-Key, который решает эту задачу неожиданно элегантно.
Проект превращает любую доступную плату на микроконтроллере Raspberry Pi RP2350 в полнофункциональный USB-токен. Все, что требуется — скачать готовый бинарник и закинуть его на плату как на обычную флешку. Без пайки, программаторов и сборки из исходников.
Что внутри прошивки
RS-Key написан на Rust без стандартной библиотеки (no_std) и эмулирует композитное USB-устройство. Когда вы вставляете плату в компьютер, система видит сразу несколько интерфейсов: FIDO HID для веб-авторизации, CCID смарт-карту и клавиатуру.

Вот что умеет эта крошечная прошивка:
- FIDO2 и WebAuthn. Поддерживает вход по Passkeys в браузерах, двухфакторную аутентификацию и аппаратные SSH-ключи типа
ed25519-sk. Подтверждение физического присутствия работает по нажатию стандартной кнопки BOOT на плате. - Смарт-карта OpenPGP 3.4. Хранит ключи для подписи коммитов в
git, шифрования и расшифровки файлов черезgpg. Поддерживает RSA и эллиптические кривые. - PIV и OATH. Реализует стандарты смарт-карт X.509 и генерацию одноразовых кодов TOTP и HOTP. При выборе специальной сборки с подменой VID/PID устройство распознается стандартными утилитами Yubico вроде
ykman. - Резервное копирование сида. Мастер-ключ для FIDO можно выгрузить в виде мнемонической фразы BIP-39 или SLIP-39, чтобы восстановить доступ при потере платы.
- Экспериментальная постквантовая криптография. Автор встроил схемы ML-DSA-44 и ML-DSA-65, оптимизировав использование стека под память RP2350.
Как запустить за пару минут
Процесс первого старта максимально простой. Находим любую плату на RP2350 (например, Waveshare RP2350-One или Seeed XIAO RP2350) и делаем четыре шага:
- Скачиваем файл
rs-key-<версия>-default.uf2из вкладки релизов репозитория. - Зажимаем кнопку BOOT на плате и вставляем ее в USB-порт компьютера. В системе появится накопитель с именем
RP2350. - Копируем файл
.uf2на этот диск. Плата сразу перезагрузится уже в режиме ключа безопасности. - Открываем тестовый сайт webauthn.io, пробуем зарегистрировать новый ключ, задаем PIN-код и нажимаем кнопку BOOT для подтверждения касания.
Для любителей устройств с экраном есть отдельная сборка под плату Waveshare RP2350-Touch-LCD. В этом случае подтверждение входа и ввод PIN-кода происходят прямо на дисплее устройства.

Настройка и софт для хоста
Для управления ключом из терминала в репозитории есть утилита rsk на Python и дашборд rsk-tui. С их помощью можно смотреть статус устройства, менять настройки светодиода, генерировать бэкапы и управлять слотами.
Если консоль вам не по душе, сторонний проект PicoForge предоставляет полноценный графический интерфейс для настройки всех модулей RS-Key.

Для разработчиков, у которых пока нет под рукой чипа RP2350, в папке tools/emu лежит эмулятор. Он запускает логику прошивки прямо на ПК через сокеты или виртуальный USB-порт Linux (USB/IP), что помогает тестировать интеграции без физического железа.
Ограничения и модель угроз
Автор проекта честно предупреждает в документации: RP2350 — это обычный микроконтроллер общего назначения, а не сертифицированный чип безопасности (Secure Element).
Если ваш потенциальный противник обладает лабораторией с оборудованием для снятия слоев кремния, зондирования шины или инъекции сбоев по питанию, микросхема не устоит. RS-Key не защитит от физического вскрытия чипа на уровне лаборатории.
При этом в чипе RP2350 есть механизм OTP (однократно программируемые предохранители) и Secure Boot. В репозитории подробно описан процесс жесткой фиксации прошивки, когда мастер-ключ запекается в OTP, а загрузка разрешается только для подписанных вами бинарников. Это делает бессмысленным простой дамп флеш-памяти при краже брелока, но операция прожига предохранителей необратима.
Кому проект будет полезен
RS-Key отлично подойдет для повседневных задач разработчика:
- Подпись коммитов и тегов в Git без риска утечки закрытого ключа с диска ноутбука.
- Доступ к серверам по SSH с аппаратным подтверждением через
ed25519-sk. - Второй фактор для домашних лабораторий, аккаунтов GitHub или почты.
- Изучение работы протоколов CTAP2, WebAuthn и смарт-карт на реальном коде Rust.
Если вам нужен недорогой токен для работы или домашнего стенда, связка из копеечной платы RP2350 и прошивки RS-Key отрабатывает каждый вложенный рубль. Доверять ему корпоративные секреты под угрозой атак государственного уровня не стоит, но как практичный инструмент разработчика проект определенно заслуживает места на связке с ключами.
