menu Thinking Null
Canokey配置OpenPGP/PIV/NDEF
2021-02-27   Canokey   暂无评论   2963 次阅读

OpenPGP

RFC4880OpenPGP 定义为用于签名和加密的标准。它使用私钥对邮件和文档进行签名/加密。使用OpenPGP的最常用工具之一是GNU Privacy Guard,简称GnuPGgpg

私钥可以存储在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策略

对于DECAUT,在成功验证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使用ccidpcsclite来访问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) 许可协议进行许可。

转载或引用本文时请遵守许可协议,注明出处。

发表评论
暂无评论
textsms
account_circle
email
link