Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
kl-security-key — 实验性 RP2040 FIDO2/WebAuthn 认证器,具有打包认证和已记录的 Windows/Entra 互操作性 | Kitploit
工具/GitHubGitHub/karaaslanlabs/kl-security-key
嵌入式系统安全物联网安全密码学硬件安全硬件与物联网安全身份与访问管理 (IAM)身份验证论文与研究学习与教育
GitHubkaraaslanlabs/kl-security-key

kl-security-key

实验性 RP2040 FIDO2/WebAuthn 认证器,具有打包认证和已记录的 Windows/Entra 互操作性

811107天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库网站

KL Security Key

Publication hygiene License: AGPL-3.0

由 Karaaslan Labs 开发的实验性开源 RP2040 FIDO2/WebAuthn 认证器工程与互操作性项目。

状态: 工程/研究项目。未获得 FIDO 联盟认证。 并非商用高保障安全令牌。

证据边界: 下文中的真实设备观测结果属于已冻结的 v5.2。v5.3 的加固工作仅在设备外进行,尚未在物理参考设备上安装或验证。

KL Security Key 是 polhenarejos/pico-fido 的精选衍生项目。它探索低成本 RP2040 开发板作为物理 WebAuthn 认证器所能达到的极限,同时明确身份、认证声明、验证证据与信任边界。

概览

领域已冻结的 v5.2 物理参考设备
硬件RP2040 USB 开发板
传输USB FIDO HID
CTAP/GetInfo 版本FIDO_2_0、FIDO_2_1、FIDO_2_3
用户存在性 / 验证物理按键 + PIN/UV 支持
认证声明Packed ES256、x5c、设备专属证书
AAGUIDd9359dc7-6938-5822-b951-006507247d8f
互操作性Windows WebAuthn + 租户本地 Microsoft Entra 验证
分发源码优先;不发布 KL 固件二进制
安全元件无
认证未获得 FIDO 联盟认证

开发板与闪存容量范围

main 源码参考构建在 scripts/build-kl-reference.sh 中选择 -DPICO_BOARD=pico,面向配备 2 MiB 外部闪存的 Raspberry Pi Pico 标准开发板配置。独立的 v5.3 设备外构建器同样选择 -DPICO_BOARD=pico;其 UF2 输出校验器 会检查 Pico 的 2 MiB 闪存地址窗口。这些是源码/构建约束,而非对每一块 RP2040 开发板的物理验证。

其他 RP2040 开发板可能具有不同的闪存容量或开发板配置。上游 Pico FIDO issue #278 记录了一块大闪存开发板上首次 WebAuthn 操作失败的情况,原因是固件的编译期闪存限制与其运行时布局不匹配。该上游发现并非 KL Security Key 的复现故障,但它说明了为何仅匹配 RP2040 芯片本身不足以作为兼容性证据。

请勿假定 KL 参考固件可在任意 RP2040 开发板上运行,也不要仅凭构建成功或 UF2 封装有效就向设备烧录固件。此处不主张任何替代开发板的兼容性、新的硬件测试或固件二进制分发。已冻结的 v5.2 物理参考设备未作任何更改。

项目缘起

项目始于一个实际问题:一块廉价的开发板能否成为可用于真实 WebAuthn 登录的物理安全密钥,同时不隐藏工程上的妥协?

有趣的工作最终并非仅仅让 RP2040 运行 FIDO2。更困难的部分在于认证器身份、物理用户存在性、认证声明、Windows 行为、可复现的源码变更、依赖方互操作性,以及确切了解证据能证明什么——以及不能证明什么。

在已冻结的 v5.2 物理参考设备上验证

本节结果均使用保留的 v5.2 设备获得,不得归因于后续源码或实验性固件构建。有关冻结的 UF2 SHA-256 与测试边界,请参见 docs/validation-evidence.md。

  • 全新的 WebAuthn 注册:通过。
  • 使用同一凭据进行身份验证 / GetAssertion:通过。
  • Windows 提供程序:MicrosoftCtapHidProvider。
  • 观察到 CTAP2 路径,且 U2fProtocol=false。
  • 注册和登录均需要物理用户存在。
  • PIN/用户验证路径已验证。
  • Packed 证明签名:通过。
  • 证明叶证书 → KL Security Key Root CA 验证:通过。
  • 认证器数据与证书扩展之间的 AAGUID 一致性:通过。
  • Microsoft Entra 租户本地设备绑定注册及全新物理密钥登录:在禁用证明强制的情况下通过。

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 构建启用了物理用户在场强制、仅 FIDO 运行时配置和打包证明路径;它不是未合并的 v5.3 变更的构建。有效的证明密钥/证书材料必须单独配置;私有证明密钥不会由本仓库发布或自动配置。构建 UF2 并不授权刷写设备。

信任边界与非声明

本仓库不声称:

  • FIDO 联盟认证;
  • 安全元件级别的物理密钥提取防护;
  • 通用依赖方信任、允许列表或兼容性;
  • 与 YubiKey、Nitrokey 或其他商业安全密钥厂商的等效性;
  • Karaaslan Labs 对上游/项目 USB VID/PID 的所有权;
  • Microsoft 认证或全球厂商认可;
  • 与某一依赖方在协议层面的成功即证明可被另一依赖方接受。

在将本参考实现视为工程/研究认证器之外的任何事物之前,请先阅读 THREAT-MODEL.md。

文档地图

文档用途
docs/architecture.md运行时配置、源码布局与工程边界
docs/attestation-and-pki.mdAAGUID、打包证明与 PKI 模型
docs/validation-evidence.md物理参考与精选源码验证证据
docs/interoperability-case-study.md依赖方 / Microsoft Entra 互操作性证据与局限
docs/windows-webauthn-debugging.md以证据为导向的 Windows/WebAuthn 调试工作流
THREAT-MODEL.md威胁模型与安全非声明
UPSTREAM.md上游来源与衍生变更
SECURITY.md漏洞报告与安全策略

源码、来源与发布模型

pico-keys-sdk 子模块固定到已知的上游提交。KL 特定的 SDK 变更由 scripts/apply-sdk-overlay.py 应用,该脚本精确固定提交,并在遇到意外源码状态时失败关闭。

本公开仓库有意围绕 KL Security Key 参考路径进行精选。无关的继承研究产物和遗留发布辅助工具不属于已发布的 KL 范围;上游来源仍记录在 UPSTREAM.md 和 Git 历史中。

在 USB 身份/分发要求仍未解决期间,二进制分发有意不作为初始发布目标。源码、文档和验证方法是主要产物。

公开证明根证书位于 certs/KL-Security-Key-Root-CA-v1.cert.pem。私有根/设备密钥永不发布。

贡献与安全

欢迎贡献,前提是规模小、可审计且明确说明安全影响。请从 CONTRIBUTING.md 开始。不要为未修补的漏洞提交公开 issue;请遵循 SECURITY.md。

许可证与上游致谢

KL Security Key 衍生自 polhenarejos/pico-fido 并使用 polhenarejos/pico-keys-sdk。源码仍遵循 GNU Affero General Public License v3.0;参见 LICENSE、NOTICE.md 和 UPSTREAM.md。

Karaaslan Labs 不声称对上游 Pico FIDO / Pico Keys SDK 工作拥有著作权。原始声明予以保留,KL 特定修改另行记录。

工程咨询

如需有边界的 WebAuthn/passkey 调试或 FIDO2 认证器/证明工程咨询,请联系 [email protected]。

实验性物理 KL Security Key 不出售。

Karaaslan Labs:https://karaaslanlabs.com

下载工具