低成本自制一个安全密钥
介绍
这是一块来自 Makerdiary 的开发板(?),买它来主要是想用来自制安全密钥。
虽然我已经有一块Yubikey了,但是我还是想整个备份(冗余)。
文档(官方):nRF52840 MDK USB Dongle (makerdiary.com)
购买渠道(官方): How to Buy - nRF52840 MDK USB Dongle (makerdiary.com)
安全密钥构建指北(官方): Google OpenSK 快速入门指南 (makerdiary.com)
看样子官方好像有一个淘宝店,并且官方店卖的甚至比第三方店还便宜,大概便宜 30 块钱左右吧,而且质量肯定也比第三方的店要好很多,所以卖的时候推荐去官方淘宝店买。
当然类似的板子还有 Nordic nRF52840 Dongle,不过这是个外国厂家做的,国内买溢价比较严重(或者说根本买不到),而且 Makerdiary 有带外壳版本的板子,而 Nordic 的板子只能自己 3D 打印外壳 (Github OpenSK 项目里面好像有模型)。
开箱
整的来讲官方给到的这家店的物流体验还是非常不错的,发的是顺丰快递,而且包装的用料那叫一个充足。
这一个白色盒子外面还有一个防水袋,就那种普通的快递黑色外包装,被我扔掉了。
里面还有很厚的一层红色泡泡纸(~~够我按好久了
然后就是庐山真面目啦
确实比我想象的小一些,当然至少要薄一些,大概普通u盘的三分之一厚度,相比于 yubikey 还是稍微厚了一点,不过问题不大,毕竟人家不是专门干这个的。
包装里面附带了两个类似于针脚延长器的东西(?),看样子是用来拓展开发用的,我在官方 wiki 中找到了这张图
DIY!
不过我们今天的任务不是这个,而是 DIY 一个安全密钥
估计各位一听到 DIY,就已经准备要关掉这个网页了
且慢!
我们只需要两步就可以!
1.去官方的 Github 下载 opensk_nrf52840_mdk_usb_dongle_gece14d7.uf2 (文件名可能不同,但后缀一定要是uf2)
2.拖入至开发板的目录
我们需要在插入电脑前按住板子上的按钮(一定要按住按钮插入电脑,插入电脑后再按没用哒)
然后打开此电脑,就会看到一个类似于U盘的小玩意
注意!如果此分区名不为 MDK-Dongle 那么代表你的板子使用的是老版本的 Open BootLoader 引导,需要将其升级至 UF2 Bootloader 才可以进行下列步骤。
不过目前新出厂的板子都是自带 UF2 Bootloader 也就是说如果你是很早前买的这块板子才需要考虑这个问题。
然后我们只需要把上一步下载的 uf2 文件给他托到这个”U盘”里,板子就会自动完成安装操作。
3.(o゜▽゜)o☆[BINGO!]
安装完毕后,板子会自动退出调试模式,也就是之前的”U盘”没有了,现在,他已经正式的成为了一块安全密钥
您可以前往 webauthn.io 测试安全密钥
细节
优点
对于普通玩家,仅需 90 块左右,就可以自制一个安全密钥,还是比较划算的。
如无自编译需求,则部署十分简单。
缺点
通过标题不难看出来,本文的侧重点并不是在技术上,因为我本来是想自己编译 OpenSK 用来着,结果从Windows换到Linux,都是一直报错。。。
而且对于想要自己编译固件的大佬而言,这其中是有不少坑的,因为 Python 奇差的跨版本兼容性,版本出错都有可能让你白忙活一天。
不过最终我还是妥协了,使用了官方编译好的固件。
顺便提一嘴,这块板子是支持 NFC 的,所以理论上完全可以实现 Yubikey 5 的 NFC 功能,不过 OpenSk 的 NFC 计划还处于一个十分不完善的阶段。
谷歌不支持绑定此类型(自制)的安全密钥 (待考证),我是遇到了这个问题,无法正常绑定,应该是对密钥的型号或者厂商做了限制?不过微软是可以正常绑定的。