Google OpenSK 快速入门指南
介绍
前不久 Google 完全开源了其安全密钥项目 OpenSK,该实现支持 FIDO U2F 和 FIDO2 规范,支持 W3C 的 WebAuthn 标准,并采用安全可靠的 Rust 语言编写。
利用 OpenSK 开源项目,研究人员、安全密钥制造商以及发烧友可以快速制作出支持 FIDO 规范的安全密钥设备,体验更加安全的用户身份验证服务。
为了让用户能够低成本、快速上手体验 OpenSK,我们在 nRF52840 MDK USB Dongle 上做了移植,使其能够简单快速升级 OpenSK 固件而无需使用昂贵的下载工具。
硬件要求
- nRF52840 MDK USB Dongle(裸板或外壳版都行,可自行在淘宝选购)
- 最新版 Google Chome 浏览器(38+)或 Firefox 浏览器

升级 UF2 Bootloader
nRF52840 MDK USB Dongle 早期出货版本采用的是 Open BootLoader 固件,为了方便日后更新 OpenSK 固件,需要将其升级为最新的 UF2 BootLoader。UF2 Bootloader 支持直接将固件拷贝到 U 盘来完成固件更新,无需安装专用的烧录工具,非常方便使用。
如果你手上的硬件已经预置了 UF2 Bootloader(按住按钮再插入电脑,出现名为 MDK-Dongle 的 U 盘设备,即已预置 UF2 Bootloader),则可以跳过该步骤。
如果是 Open Bootloader 固件,可以按照以下步骤完成升级:
- 安装 Python,Python 官网的安装包中已经包含了
pip
; - 在命令行中运行以下命令安装
nrfutil
:pip install nrfutil
- 下载已签名的 UF2 Bootloader 固件:uf2_bootloader-0.2.13-44-gb2b4284-nosd_signed.zip;
- 长按 Dongle 上的按键并插入电脑,红色 LED 处于呼吸状态表明已处于正常 DFU 模式;
- 运行以下命令更新固件,
COMx
需替换为实际设备串口号:nrfutil dfu usb-serial -pkg uf2_bootloader-0.2.13-44-gb2b4284-nosd_signed.zip -p COMx

烧录 OpenSK 固件
如果你已安装 UF2 Bootloader,便可以进行下一步:烧录 OpenSK 固件。最新的 OpenSK 固件可以在 GitHub 下载,该固件以 uf2
文件格式提供:
点击下载 opensk_nrf52840_mdk_usb_dongle_gece14d7.uf2
长按 Dongle 上的按键并插入电脑,绿灯常亮并出现名为 MDK-DONGLE 的 U 盘设备,表明此时已进入 DFU 模式,直接拷贝 uf2
固件到 MDK-DONGLE 即可烧录 OpenSK 固件:

固件烧录成功后,UF2 Bootloader 会自动引导运行 OpenSK,系统将会出现名为 OpenSK 的设备:

测试 OpenSK 功能
目前很多网站及应用已经支持 FIDO 二次验证标准,例如: Microsoft、Google、Facebook、Twitter、GitHub、GitLab 等账户。这里我们演示如何使用 OpenSK 安全密钥登陆 Microsoft 账户:
- 进入系统设置 -> 账户 -> 登录选项 -> 安全密钥 -> 管理,为你的设备设置简单的 PIN 码:
- 注册你的安全密钥:登录 Microsoft 账户 -> 安全性 -> 更多安全选项 -> Windows Hello 和安全密钥 -> 设置安全密钥:
- 点击下一步,按照提示插入设备,输入前面设置的 PIN 码,轻触按键注册密钥:
- 为你的密钥设置名字,以便区分其他密钥设备:
- 下次登录 Microsoft 账户时就可以选择使用 Windows Hello 或安全密钥登录,无需再输入账户密码:
你也可以尝试登录其他支持 FIDO 安全标准的网站,使用过程和上述描述大同小异。
最后的话
至此,你应该基本了解 OpenSK 及其使用场景。本文并未涉及 OpenSK 的代码实现以及如何设置开发环境来编译 OpenSK,如需了解更多此方面的内容,可以参考:
版权声明
本文为「造物邦」原创文章,遵循署名 4.0 国际 (CC BY 4.0) 版权协议,转载请附上原文出处链接和本声明。 原文出处链接:https://blog.makerdiary.com/zh-hans/google-opensk-quick-start/