Pico Key 的实战指南:Fido2 与 OpenPGP

杂谈天穹何以高 发布于 12 小时前 11 次阅读 2161 字 预计阅读时间: 10 分钟


上回说到~

上次讲到如何刷机和设置一个属于自己的低成本Pico Key:

这次就是讲这么一个 Key 的主要用途了。

注意事项与项目现状

本文发布的时候(2025-12-24),Pico Key 的初始化工具(pico-commissioner)和 Pico-fido2 的仓库都处于不可用的状态。Pico Key作为一个许多人都在使用的项目,我难以评价这到底是好是坏(

Pico Commissioner 原始地址:https://www.picokeys.com/pico-commissioner/

1766567449 Image

Pico-fido2 原始仓库:https://github.com/polhenarejos/pico-fido2

仓库内目前没有有效代码,你可以从其他人 Fork 的仓库中自行编译固件。原作者说是重构项目,所以才下线了这个初始化工具,参见 https://github.com/polhenarejos/pico-fido/issues/216#issuecomment-3643506946

安装 Yubico Authenticator

下载和安装Yubico Authenticator,这是一个全平台应用,可以方便的管理Pico Key的各项功能。

如果正确按照上个教程中提示的方法设置了设备的PID和VID,并且把设备名称设置成 Yubico Yubikey,那么软件应当可以直接把你的Pico Key识别成YubiKey。

1766568223 Image

此后我们大多数管理操作都要在这里完成。

Pico Fido

这部分将会介绍 Pico Fido的相关功能。

OTP生成器

Pico Key可以作为你的OTP一次代码生成器,一次代码只在Key内生成。

在管理软件内点击左侧的“账户”选项卡,点击添加账户,然后在支持的网站上(如谷歌和Github),在账户安全里找到类似“设置身份验证器”的字样,网站会提供一个二维码,让你使用手机APP扫描,我们只需点击管理软件内的扫描二维码按钮,他可以自己找到当前电脑屏幕上的二维码并添加(二维码不要被窗口遮挡)。

1766568704 Image

你可以用这个方法在Pico Key内添加多个网站的OTP验证,最多支持添加64个账户。

1766568842 Image

警告

最好不要使用单个Pico Key作为你唯一的OTP生成器,要是丢了可就不好玩了

WebAuthn与通行密钥

这可能是最常用的一项功能,在支持的网站上可以作为第二重身份验证的要素,也可以实现无用户名直接登录,实现你按一下就能登陆的体验。

在网站的账户设置里找到“通行密钥”“PassKey”之类的字样,在里面点击添加验证器,浏览器会可能会调用Windows Hello,点击使用安全密钥,然后用你设置的PIN解锁你的Key,然后按下按钮就能录入Key了。

登陆时也一样,点击“使用通行密钥登陆”,浏览器会调用系统功能,输入你的PIN解锁Key,然后按一下就能登陆到对应的网站上。

若是读者在本网站上有注册和,也可以使用本网站提供的通行密钥功能进行测试。

设置通行密钥

你还没有登录。

测试通行密钥

你还没有登录。

已绑定的通行密钥

认证器名称认证器类型添加时间上次使用无用户名登录操作
你还没有登录。
认证器名称认证器类型添加时间上次使用无用户名登录操作

还是说你真的要退出登录后尝试登陆吗???

槽位设置

这边可以设置空闲状态下Pico Key上的按钮的功能,槽位2的长按似乎设置了没有效果。

我个人设置的是静态密码,这样按一下就能在Windows上自动登录,非常方便(只是似乎不太安全)

1766585677 Image

Pico OpenPGP

Pico OpenPGP 主要是为Pico Key提供了智能卡相关功能,包括OpenPGP智能卡和PIV智能卡。

这里着重介绍OpenPGP加密功能。Linux下可以使用KDE提供的Kleopatra软件或者使用gpg命令行工具,Windows下则是安装Gpg4Win组件,上述两项工具都包含在Gpg4Win里面了。

首先是创建属于你自己的密钥对,密钥对包含私钥和公钥,公钥就是公开给所有人的,让其他人可以通过你的公钥为你加密文件,私钥是保管在你自己这里的,不可泄漏。

这么听起来似乎不需要Pico Key的参与?实际上Pico Key就是为了保护你的私钥。

默认情况下私钥是一个文件,如果电脑中有恶意软件,他就可以直接读取你的私钥(虽然可以使用密码保护私钥,但仍然不够安全),从而假装是你,解密别人发给你的加密文件或者消息。

使用物理安全密钥后可以把私钥保存在Pico Key中并且一旦私钥进入Pico Key就无法取出,使用私钥时要求你的Pico Key必须连接在电脑上,并且输入了正确的PIN(这个PIN与前文的Fido功能的PIN可以不一样),你才能完成签名和解密的操作,这样就大大提升了安全性。你还可以额外开启用户存在性验证(UIF),每次操作时还要额外按一下Key上的按钮,确保是你本人在电脑前操作。

1766571574 Image

加密/解密文件

跟别人建立通信前你们需要交换你们的公钥,加密时使用别人的公钥加密文件,这样对面可以用他的私钥解密文件,反之亦然,别人用你的公钥加密文件,你用你自己的私钥解密,只有拥有对应私钥的人(也就是你)才可以解密这个文件,这样就可以保护文件内容不被其他人看见了。

1766571774 Image

签名文件

选择你要签名的文件,用你的私钥签名,会生成对应这个文件的sig签名文件,别人就可以用你的公钥验证签名,这有助于保护你想传输的文件不被人篡改,你下载软件时看到作者为你提供的sig签名文件就是这么回事。

1766572509 Image

Git 推送签名

可以为Git操作签名,验证代码由你本人提交,将你的公钥配置在Github或其他代码托管平台,然后本地开启Git commit签名,这样这次提交操作就会被Github标记为经过验证的提交。

使用以下命令设置你的Git:

# 配置Git使用指定密钥进行签名
git config --global user.signingkey [密钥ID]

# 启用提交签名
git config --global commit.gpgsign true

Windows 下需要额外操作,默认情况下 Git 会调用 Git Bash 环境中的 gpg 导致找不到你的密钥,你需要设置 Git 使用 Gpg4Win 提供的 gpg 程序:

# 找到gpg4win的安装路径(通常在C:\Program Files (x86)\Gpg4win)
# 设置Git使用gpg4win的gpg程序
git config --global gpg.program "C:\Program Files (x86)\Gpg4win\bin\gpg.exe"

设置用户存在认证(UIF)

默认情况下只需要提供PIN就能解锁OpenPGP智能卡进行使用了,无法完全杜绝被人冒用身份的风险,因此还可以开启UIF,即对应操作前都需要按下Pico Key上的按钮进行认证,开启方法如下:

# 查看当前UIF设置
gpg --card-edit
> admin
> key-attr

# 开启签名密钥的UIF
gpg --edit-card
> admin
> key-attr
> 选择签名密钥(通常为1)
> 设置UIF为on
> quit

# 开启加密密钥的UIF
gpg --edit-card
> admin
> key-attr
> 选择加密密钥(通常为2)
> 设置UIF为on
> quit

# 开启认证密钥的UIF
gpg --edit-card
> admin
> key-attr
> 选择认证密钥(通常为3)
> 设置UIF为on
> quit

Pico OpenPGP还提供了PIV智能卡的支持,但是目前我玩不明白,问AI的结论是PIV智能卡提供与OpenPGP相似的功能和使用场景,只是这里的公私钥都是X.509 v3国际标准证书格式,用在更正式的加密场合,目前我个人似乎还是用不到。

结语

这篇文章就主要分享一下我在设置Pico Key之后我个人目前用到的一些用途,回过来看发现很多地方似乎都说的含糊不清,真的是说了和没说一样,只是希望有人能得到一些启发吧。

除非注明,否则均为天远日记原创文章,转载必须以链接形式标明本文链接

本文链接:https://www.tqhyg.net/post659.html