Canokey Pigeon 今天终于到货了

该页面仍在不断完善中…

# 前言

在开始玩之前最好先看看官方文档,不然很容易迷,这玩意坑多得一匹 666,要是有足够的马内还是入 yubikey 的坑吧,生态体验会好很多。。。

官方文档

注意!!!千万不要选择中文文档,直到目前为止那个文档还没完善,没英文版的完全,可以选择浏览器翻译来看

CanoKey 的 FIDO2/U2F 的 PIN 可以使用 Windows Hello 进行设置和更改,但具体项目操作暂时无相关文档

OpenPGP 可以使用 gpg 命令直接操作,没有任何兼容性问题

PIV 可以使用 yubico-piv-manager GUI 版或者 GUI 版自带的 CLI 进行管理

OATH 可以使用 yubico-authenticator 进行管理(需要指定版本),也可以使用新版 WebConsole 进行管理(有 bug,secret 太长会导致无法添加)

yubico-authenticator 仅 6.0 以前的版本支持 canokey,6.0 以后包括 6.0 不支持 canokey,下面是历史版本下载地址

https://developers.yubico.com/yubioath-flutter/Releases/

下面是 yubikey-manager 下载地址 (可能不怎么好用,看情况吧)

https://github.com/Yubico/yubikey-manager/releases

yubico-piv-manager GUI 版(自带 CLI 并且可以操作 Canokey!!!)

https://developers.yubico.com/yubikey-piv-manager/Releases/

tips 生成密钥后可能会提示 “PIN 密码错误多次,智能卡已锁”,即使 PIN 是正确的。这时候不必担心,只需要关闭程序,将卡拔掉重新插入

然后再次启动即可

# 开箱

首先我怀着期待的心情打开了快递的外包装,发现老板还送了挂绳和转接头(开心.jpg

下面是图

图片

图片

图片

二话不说马上跑到寝室接上电脑来玩

# 使用

# 控制台

首先系统就会提示你打开控制台地址 https://console.canokeys.org/
这个就是之后我们操作 CanoKey 的工具了

注意!!! 控制台分新版和旧版,新版和旧版之间各有可取之处,一起使用更佳

下面是新版和旧版控制台的图片

# 新版

图片

图片

# 旧版

图片

图片

图片

图片

旧版不能设置中文,建议搭配浏览器自带翻译一起食用

# 初步设置

默认密码

PIN 名称 默认值 说明
Admin PIN 123456 用于在 web console 上管理 CanoKey 上的不同应用,如,重置应用,修改触摸策略等。
FIDO2 PIN 部分强制使用 PIN 的 FIDU2/U2F 应用会询问此密码。FIDO2 PIN 没有预设值。用户在首次使用强制 PIN 的 FIDO2/U2F 应用时会收到设置 FIDO2 PIN 的提示,此时用户可以自己设置该 PIN。
GPG PIN 123456 用于常规 GPG 操作,如 GPG 签名等。
GPG Admin PIN 12345678 用于 GPG 应用的管理操作。例如,在 CanoKey 上生成 GPG 密钥对,或者修改 GPG 密钥属性时,会需要该 PIN。
PIV PIN 123456 用于常规 PIV 操作,例如 PIV 身份认证、通过 PKCS#11 调用 PIV 进行签名等。
PIV PUK 12345678 用于在 PIV PIN 被锁定后的解锁操作。

# FIDO2 PIN 更改

这里就是一个我觉得奇葩的地方了,官方控制台没有相关选项。。。。。。
他的具体设置在 Windows 设置内
如下图

图片

而且目前我没找到任何可以单独重置这块区域的设置。。。只能全局重置

# 重置

在上面图已经不难看出,可以从控制台分别重置不同区域的密码和保存的密钥,除非你忘记了 Admin 密码,那就只能全局重置了

# 坑(或者说不满意的地方)

  • FIDO2 默认无密码且 console 没有设置选项
  • FIDO2 需要在 Windows 设置内修改密码
  • FIDO2 无法单独管理 webauthn
  • FIDO2 无法单独重置,只能通过全局重置的方式(Windows 设置内的重置无效)
  • 新版 console 全局重置只能等 admin pin 锁定后才能使用
  • 新版 console 简单但功能不怎么多
  • NFC 功率太小
  • 旧版 console 侧边栏没有 openpgp 选项,要点击 overview 里面才看得到选项。。。

# 玩法

精玩 FIDO2/U2F、OpenPGP、PIV

# FIDO2/U2F

支持的功能:

  • 多达 64 个驻留密钥
  • HMAC 扩展
  • Ed25519

这个没什么好多说的,用得最多的还是网站登录时的 webauhtn,有手就行

下面是我启用两步验证的网站

服务 要求
自建 Gitea 第二步(强制)
Github 第二步
Microsoft 免密码登录
Google 第二步
Cloudflare 第二步
Twitter 第二步

# OpenPGP

支持的算法:

  • RSA2048
  • RSA4096*
  • X25519
  • Ed25519
  • NIST P-256 (secp256r1, prime256v1)
  • NIST P-384 (secp384R1)
  • secp256k1

* 由于计算性能的限制,无法在卡中生成 RSA4096。但是,您可以生成密钥对并将其导入 CanoKey。

请注意,目前不支持 RSA3072。

  • PIN:默认 123456,最小长度 6,最大长度 64
  • 管理员 PIN:默认 12345678,最小长度 8,最大长度 64
  • 重置代码:默认未设置,最小长度 8,最大长度 64
  • 签名 PIN 码:强制 // 即验证每个签名
  • 触摸策略:关闭 SIG、DEC、AUT
  • 触摸缓存时间:0

具体各种参数和用法请参考官方文档

# PIV

默认密码:

PIN: default 123456
PUK: default 12345678
Management Key: default 010203040506070801020304050607080102030405060708

注!!!文章开头的默认密码没写 Management Key!!!在管理 PIV 的时候与 PIN 组合使用

具体使用方法请参考官方文档

通常,在开始使用 PIV 之前,您应该初始化持卡人唯一标识符(CHUID)和持卡人 Capability Container(CCC)

1
2
yubico-piv-tool -r canokeys -a set-ccc
yubico-piv-tool -r canokeys -a set-chuid

注:如果你一开始已经修改了 Management Key,请在上方命令里加入 - k 参数来指定新的 Management Key

否则会出现Failed authentication with the application.

因为上方原始指令在不加 - k 参数时会传入默认的 Management Key,导致无法通过验证!!!

# NDEF

就一个类似于 NFC 标签的那种,可以记录一些信息(未加密!!!)

# OATH

就像那种两部验证用的六位一次性数字,只是说支持在 CanoKey 里面设置

注!!!TOTP 所需要的时间是由连接硬件的计算机通过 USB 接口传输的,CanoKey 本身不带任何计时装置,所以如果计算机时间不准可以无法使用该功能!

# 参考

User Guide :: CanoKeys

CanoKey Pigeon 的开箱 & 折腾

Canokey 指南:OTP,FIDO2,PGP 与 PIV

使用 PIV 和 PKCS#11 验证 SSH(客户端)

[linux] GPG 全面指令 ((子) 密钥的创建 / 删除 / 吊销 / 上传 / 修改及基本的安全流程)

2021 年,用更现代的方法使用 PGP(上)PGP 基础

GPG 入门教程

https://blog.cubercsl.site/post/canokey-unboxing/

Canokey Pigeon 从开箱到上手

Canokey 配置 OpenPGP/PIV/NDEF