我应该何时备份我的主要 OpenPGP 密钥?
我最近使用以下设置生成了一个 OpenPGP 密钥(输出gpg2 --list-keys
):
pub rsa4096/KEYIDSC 2017-10-19 [SC]
uid [ultimate] My Name <[email protected]>
sub rsa4096/KEYIDE 2017-10-19 [E]
sub rsa4096/KEYIDS 2017-10-19 [S]
输出如下gpg2 --list-secret-keys
:
sec# rsa4096/KEYIDSC 2017-10-19 [SC]
uid [ultimate] My Name <[email protected]>
ssb rsa4096/KEYIDE 2017-10-19 [E]
ssb rsa4096/KEYIDS 2017-10-19 [S]
总而言之,我离线存储了我的主密钥的备份(sec#
)并使用子密钥进行签名和加密。
现在,假设我想为 (with ) 添加用户 ID adduid
,我将导入我的备份私钥并对其进行编辑。我现在的问题是:
- 我是否应该使用导出命令对我的私钥进行新的备份?
- 我是否也需要编辑子项?或者它们是否已自动考虑添加新 UID?
- 假设子项在此过程中被修改,我应该将它们导出到我的其他计算机,还是旧计算机继续执行这项工作?
- 我目前还没有将密钥上传到密钥服务器,我应该上传吗?它是否会自动解决上一个问题中提到的再次导出子密钥的麻烦(如果存在此类问题)?
- 除此之外,还有哪些命令/操作
adduid
需要对我的密钥进行新的备份?
请随时在下面询问精确度,我会尽力回答,但考虑到我对 OpenPGP 还比较陌生。
答案1
我是否应该使用导出命令对我的私钥进行新的备份?
如果您将公钥上传到密钥服务器网络,备份所有私钥(包括您想要恢复的所有子密钥)就足够了——其他所有内容都可以再次从密钥服务器中获取。任何(即使是最小的)私钥导出都始终包含相应的公钥。
如果您不定期上传,您必须区分可能会丢失的不同类型的东西:
- “丢失”的用户 ID 并不是真正的问题,您只需生成新的用户 ID(它们会有另一个时间戳和较新的签名,但这在实践中不是问题)
- 显然,必须再次设置新的公共设置(您可以使用这些设置询问其他人使用什么密码、压缩算法等)
- 存储在您的密钥环中的传入认证不是您自己颁发的,因此您必须再次收集它们(但是,如果您不共享它们,它们实际上就没用了)
- 如果你创建新的子项,这些子项显然尚未包含在你的备份/导出中,并且无法重新生成,因此请进行备份
- 备份吊销证书可能是合理的,但如果你不分享它们,它们就毫无用处
我是否也需要编辑子项?或者它们是否已自动考虑添加新 UID?
不,子键和用户 ID 之间没有直接联系。两者都只与主键相关。
除了 adduid 之外,还有哪些命令/操作需要对我的密钥进行新的备份?
备份实际上并不是 OpenPGP 特有的问题,因为你的密钥环与你存储在计算机上的任何其他内容没有什么不同。
务实的观点:你一直在更改计算机上的内容,如果你关心你的文件,无论如何你都需要一个最新的、自动的和定期安排的备份。这将包括任何更改您的 GnuPG 密钥环(无论是否是重要更改),甚至考虑是否备份一些小文件也不值得付出努力——存储很便宜,如有疑问请备份所有内容。
不太通用的答案:备份您不想丢失的所有内容。如果只是您的密钥,请在每次更改后生成新的备份。如果您关心其他任何事情,请在存储后运行备份。