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