OpenPGP
RFC4880 将OpenPGP 定义为用于签名和加密的标准。它使用私钥对邮件和文档进行签名/加密。使用OpenPGP的最常用工具之一是GNU Privacy Guard
,简称GnuPG
或gpg
。
私钥可以存储在CanoKey中,也可以使用CanoKey生成OpenPGP密钥。你无法导出CanoKey中存储的私钥。这减少了私钥泄漏的可能性。
支持的算法
- 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:强制 //即每次签名时验证pin
- 触摸策略:SIG,DEC,AUT已关闭
- 触摸缓存时间:0
触摸策略
OpenPGP
有三个密钥槽,分别是签名密钥 SIG
,加密密钥 DEC
和身份验证密钥 AUT
。您可以在Web控制台的管理小程序中打开或关闭SIG,DEC,AUT的触摸策略。触摸缓存时间的值介于0到255秒之间(0表示没有缓存)。
触摸策略仅在使用USB接口时适用。
PIN策略
对于DEC
和AUT
,在成功验证PIN后,它对于这一次通电始终有效。
对于SIG
,如果标志forcesig
处于打开状态,则要求为每个签名提供PIN;否则,将为每个签名请求PIN。否则,仅在通电后才要求输入PIN作为第一个签名。
使用GnuPG
现在请参阅GNU隐私手册。
您也可以参考https://github.com/drduh/YubiKey-Guide。
备忘单
#智能卡相关的命令
#在下面尝试确保gpg可与canokey一起使用
gpg --card-status
#使用它来编辑卡信息和配置
#或生成密钥
gpg --edit-card
#生成密钥
gpg --expert --full-generate-key
#获取关键信息
gpg --list-keys --with-fingerprint --with-subkey-fingerprint [密钥ID或用户ID]
gpg --list-keys --with-keygrip [keyid或user id]
gpg --list-sigs [密钥ID或用户ID]
#编辑key
#在交互式shell中添加uid / subkey
#keytocard或addcardkey
gpg --edit-key <密钥ID或用户ID>
#导入/导出key
gpg --import file
gpg --armor --output file --export <keyid or user id>
gpg --armor --output file --export-secret-keys <keyid or user id>
gpg --delete-keys <keyid or user id>
#签名并验证
gpg --armor --sign file
gpg --sign-key --ask-cert-level <key id>
gpg --armor --detach-sign file
gpg --clear-sign file
gpg --verify file.asc
#加密和解密
gpg --armor --encrypt --recipient <keyid or user id>
gpg --decrypt file
#杂项
gpgconf --kill gpg-agent
gpg-connect-agent reloadagent /bye
gpgconf --list-dirs agent-socket
gpgconf --list-dirs agent-extra-socket
gpgconf --list-dirs agent-ssh-socket
Linux
请注意,我们建议为gpg-agent
/scdaemon
使用ccid
和pcsclite
来访问CanoKey,即在~/ .gnupg / scdaemon.conf
中设置。
pcsc-driver /usr/lib/libpcsclite.so
card-timeout 5
disable-ccid
您应该像docs中那样设置ccid
。
调试和报告
Linux
您可以使用pcsc_scan
来检查 pcscd
是否检测到了智能卡。请注意,pcscd
仅使用它检测到的第一张智能卡,因此,如果您的还有其他智能卡读卡器,则应先卸载或禁用。
您可以使用pcscd -a -d -f
来监视读卡器的通讯状态。可能会报告其日志以进行故障排除。
PIV
个人身份验证(PIV)是美国政府定义为 FIPS 201 的标准。智能卡存储密钥以进行签名/加密。PIV
主要用于非Web场景。
支持的算法
- RSA2048
- NIST P-256
- NIST P-384
默认值
- PIN:默认123456
- PUK:默认12345678
- 管理密钥:默认010203040506070801020304050607080080102030405060708
NDEF
## 默认值
- 模式:默认的读/写,可以使用Canokeys提供的管理小程序在 Web控制台 中进行切换
- 内容:默认NDEF消息是 URL https://canokeys.org
- 最大NDEF信息长度:1022字节
## 用法
您可以将其用作包含URL,vCard或NDEF支持的任何内容的NFC标签。
请注意,由于不进行加密,因此不应将机密存储在NDEF中。
您可以使用 NFC工具 来处理NDEF消息。
本篇文章采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 许可协议进行许可。
转载或引用本文时请遵守许可协议,注明出处。