Pico FIDO Picokeys 30元手搓安全密钥完全教程

拥有一个可以放在钥匙扣上的实体安全密钥是一件很酷的事情😋 当你打开淘宝搜索大名鼎鼎的yubikey,大几百元起步的单价令人望而却步,即使是相对便宜的canokey,也需要百元起步的价格,而安全密钥又建议至少一份冗余备份来防止把自己关在门外,令人深思的是自己的账户是否值得这么昂贵的钥匙来加锁(doge)

不过picokey的出现,使这件事得到了转机。网上有许多picofido的教程,但大多已经过时(会在下文提及),在自己实践之后,我希望能出一份小教程来补足这些部分。

PICO-FIDO

PICO FIDO是一个开源安全密钥工具,可以轻松地图形化地让你的树莓派Pico/Pico2支持webauthn等yubikey支持的部分(够用)功能,总成本可以压缩在小几十元/个。本文推荐使用Waveshare RP2350 One烧录v7.2固件,最低价格只需要二十多元购买硬件即可完成基础构建。

注意:RP2350 One是我实操的解决方案,也是较多教程的解决方案,这个固件在简中网页能找到的比较多,如果本文有不足,也方便读者查看其他文献。

开始

首先购买WS RP2350 One,淘宝直接买,原价大约32,新客有券再减几元。如果预算不是特别紧张,都建议买两份。

在到货之前,可以做好软件层面的准备:

先在电脑上下载基础固件,我推荐各位下载tumi大佬修改的7.2版本固件,是因为PICOFIDO作者在近几个月推进picokey商业化,不仅删除了免费的picokey配置网站转而推荐收费的PicoKey App,还在最新代码增加了防止回滚功能(这也是为什么我说如今许多教程已经过时,这些教程使用的是已经被删库的Pico Commissioner。)大佬修改了固件包以实现:

  1. 使用自定义签名(刷机自主可控)
  2. 删除防止回滚的代码(想怎么刷就怎么刷)
  3. 重新添加WebAuthn配置代码(没错,作者最新代码已经把这个删了,估计下一步就是只允许他自己的APP进行配置了)

在这里下载:Releases · vtumi/pico-fido

  • WARNING:使用上述固件,可能导致Secure Boot&Lock出问题,如果你的需求中有两个,那你可以选择安装旧版官方固件(如6.x)。

准备好固件,就可以开始下一步了!

到货开整

到货之后,你会发现它像U盘一样小巧,所以像使用U盘一样插上去,不过与此同时长按BOOT键。(BOOT键是以后使用Picokey按的键,即提示“触摸安全密钥”时按下的键,而RESET键不是用来恢复出厂的,而是按下它相当于拔出-插入一次,用于便捷插拔重置。)

在长按BOOT插入之后,就可以在文件资源管理器找到RP2350这个USB大容量存储器了,不过别把它当U盘,它只有4MB。

接下来,将准备好的固件(.uf2)拖入这个存储器,然后Pico会自动重启烧录固件,等待其烧录完成,就可以开始配置了:

如果你使用的是上面大佬的固件,可以使用图形化界面或者python命令行配置,如果你使用的是官方固件,一般使用python命令行配置,除非你是富哥花几十欧元购买官方应用。

如果使用图形化界面,你应该打开的是:

如果你使用python,请在这里下载pypicokey工具。

pypicokey

这个方法是通用的,所以写在前面,即使它是命令行,也非常简单。请提前安装python以保证程序能跑。下载仓库,解压缩后在程序主目录打开CMD或Powershell依次输入:

1
2
3
python ./setup.py install
pip install
python ./configure.py --apply

然后就可以开始配置

phphy网页

