Canokey导入S/MIME邮箱证书并使用Thunderbird发送邮件
前期准备
Tips: 需要安装1.2.4以及以下的版本,高版本不支持Canokey(或者使用Canokey自家的ckman也行)
S/MIME邮箱证书可以看我上一篇文章(1.90$申请 WISeID S/MIME 邮箱证书)
-
S/MIME邮箱证书
-
安装OpenSC:https://github.com/OpenSC/OpenSC
导入证书
目前Canokey支持以下几种算法的证书
- RSA2048
- NIST P-256
- NIST P-384
对于固件版本3.0.0以上的Canokey(CanoKey Canary),还支持以下算法的证书
- RSA3072
- RSA4096
- secp256k1
- Ed25519
- X25519
- SM2
Tips: CanoKey 固件版本 3.0.0 仅支持使用 Ed25519 算法对 32 字节数据做签名,仅支持使用内部生成的 X25519 密钥。
安装好ykman后,连接Canokey,进入终端
输入命令
1 | ykman -r canokey info |
应该能够看到智能卡的相关信息
输入命令
1 | ykman -r canokey piv info |
应该能看到PIV的相关信息
然后CanoKey一般有4个可用的插槽:
- 9A:PIV Authentication
- 9E:Card Authentication
- 9C:Digital Signature
- 9D:Key Management
从固件版本 2.0.0 开始,CanoKey 还支持82、83插槽
固件版本 3.0.0 开始,好像还支持Card Capability Container、Card Holder Unique Identifier、Printed Information,有邪修玩法用来存VeraCrypt的密钥
需要注意的是,9E插槽的默认PIN策略是不验证
不过这都无所谓,可以通过--pin-policy来设置,具体可以看ykman的命令帮助来使用
这里使用的是9c插槽
首先是导入私钥
Tips: Canokey默认的管理密钥是:010203040506070801020304050607080102030405060708,如果修改了管理密钥需要加上
-m参数传入管理密钥
1 | ykman -r canokey piv keys import 9c <私钥文件路径> |
然后是导入公钥证书
1 | ykman -r canokey piv certificates import -v 9c <公钥文件路径> |
这里会提示输入PIN,输入PIV的PIN即可,这里的-v参数用于验证证书是否匹配导入的私钥,可有可无
导入Thunderbird
启动Thunderbird,找到端到端加密,点击S/MIME安全设备按钮,然后点击加载按钮,选择浏览按钮

找到你安装OpenSC的地方,OpenSC/pkcs11/该目录下有个opensc-pkcs11.dll,选择即可。
正常加载模块后,点击刚刚添加的模块,模块下面有个canokey设备,选择后点击登录,会要求输入PIN

登录完成返回到端到端加密页面,点击个人数字签名证书旁边的选择按钮,一般来说会自动找到符合条件的证书,选择后可以点击旁边的测试按钮
如果测试提示颁发者无效,说明可能是缺少中间证书,点击管理S/MIME证书按钮,选择证书颁发机构,导入你的颁发机构的中间证书即可。
参考
https://docs.canokeys.org/zh-hans/userguide/piv/
Use this card to join MyBlog and participate in a pleasant discussion together .
Welcome to GoodBoyboy 's Blog,wish you a nice day .

