Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
kl-security-key — Экспериментальный аутентификатор FIDO2/WebAuthn на RP2040 с packed-аттестацией и документированной совместимостью с Windows/Entra | Kitploit
Инструменты/GitHubGitHub/karaaslanlabs/kl-security-key
Безопасность встроенных системБезопасность IoTКриптографияАппаратная БезопасностьБезопасность оборудования и IoTУправление идентификацией и доступом (IAM)АутентификацияСтатьи и ИсследованияОбучение и Образование
GitHubkaraaslanlabs/kl-security-key

kl-security-key

811107 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Экспериментальный аутентификатор FIDO2/WebAuthn на RP2040 с packed-аттестацией и документированной совместимостью с Windows/Entra

РепозиторийСайт

KL Security Key

Publication hygiene License: AGPL-3.0

Экспериментальный открытый инженерный и интероперабельный проект аутентификатора FIDO2/WebAuthn на RP2040 от Karaaslan Labs.

Статус: инженерно-исследовательский проект. Не сертифицирован FIDO Alliance. Не является коммерческим высоконадёжным токеном безопасности.

Границы доказательной базы: приведённые ниже наблюдения на реальном устройстве относятся к замороженной версии v5.2. Работы по усилению безопасности в v5.3 выполнялись только вне устройства и не были установлены или проверены на физическом эталоне.

KL Security Key — это курируемая производная от polhenarejos/pico-fido. Проект исследует, насколько далеко можно продвинуть недорогую плату RP2040 в качестве физического аутентификатора WebAuthn, сохраняя при этом явными идентичность, аттестацию, доказательства валидации и границы доверия.

Краткий обзор

ОбластьЗамороженный физический эталон v5.2
Аппаратное обеспечениеОтладочная плата RP2040 с USB
ТранспортUSB FIDO HID
Версии CTAP/GetInfoFIDO_2_0, FIDO_2_1, FIDO_2_3
Присутствие / верификация пользователяФизическая кнопка + поддержка PIN/UV
АттестацияPacked ES256, x5c, сертификат, специфичный для устройства
AAGUIDd9359dc7-6938-5822-b951-006507247d8f
ИнтероперабельностьWindows WebAuthn + проверка в локальном тенанте Microsoft Entra
РаспространениеПриоритет исходного кода; бинарный релиз прошивки KL отсутствует
Защищённый элементОтсутствует
СертификацияНе сертифицирован FIDO Alliance

Область применимости платы и размера флеш-памяти

Сборочный скрипт исходного эталона в ветке main выбирает -DPICO_BOARD=pico в scripts/build-kl-reference.sh, ориентируясь на стандартную конфигурацию платы Raspberry Pi Pico с 2 МиБ внешней флеш-памяти. Изолированный сборщик v5.3 вне устройства также выбирает -DPICO_BOARD=pico; его валидатор выходного UF2 проверяет адресное окно флеш-памяти Pico размером 2 МиБ. Это ограничения исходного кода/сборки, а не физическая валидация каждой платы RP2040.

Другие платы RP2040 могут иметь иную ёмкость флеш-памяти или конфигурацию платы. В upstream-проекте Pico FIDO issue #278 описан сбой при первой операции WebAuthn на плате с большей флеш-памятью, когда заданный при компиляции лимит флеш-памяти прошивки не соответствовал её фактической разметке во время выполнения. Эта находка upstream не является воспроизведённым сбоем KL Security Key, но она иллюстрирует, почему одного лишь совпадения чипа RP2040 недостаточно как доказательства совместимости.

Не следует предполагать, что эталонная прошивка KL работает на произвольных платах RP2040, или прошивать устройство, основываясь лишь на успешной сборке или корректной структуре UF2. Здесь не заявляется ни совместимость с альтернативными платами, ни новые аппаратные испытания, ни распространение бинарной прошивки. Замороженный физический эталон v5.2 не изменялся.

Зачем существует этот проект

Проект начался с практического вопроса: может ли недорогая отладочная плата стать пригодным физическим ключом безопасности для реального входа через WebAuthn, не скрывая инженерных компромиссов?

