在 Macos 上使用 libfido2 在 USB 安全令牌上设置 PIN

在 Macos 上使用 libfido2 在 USB 安全令牌上设置 PIN

我购买了 FIDO-U2F/FIDO2 USB 安全令牌,并设法将其添加为我的 macOS (sonoma) 上的 github 的密钥。

它不适用于另一个网站,我怀疑这是因为密钥还没有 PIN 码。

可以使用 libfido2 提供的 fido2-token 命令来设置密钥 PIN,libfido2 可以在 macOS 上通过brew 安装。

但它需要一个设备名称作为参数,我不知道要使用什么设备名称。在 Linux 上,我们必须添加用户设备,密钥卖家提供了这样做的方法,但他们没有提供 macOS 的任何信息。

Windows 在系统参数中提供了 GUI 界面来设置密钥 PIN,但我宁愿避免使用 Windows 机器来执行此操作。

编辑1:自从我发布问题后,我发现您可以通过进入 Apple 图标 > 关于本机 > 更多信息 > 系统报告 > USB 来查看已连接的 USB 设备。您的版本中的路径可能略有不同。

我确实看到了那里列出的密钥,就像我在与brew一起安装的lsusb时也看到了它一样,但它没有显示我可以用来与之对话的/dev。

答案1

经过进一步的研究,我找到了解决方案。

通过brew安装libfido2后,我们可以使用命令列出FIDO2安全令牌(例如USB密钥)fido2-token -L。它提供了用于其他命令的设备。

libfido2 命令的手册,尤其是 fido2-token 命令的手册可在此处找到:https://developers.yubico.com/libfido2/Manuals/fido2-token.html

$ fido2-token -L
ioreg://4295015862: vendor=0x1e0d, product=0xf1d0 (NEOWAVE NEOWAVE Winkeo FIDO2)

$ fido2-token -I ioreg://4295015862
proto: 0x02
major: 0x01
minor: 0x00
build: 0x00
caps: 0x05 (wink, cbor, msg)
version strings: U2F_V2, FIDO_2_0
extension strings: hmac-secret
aaguid: 3789da91f94346bc95c350ea2012f03a
options: rk, up, noplat, noclientPin
fwversion: 0x0
maxmsgsiz: 2048
maxcredcntlst: 0
maxcredlen: 0
maxlargeblob: 0
pin protocols: 1
pin retries: undefined
pin change required: false
uv retries: undefined

从 中可以看出noclientPin,当前未设置密钥 PIN。

然后我设置密钥 PIN

$ fido2-token -S ioreg://4295015862
Enter new PIN for ioreg://4295015862: 
Enter the same PIN again: 

$ fido2-token -I ioreg://4295015862
proto: 0x02
major: 0x01
minor: 0x00
build: 0x00
caps: 0x05 (wink, cbor, msg)
version strings: U2F_V2, FIDO_2_0
extension strings: hmac-secret
aaguid: 3789da91f94346bc95c350ea2012f03a
options: rk, up, noplat, clientPin
fwversion: 0x0
maxmsgsiz: 2048
maxcredcntlst: 0
maxcredlen: 0
maxlargeblob: 0
pin protocols: 1
pin retries: 8
pin change required: false
uv retries: undefined

我们可以看到密钥 PIN 码现已设置。

相关内容