我运行几台 PC,它们都多次启动到多个操作系统(分别为 Win10/Linux{Devuan}/FreeBSD 和 Win10/Linux{Devuan})。我使用 Thunderbird + Enigmail(暂时坚持使用前者的 68.x 版本,因为据我了解,78.x 中的集成 OpenGPG 支持尚不支持智能卡)。
我已经注意到如何导入秘密 gpg 密钥(从一台机器复制到另一台机器)?但我不确定当密钥保存在智能卡(例如我的 OpenGPG(版本 3.3))中时它是否可以工作。
我知道一个问题是密钥本身通常应该在卡的硬件内生成并仅存储在卡本身上,安全性的一个基本部分是它们无法被提取从那张卡。
我还知道,解决这个问题的方法是在气隙 PC 上进行生成,最好是从从只读材料 (CD/DVD) 启动的操作系统运行,并导出并保存在安全的以完整的秘密主密钥和单独的秘密子密钥和公钥的方式。然后,在第一台机器/操作系统上,只需重新导入这三个中的后两个,然后使用该keytocard
功能将秘密子密钥传输到卡(这是单向旅行!),这会在卡中留下特殊存根上面secring.gpg
写着“是的,我们有这些密钥,但它们存储在卡上”。
我是否需要重复“仅导入秘密子密钥,然后用于keytocard
生成秘密密钥存根在每台后续机器/操作系统上”,以获取每台机器上的秘密密钥环,以便了解该机器/操作系统我们在智能卡上拥有所有者密钥;或者是否有一种快捷方法(可能secring.gpg
通过sneakernet安全地复制用户的密钥)从第一台机器/操作系统到其他机器/操作系统)应该可以工作吗?
答案1
好吧,如果我理解正确的话,你有两个不同的问题。
- 如果您直接在卡上生成密钥,您将无法备份它们。另一方面,如果您在气隙 PC 上生成密钥并将其复制到外部介质,那么您始终可以检索它们并将它们写入新的智能卡
- 为了在另一台计算机上使用智能卡,您基本上需要做两件事,前提是您有正确配置的读卡器:
- 导入民众你钥匙圈的钥匙
- 将智能卡插入读卡器,然后运行
gpg2 --card-status
以创建存根,即指向给定 GPG 密钥的卡的指针