起因是最近Chatgpt的cyber认证要求使用硬件密钥作为二次认证,推荐的YubiKey过于昂贵,所以去查了下是否有FIDO2的开源实现,发现还真有,而且手边刚好有之前研究badusb留下的一块rp2040
usb转typec的公对公pdd价格2块左右,rp2040价格pdd8块左右
PS:如果有更高的安全需求建议直接上RP2350贵不了多少,我是刚好手边有板子
刷机
很简单
我这里使用的是仿RP-2040-zero

下载pico_fido_pico-8.0.uf2 后按住boot按键将设备连接电脑,文件管理器应该会看到一个叫做RPI-RP2的驱动器

将固件放入即可,他会自动重启,理论上到这里如果只是需要一个硬件密钥就已经完成了,但还可以继续设置下
翻找过后找到了佬友的一个配置页面
我的2040是这样配置的

这样配置完成后,这块picokey应该就能被识别为一块Yubikey,接下来就可以去下载它的管理程序了
如果顺利,一个猴版的yubikey就做出来了

但不知道为什么它的账户管理功能是废掉的,有可能是因为我用的是2040?
所以我干脆直接用了Picoforge这个项目作为管理

librekeys + PicoForge
前面说了原版固件+ya管理器的情况下账户功能是废掉的
所以我又尝试了librekey的fork
编译刷写
依赖
brew install --cask gcc-arm-embedded
brew install cmake ninja git
源码
git clone --recursive https://github.com/librekeys/pico-fido2.git
git clone --recursive https://github.com/raspberrypi/pico-sdk.git
编译
cd pico-fido2
cmake -S . -B build-rp2040 -G Ninja \
-DPICO_SDK_PATH="../pico-sdk" \
-DPICO_BOARD=pico \
-DENABLE_OATH_APP=ON \
-DENABLE_OTP_APP=ON
cmake --build build-rp2040
之后和前面一样刷入即可
(pythonenv) ➜ build-rp2040 git:(main) ✗ ls
CMakeFiles pico-sdk pioasm-install build.ninja CMakeCache.txt libtinycbor.a pico_fido2.dis pico_fido2.elf.map pico_fido2.uf2
generated pioasm bs2_default.elf.map cmake_install.cmake libmbedtls.a pico_fido2.bin pico_fido2.elf pico_fido2.hex pico_flash_region.ld
(pythonenv) ➜ build-rp2040 git:(main) ✗ cp pico_fido2.uf2 /Volumes/RPI-RP2/pioc_fido2.uf2
(pythonenv) ➜ build-rp2040 git:(main) ✗

PicoForge也可以进行设置

依旧不能用,也不折腾了,对于我的需求也只是硬件密钥,直接用PicoForge就行
其他选择
pico-fido2 fork
picofido的fork版,应该是原作者将配置页面隐藏,并推荐大家去使用picokeyapp后出现的fork项目
https://github.com/polhenarejos/pico-fido2
RS-kay
只支持RP2350的Rust实现
GitHub - TheMaxMur/RS-Key: Turn a $5 Raspberry Pi RP2350 board into an open-source hardware passkey: WebAuthn/FIDO2 logins, ssh & git signing, OpenPGP, PIV, TOTP. Rust firmware, no_std. · GitHub
Fidelio
另一个RP2040的安全密钥实现
参考
- What Is FIDO2? | Microsoft Security
- GitHub - polhenarejos/pico-fido: FIDO Passkey for Raspberry Pico and ESP32 · GitHub
- https://xz.aliyun.com/news/16070
- 低成本自制Yubico Yubikey with Pico Key:RP2040 开发板烧录 Pico-FIDO2/OpenPGP复合固件全流程 - 天远日记
- Pico Fido - Pico Keys
- https://webauthn.io/