Featured image of post Canokey 的食用日志(一)

Canokey 的食用日志(一)

使用 Canokey 作为 2FA 两步验证的硬件密钥和 OATH 验证码设备及 NDEF 消息写入的基本指南

Canokey 是开源的安全认证 USB 设备,提供 4 个接口:U2F/FIDO2(HID)、OpenPGP Card(CCID)、PIV+OATH(CCID)和 WebUSB

FIDO2/WebAuthn/U2F

U2F 即『通用第二因素』(Universal 2nd Factor)是一个开放认证标准,使用专门的 USB 或者 NFC 设备来加强和简化两因素验证方式,该标准目前由 FIDO 联盟 管理,Canokey Web Console 需要使用 WebUSB,根据 Mozilia 文档 WebUSB 目前主流浏览器支持情况如下图所示:

Support Platforms

Canokey 通过 CTAP1协议使用 WebAuthn,支持通过 USB 或 NFC 的方式进行 U2F 验证(支持的网站列表 ),主流平台对 NFC/USB 的支持情况如下图所示:(WebAuthn 测试网站

Support Browsers

U2F 安全密钥(Security Keys)的一个典型的用途就是作为保护账户的两因素安全密钥,像 Google、GitHub、Twitter、GitLab、DropBox、FaceBook、Bitbucket 等都支持

在这些支持 U2F 的网站上面添加你的 Canokey 作为安全密钥后,一般都会在添加完成后生成一段恢复代码,记得一定要妥善保存,以便如果你的安全密钥损坏、丢失或者遇到各种不可抗力的因素如:黑客物理入侵、第三次世界大战、核战争、陨石坠落……你仍然可以通过恢复代码恢复对账户的访问

大多数支持添加 U2F 安全密钥的平台都可以添加多个安全密钥,一般建议添加至少两个以上的安全密钥,如果你只有一个安全密钥,建议至少添加另外一种以上的两步验证方式如: SMS、OTP 等保护对你账户的访问😎

Add to GitHub

笔者 平时的主要设备是一台 Windows 笔电、一台 iPad Pro、一台 iPhone(支持 NFC),在笔记本电脑上使用 Canokey 直接插入 USB 接口,触摸 Canokey 中间亮灯的位置完成验证,在 iPad 上通过 USB-C 转接头完成验证,iPhone 上通过 Canokey 的 NFC 进行验证

PS: Canokey 的 NFC 功率设计比较小,在不同型号手机上第一次使用 NFC 感应 Canokey 可能会碰到『位置对了,就是进不去』的问题,没错,按照群友说法,你需要慢慢找 Canokey 和 手机 NFC 线圈位置之前契合的『G 点』,笔者 大概试了三次就找到了😂

除此外,还可以在 Canokey Web Console 按照党主席的说明对 Canokey 的 NFC 功能进行『魔法修复』,可能会更容易找到『G 点』🤣

NFC 可能的修复指南:
1. 确定电脑上没有其他程序抢占CCID // $ gpg-connect-agent killagent /bye
2. 进入 WebConsole,选择 admin,然后认证 PIN 通过
3. 不要刷新,直接进入 APDU 界面,分别执行以下两行:
00FF01000603A044000420
00FF01000903B005720300B39900
确认执行结果都是 9000

OATH

Canokey 的 OATH 功能通过 Yubico Authenticator 添加/查看,Canokey 的 OATH 有:

  • 基于时间的一次性密码 TOTP 支持
  • 基于 HMAC 的一次性密码 HOTP 支持
  • 一个 Canokey 最多支持保存 100 个 OATH 令牌
  • USB/NFC 验证支持

Yubico AuthenticatorSettingsAdvancedCustom readerCustom reader filter 输入 Canokey 点击 Save 保存或者在插入 Canokey 的情况下,直接选择已经连接的 Canokey 点击 Use as filter 也可以

Yubico Authenticator

NDEF

Canokey 的 NDEF 默认的策略是可读/写(NFC),读写策略可以通过 Canokey Web 控制台 修改,最大消息长度支持 1022 字节,默认值是 Canokey 官网 URL:https://canokeys.org

可以使用 NFC Tools 软件写入 NDEF 消息

  • Android Play Store (需要设备支持 NFC,部分旧机型可能无法使用)
  • iOS App Store (需要设备支持 NFC,部分旧机型可能无法使用,在软件中开启 兼容性模式 )
  • Windows (*.zip) | macOS (*.dmg) | Linux (*.AppImage)

Edit NDEF

PS:NDEF 消息并不具有足够的安全性(几乎没有),所以不要存放敏感数据🤐

PIV

算法支持:

  • RSA2048
  • NIST P-256
  • NIST P-384

笔者 暂时还没找到合适的用途,暂时先🕊️🕊️

参考资料:


  1. 客户端到身份验证器协议,详见 Client to Authenticator Protocol - Wikipedia ↩︎