PIV(Personal Identity Verification,即个人身份认证)由美国联邦政府 FIPS 201 标准定义。PIV 可以储存用于签名和加密的密钥和证书,实现数字签名、文件加密等功能。
从 CanoKey Canary 起,还支持以下扩展算法:
算法名称 | 算法ID |
---|---|
RSA3072 | 05 |
RSA4096 | 16 |
secp256k1 | 53 |
Ed25519 | E0 |
X25519 | E1 |
SM2 | 54 |
CanoKey 固件版本 3.0.0 仅支持使用 Ed25519 算法对 32 字节数据做签名,仅支持使用内部生成的 X25519 密钥。
010203040506070801020304050607080102030405060708
CanoKey 支持如下密钥:
从固件版本 2.0.0 开始,CanoKey 还支持如下密钥:
从固件版本 2.0.0 起,CanoKey 支持配置 PIV 的 PIN 和触摸策略。
密钥槽 | 默认 PIN 策略 | 默认触摸策略 |
---|---|---|
9E | 不验证 | 从不 |
其他 | 一次 | 从不 |
从固件版本 2.0.0 起,CanoKey 支持查看 PIV 的元数据。
由于 PIV 通常为系统管理员签发,普通用户使用,因此请查阅文档理解下方内容后再操作。
建议使用 yubico-piv-tool 执行相关操作。
如果密钥和证书在两个文件,则需要分别导入。
导入私钥:
yubico-piv-tool -r canokey -a import-key -s 9a -i private-key.pem
导入证书:
yubico-piv-tool -r canokey -a import-certificate -s 9a -i certificate.pem
其中,-s 9a
表示使用9A密钥槽,可以根据需要进行更改。
若要导入同时包含私钥和证书的 PKCS#12 文件(.p12 或 .pfx),执行:
yubico-piv-tool -r canokey -a import-key -a import-certificate -K PKCS12 -s 9a -i certificate.p12
生成一个新的私钥并对其自签名:
yubico-piv-tool -r canokey -a generate -s 9a -A RSA2048 -o public-key.pem
yubico-piv-tool -r canokey -a verify-pin -a selfsign -s 9a -S "/CN=Test Certificate" -i public-key.pem -o certificate.pem
yubico-piv-tool -r canokey -a import-certificate -s 9a -i certificate.pem
由于 Windows 会根据 CHUID 来缓存卡内证书信息,因此在 Windows 上导入证书后,需要更新 CHUID:
yubico-piv-tool -r canokey -a set-chuid