Интересной оказалась не сама задача заставить RP2040 работать с FIDO2. Более сложными частями стали идентичность аутентификатора, физическое присутствие пользователя, аттестация, поведение в Windows, воспроизводимые изменения исходного кода, интероперабельность с проверяющей стороной и точное понимание того, что доказательства действительно доказывают — а что нет.

Проверено на замороженном физическом эталоне v5.2

Результаты в этом разделе получены на сохранённом устройстве v5.2 и не должны приписываться более поздним версиям исходного кода или экспериментальным сборкам прошивки. См. docs/validation-evidence.md для замороженного SHA-256 файла UF2 и границ тестирования.

  • Свежая регистрация WebAuthn: PASS.
  • Аутентификация / GetAssertion с тем же учётным данным: PASS.
  • Провайдер Windows: MicrosoftCtapHidProvider.
  • Наблюдался путь CTAP2 с U2fProtocol=false.
  • Для регистрации и входа требуется физическое присутствие пользователя.
  • Проверен путь PIN/верификации пользователя.
  • Подпись packed-аттестации: PASS.
  • Проверка цепочки от листового сертификата аттестации до KL Security Key Root CA: PASS.
  • Совпадение AAGUID между данными аутентификатора и расширением сертификата: PASS.
  • Локальная для тенанта Microsoft Entra регистрация с привязкой к устройству и свежий вход с физическим ключом: PASS при отключённом принудительном применении аттестации.

Результат Entra — это результат интероперабельности, а не сертификация Microsoft или глобальное признание аутентификатора. Точные границы см. в docs/interoperability-case-study.md.

Разработка v5.3 — только вне устройства

Текущее усиление HID/APDU/OTP отслеживается в Draft PR #7. Оно включает путь интеграции SDK на основе патчей, регрессионные тесты на стороне хоста и локальные доказательства изолированной сборки ARM. Эти проверки не являются тестом на реальном устройстве, полным тестом соответствия FIDO, сертификацией или производственным релизом. GitHub Actions выполняет тесты хоста/исходного кода и проверки публикации; полные сборки ARM проверены локально, а не в GitHub Actions.

Ветка main и её эталонная сборка не включают автоматически неслитые патчи v5.3. Для актуальных экспериментальных доказательств и нерешённых блокеров используйте PR #7, а не считайте исторические хеши UF2 или отдельные пройденные тесты последним статусом оборудования. Ни один бинарный файл прошивки из этой работы не предлагается для скачивания или прошивки.

Архитектура

flowchart LR
    RP["Relying party / Microsoft Entra"] --> WA["Browser + Windows WebAuthn"]
    WA --> CTAP["CTAP2 over USB HID"]
    CTAP --> KEY["KL Security Key<br/>RP2040"]
    KEY --> AT["Packed ES256 attestation<br/>device-specific key + x5c"]
    AT --> ROOT["KL Security Key Root CA"]

Валидированная среда выполнения намеренно узкая: FIDO HID — это интерфейс ключа безопасности; не связанные с ним интерфейсы среды выполнения в стиле клавиатуры/CCID не входят в эталонный профиль KL.

Сборка эталонного профиля исходников main

git clone --recurse-submodules https://github.com/karaaslanlabs/kl-security-key.git
cd kl-security-key
export PICO_SDK_PATH=/path/to/pico-sdk
export PICO_TOOLCHAIN_PATH=/path/to/arm-none-eabi-toolchain
./scripts/build-kl-reference.sh

Сборка main включает принудительную проверку физического присутствия пользователя, runtime-профиль только с FIDO и путь packed-attestation; это не сборка несмёрженных изменений v5.3. Действительный материал ключей/сертификатов аттестации должен быть предоставлен отдельно; закрытые ключи аттестации не публикуются и не предоставляются автоматически этим репозиторием. Сборка UF2 не даёт разрешения на прошивку устройства.

Границы доверия и отсутствие заявлений

Этот репозиторий не заявляет о:

Скачать инструмент