Makerdiary OpenSK Dongle EP2
说明¶
- 上游仓库: https://github.com/google/OpenSK
- stable分支支持CTAP2.0
构建固件过程¶
编译固件¶
注意一下, 目前的固件会让bootloader失效, 参考(https://github.com/google/OpenSK/pull/186)
如果用旧仓库, 备份好密钥, 然后运行reset.sh
pull一下, 然后运行setup.sh
./deploy.py --board nrf52840_mdk_dfu --programmer none --opensk
python uf2conv.py -c -f 0xada52840 -o nrf52840_mdk_dfu_merged.uf2 target/nrf52840_mdk_dfu_merged.hex
这样给Dongle用的UF2固件就OK了
PS. 重新编译时需要把target
(App)和third_party/tock/target
(OS)删掉
配置Udev(Linux)¶
添加udev rule以让设备能给其它人访问到
sudo cp rules.d/55-opensk.rules /etc/udev/rules.d/ && \
sudo udevadm control --reload
安装证书¶
新版本需要手动安装证书, 否则无法使用, 插上Dongle, 运行下面的命令
注意别用错参数把芯片锁了, 另外证书只能安装一次
./tools/configure.py \
--certificate=crypto_data/opensk_cert.pem \
--private-key=crypto_data/opensk.key
测试¶
看看密钥是否正确安装
% ./tools/configure.py
info: Programming OpenSK device AAGUID a6c649f1-3572-4856-8535-3cbd736f713d (CtapHidDevice(/dev/hidraw0)).
info: Please touch the device to confirm...
info: Certificate: Present
info: Private Key: Present
100%|██████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:01<00:00, 1.33s/it]
测试¶
可以在下面两个网站进行测试
- https://webauthn.io
- https://demo.yubico.com/webauthn-technical