使用我说的那个大佬固件,可以直接打开他提供的网页(按道理来讲,烧录之后会有提示你打开设备配置页面的提示,你可以打开,或者选择用pypicokey。打开后就可以开始配置

推荐配置

(加粗的是强制配置,一字不漏抄写,否则可能缺失重要功能)

产品名称 (Product Name):yubico yubikey

PID预设:Yubikey 4/5

LED驱动:WS2812

LED引脚(PIN):16

LED亮度(这个比你想象的亮):1

LED模式:可调光,其余按需选择

按键超时:15

其余按需选择即可,加密算法我选的False,原理不知道,开了可能对安卓有不兼容,Secure的那几个开启之后会更安全,但只能烧录官方固件,详细作用如下:

微控制器RP2350和ESP32-S3设计为在启用安全启动时支持安全环境,并可选支持安全锁。这些特性允许主密钥加密密钥(MKEK)存储在一次性可编程(OTP)内存区域,该区域无法通过外部安全代码访问。该主密钥随后用于加密设备上所有私钥和秘密密钥,保护敏感数据免受闪存转储。

Microcontrollers RP2350 and ESP32-S3 are designed to support secure environments when Secure Boot is enabled, and optionally, Secure Lock. These features allow a master key encryption key (MKEK) to be stored in a one-time programmable (OTP) memory region, which is inaccessible from outside secure code. This master key is then used to encrypt all private and secret keys on the device, protecting sensitive data from potential flash memory dumps.

配置完成后,网页的两个都点一下,pypicokey的确认信息回车,即可开始使用你的picokey。

管理Picokey

由于picokey缺少独立管理工具(什么?你说Picokey APP?太贵了买不起我不知道有什么功能),我们可以使用Yubico Authenticator来管理Picokey。在Yubico Authenticator App| Yubico下载这个程序,它兼容我们的Picokey(除非你没有在配置时将其名称设置为Yubico Yubikey),并且拥有较为完整的功能(相比于YubiKey Manager等)。插上key,打开程序,即可探索功能:

  • OATH账户
  • 保存的通行密钥
  • 槽位(以后讲,你可以先自己玩玩)

“OATH账户”是你保存在Picokey上的可以生成6位/8位一次性密码代码的工具,这同其他Authenticator工具相似,不过它保存在你的实体Key上

“通行密钥”则是我们的主要目标:Webauthn,支持FIDO1/2,当你将账户绑定这个密钥,就会显示在这里[注:非密钥凭证可能存在,但无法列出,例如Cloudflare账户添加的passkey不会在这里展示,我也搞不懂哪些会哪些不会,如果你知道,请在下方留言帮助更多的人]

开始使用你的Picokey

请前往WebAuthn.io检测你的Picokey是否成功配置,先点Register,再点Authenticate,如果成功会有提示,失败也会有提示。

首次使用Picokey时,需要设置一个PIN,这个PIN相当于Picokey的密码,请务必牢记,只有8次试错机会,无法找回。如果你对你的记忆力很不有信心,可以在异地备份一份PIN。

如果正常配置,它应该会亮起LED灯。

给它穿衣服

电路板漏在外面太怪异了,一般来讲为Picokey套壳有两个方案:

  1. 热缩管,买个热缩管热缩一下,不太好看不推荐。
  2. 3D打印,可以用嘉立创3D打印,挺便宜的,推荐几个3D打印模型:Waveshare RP2350 One 外壳 自用版 - 免费 3D 打印模型 - MakerWorldRP2350/RP2040 One USB保护壳 用于Pico Keys - 免费 3D 打印模型 - MakerWorld 注意了,如果你有能力,可以试试自己对第二个保护壳预留的地方打孔,这样就能穿在钥匙扣上了,就像:

我的Picokeys

这里感谢RanBytes帮助我修改外壳、3D打印。

移动端使用

由于我只有Harmony4.2(HMS)和Android12(GMS)设备,只能提供这两个测试结果:

使用OTG转接器连接,两个设备Yubiko Authenticator都能识别、编辑;Android12设备第三方浏览器可以正常识别、使用,但Harmony4.2的Edge、Chrome无法调用,换用系统浏览器可以识别、使用。问题应该出在Authn管理器上,一般来讲你的安卓、iOS都是可以用的(因为一般都做好了适配,且新版安卓可以自选Authn管理器),华为鸿蒙的问题应该来自于浏览器和HMS是否做了适配。

如果你有其他的测试结果,欢迎在评论分享!

用Picokey加密文件

你肯定有些要加密的文件,能不能用Picokey实现呢?实际上由于Pico FIDO不同时支持OpenPGP(即使你在管理软件看到支持,实际上是用不了的),你无法在Kleoparata等需要这样协议的智能卡的程序中使用,也就是其对文件加密的支持性有限,不过你可以使用FileKey进行离线跨平台文件加密,它是基于FIDO2+PRF的,在使用前需要确保(这里的Yubikeys可以等效于Picokeys):

文件密钥兼容性要求:

  • 需要密码管理器或支持PRF(硬件密钥需FIDO2)的安全密钥。
  • 您的浏览器和作系统必须支持 WebAuthn+PRF 扩展
  • 在Chrome ≥112、Edge ≥112以及其他基于Chromium的浏览器上工作效果最佳

✅ 支持平台:

  • macOS:Apple Passwords、1Password、Yubikey(Safari ≥17 或 Chrome ≥112)。注意:YubiKeys在Safari中无法使用
  • Windows 11:1Password,YubiKey(Chrome/Edge ≥112)
  • Linux:YubiKey 配最新 Chrome/Chromium
  • iOS:Apple Passwords,1Password(Safari ≥17 或 Chrome ≥112)。注意:iOS 目前不支持 Yubikey 的 PRF
  • 安卓:Google 密码、1Password、YubiKey(Chrome ≥112)

⚠️ 已知限制:

  • ❌ Proton Pass 和 BitWarden 目前还不支持 PRF,→不兼容
  • ⚠️ Samsung Pass 可能能用,但官方不支持 PRF
  • !Windows 10及更早版本不支持 PRF!
  • ✅ 基于Chromium的浏览器(Brave、Vivaldi、Opera)应该能用

启用OpenPGP

如果你的需求一定要OpenPGP,也不是没有办法,Picokey作者也提供了对应的解决方案,但现存教程好像比较少,我目前也用不到,你可以看看以下索引:

  1. pico-fido2: Pico Fido + Pico OpenPGP——这个解决方案实现了Pico-FIDO同Pico-OpenPGP的完美结合,但是强制要求通过付费的Picokey APP获取,该应用的售价是EU€29.49/KeyEU€49.49/2Keys
  2. pico-openpgp: OpenPGP CCID smart card for Raspberry Pico and ESP32——这个方案是不需要再交钱的,但是单纯的Pico-OpenPGP与Pico-FIDO并不能共存,只能二选一烧录。值得注意地,如果你要从FIDO更改固件至OpenPGP,需要先烧录一次PicoNuke,这个固件是用来重置硬件的,烧录Nuke之后,你会丢失所有存储在这个Picokey上的数据,且无法恢复(真的很久!)

参考文献

硬件 Passkey:用来证明『我是我』 - 枫林灯语

32元制作一个超好玩的物理安全密钥Pico Keys - 淘气KO

pico-fido 最新修改固件和网页配置工具pico-commissioner - 开发调优 - LINUX DO

我是看这几篇文章做的Picokey,现在写的这篇文章也参考了一些内容。

如有其他疑问,请评论即可(评论系统在当装饰一年多后终于被我实装了)!会有邮件提醒我查看回复的。


Pico FIDO Picokeys 30元手搓安全密钥完全教程
https://blog.yimc.top/2026/03/02/guide-picokey/
作者
yimc
发布于
2026年3月2日
许可协议