OpenPGP 是由 RFC4880 规范的签名和加密标准。该标准通过使用私钥来实现信息和文件的签署/加密。常用的 OpenPGP 工具之一是 GNU Privacy Guard,通常简称为 GnuPG 或 GPG。在 Windows 中,还可以使用 Kleopatra。
固件版本 1.6.1 及之前仅支持 e = 65537 的 RSA 公钥。 固件版本 2.0.0 起支持 RSA3072 / RSA4096 密钥生成。
触摸策略仅在使用 USB 接口时生效。
OpenPGP 最多支持 3 个密钥,即签名密钥 (SIG)、加密密钥 (DEC) 和验证密钥 (AUT)。根据固件版本不同,你可以在 CanoKey Console 中或通过 gpg
命令设置 SIG、DEC 和 AUT 的触摸策略。触摸缓存时间的值在 0 至 255 秒之间(0 为无缓存)。
请通过 CanoKey Console 的“设置”应用修改触摸策略。
请通过 GnuPG 修改触摸策略。
对于 DEC 和 AUT 密钥,PIN 验证成功后,将不再需要验证,直到断开并重新插入 CanoKey。
对于 SIG,如果 forcesig
打开,则每次签名都要求输入 PIN;否则,只在上电后的第一次签名时要求输入 PIN。
请参阅 GNU Privacy Handbook。
GnuPG 默认使用自己的实现(scdaemon)访问包括 CanoKey 在内的智能卡,这一实现与 PC/SC 冲突。详情请见:https://ludovicrousseau.blogspot.com/2019/06/gnupg-and-pcsc-conflicts.html。
为了避免冲突,我们建议使用 PC/SC 接口访问 CanoKey,即在 scdaemon.conf
中增加:
disable-ccid
Linux 和 macOS 中,这一文件通常位于 ~/.gnupg/scdaemon.conf
。
Windows 中通常不会遇到这一问题,如有必要,请修改 GnuPG 安装目录下的 scdaemon.conf
文件。
由于 PC/SC 对智能卡的访问可能是独占的(取决于应用程序访问模式),因此即使配置正确,GnuPG 仍然可能无法正确访问 CanoKey。如果遇到这一问题,只需重新插拔 CanoKey 即可。
常见占用 PC/SC 的程序包括: