Google OpenSK 快速入门指南

FIDO 安全密钥 Feb 28, 2020

介绍

前不久 Google 完全开源了其安全密钥项目 OpenSK,该实现支持 FIDO U2F 和 FIDO2 规范,支持 W3C 的 WebAuthn 标准,并采用安全可靠的 Rust 语言编写。

利用 OpenSK 开源项目,研究人员、安全密钥制造商以及发烧友可以快速制作出支持 FIDO 规范的安全密钥设备,体验更加安全的用户身份验证服务。

为了让用户能够低成本、快速上手体验 OpenSK,我们在 nRF52840 MDK USB Dongle 上做了移植,使其能够简单快速升级 OpenSK 固件而无需使用昂贵的下载工具。

硬件要求

nRF52840 MDK USB Dongle

升级 UF2 Bootloader

nRF52840 MDK USB Dongle 早期出货版本采用的是 Open BootLoader 固件,为了方便日后更新 OpenSK 固件,需要将其升级为最新的 UF2 BootLoader。UF2 Bootloader 支持直接将固件拷贝到 U 盘来完成固件更新,无需安装专用的烧录工具,非常方便使用。

如果你手上的硬件已经预置了 UF2 Bootloader(按住按钮再插入电脑,出现名为 MDK-Dongle 的 U 盘设备,即已预置 UF2 Bootloader),则可以跳过该步骤

如果是 Open Bootloader 固件,可以按照以下步骤完成升级:

  1. 安装 Python,Python 官网的安装包中已经包含了 pip
  2. 在命令行中运行以下命令安装 nrfutil
    pip install nrfutil
    
  3. 下载已签名的 UF2 Bootloader 固件:uf2_bootloader-0.2.13-44-gb2b4284-nosd_signed.zip;
  4. 长按 Dongle 上的按键并插入电脑,红色 LED 处于呼吸状态表明已处于正常 DFU 模式;
  5. 运行以下命令更新固件,COMx 需替换为实际设备串口号:
    nrfutil dfu usb-serial -pkg uf2_bootloader-0.2.13-44-gb2b4284-nosd_signed.zip -p COMx
    
从 Open Bootloader 升级到 UF2 Bootloader

烧录 OpenSK 固件

如果你已安装 UF2 Bootloader,便可以进行下一步:烧录 OpenSK 固件。最新的 OpenSK 固件可以在 GitHub 下载,该固件以 uf2 文件格式提供:

点击下载 opensk_nrf52840_mdk_usb_dongle_gece14d7.uf2

长按 Dongle 上的按键并插入电脑,绿灯常亮并出现名为 MDK-DONGLE 的 U 盘设备,表明此时已进入 DFU 模式,直接拷贝 uf2 固件到 MDK-DONGLE 即可烧录 OpenSK 固件:

正在烧录 OpenSK 固件

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

成功运行 OpenSK

测试 OpenSK 功能

目前很多网站及应用已经支持 FIDO 二次验证标准,例如: Microsoft、Google、Facebook、Twitter、GitHub、GitLab 等账户。这里我们演示如何使用 OpenSK 安全密钥登陆 Microsoft 账户:

  1. 进入系统设置 -> 账户 -> 登录选项 -> 安全密钥 -> 管理,为你的设备设置简单的 PIN 码:
  2. 注册你的安全密钥:登录 Microsoft 账户 -> 安全性 -> 更多安全选项 -> Windows Hello 和安全密钥 -> 设置安全密钥
  3. 点击下一步,按照提示插入设备,输入前面设置的 PIN 码,轻触按键注册密钥:

  4. 为你的密钥设置名字,以便区分其他密钥设备:
  5. 下次登录 Microsoft 账户时就可以选择使用 Windows Hello 或安全密钥登录,无需再输入账户密码:

你也可以尝试登录其他支持 FIDO 安全标准的网站,使用过程和上述描述大同小异。

最后的话

至此,你应该基本了解 OpenSK 及其使用场景。本文并未涉及 OpenSK 的代码实现以及如何设置开发环境来编译 OpenSK,如需了解更多此方面的内容,可以参考:

版权声明

本文为「造物邦」原创文章,遵循署名 4.0 国际 (CC BY 4.0) 版权协议,转载请附上原文出处链接和本声明。 原文出处链接:https://blog.makerdiary.com/zh-hans/google-opensk-quick-start/

标签

Zelin

I make amazing things.

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.