jsstrn Asked: 2021-10-26 18:57:12 +0800 CST2021-10-26 18:57:12 +0800 CST 2021-10-26 18:57:12 +0800 CST 我应该创建单独的 GPG 密钥对还是只创建一个 GPG 密钥对以供多种用途(例如电子邮件、签署提交)? 772 为每个用例创建 GPG 密钥对会更好,还是仅在 GPG 密钥对上为多个用例创建是否被认为是最佳实践? 以下是我使用 GPG 密钥的原因: 签署电子邮件 加密电子邮件 签署提交 通过使用它 gnupg encryption 2 个回答 Voted Best Answer user1686 2021-10-26T22:37:44+08:002021-10-26T22:37:44+08:00 取决于您认为密钥应得的保护。我的意思是:如果一个密钥有多种用途,但安全要求截然不同,那么它应该是两个不同的密钥。 例如,如果它加密了您的财务数据(wallet.dat?)并且需要受到严密保护,但同时它会加密您空闲的聊天电子邮件,并且需要复制到您拥有的每一台台式机/笔记本电脑/手机 -那些应该是单独的键。 其他类似的例子有一个单独的密钥对用于业务通信(例如,如果出于法律原因被迫放弃它),一个单独的密钥对用于任何涉及自动 cronjobs(例如,软件开发人员的机器自动签署夜间软件版本),等等. 请注意,在 PGP 中签名和加密始终使用单独的子密钥,因此很容易在此边界上导入“部分”密钥。例如,您可以拥有一个仅保存加密子密钥并能够读取您的加密数据的设备,但仍然无法代表您签署任何内容。 此外,PGP 软件将“签署文件/消息”和“签署 PGP 密钥”识别为两个不同的目的,并轻松地允许您为它们拥有单独的子密钥。(更准确地说,主/根密钥始终用于签署其他人的 PGP 密钥,但子密钥可用于签署一般数据。)这意味着您可以拥有一个可以签署提交和电子邮件消息的设备,但仍然无法签署签署 PGP 密钥。 (后者很重要,因为它不仅能够签署其他人的密钥——尽管这仍然应该受到高度保护——而且还能够签署对你自己密钥的更新,例如更改到期日期、添加新电子邮件地址甚至照片 ID,甚至撤销密钥。) 但是,同一主键下的所有子键在外部接收到大致相同的“信任”。例如,您不能将两个加密子密钥用于不同的特定目的,最终它们会混淆。因此,在您需要按目的(例如个人与工作)将它们分开的情况下,您将需要两个完全独立的 PGP 密钥。 (子密钥主要用于密钥轮换,例如每年一个新的加密子密钥,或者使用不同算法的两个签名子密钥——我仍然使用 RSA4096 密钥来与旧的仅 RSA 系统兼容,但有一个 Ed25519 签名子密钥来制作 Git提交签名比使用 RSA 时要小得多。) davidgo 2021-10-26T20:30:51+08:002021-10-26T20:30:51+08:00 我不是 PGP 专家,但我告诉你,除非你有不同的未连接系统和角色,否则使用单个密钥似乎更好。 特别是如果您让其他人签署您的密钥,如果只有一个密钥,则更容易证明您的身份,如果有问题,只有一个密钥可以被拒绝。 您可能希望查看拥有子密钥 - 这将允许您单独撤销一些密钥,但仍保留 1 个主密钥 - 这可以让您在某些子密钥周围的安全性稍差一些(阅读https:/ /wiki.debian.org/Subkeys ) 它有点旧(但逻辑没有改变),https: //security.stackexchange.com/questions/29851/how-many-openpgp-keys-should-i-make 提出了类似的问题,并得出了相同的结果结论是我做到了。
取决于您认为密钥应得的保护。我的意思是:如果一个密钥有多种用途,但安全要求截然不同,那么它应该是两个不同的密钥。
例如,如果它加密了您的财务数据(wallet.dat?)并且需要受到严密保护,但同时它会加密您空闲的聊天电子邮件,并且需要复制到您拥有的每一台台式机/笔记本电脑/手机 -那些应该是单独的键。
其他类似的例子有一个单独的密钥对用于业务通信(例如,如果出于法律原因被迫放弃它),一个单独的密钥对用于任何涉及自动 cronjobs(例如,软件开发人员的机器自动签署夜间软件版本),等等.
请注意,在 PGP 中签名和加密始终使用单独的子密钥,因此很容易在此边界上导入“部分”密钥。例如,您可以拥有一个仅保存加密子密钥并能够读取您的加密数据的设备,但仍然无法代表您签署任何内容。
此外,PGP 软件将“签署文件/消息”和“签署 PGP 密钥”识别为两个不同的目的,并轻松地允许您为它们拥有单独的子密钥。(更准确地说,主/根密钥始终用于签署其他人的 PGP 密钥,但子密钥可用于签署一般数据。)这意味着您可以拥有一个可以签署提交和电子邮件消息的设备,但仍然无法签署签署 PGP 密钥。
(后者很重要,因为它不仅能够签署其他人的密钥——尽管这仍然应该受到高度保护——而且还能够签署对你自己密钥的更新,例如更改到期日期、添加新电子邮件地址甚至照片 ID,甚至撤销密钥。)
但是,同一主键下的所有子键在外部接收到大致相同的“信任”。例如,您不能将两个加密子密钥用于不同的特定目的,最终它们会混淆。因此,在您需要按目的(例如个人与工作)将它们分开的情况下,您将需要两个完全独立的 PGP 密钥。
(子密钥主要用于密钥轮换,例如每年一个新的加密子密钥,或者使用不同算法的两个签名子密钥——我仍然使用 RSA4096 密钥来与旧的仅 RSA 系统兼容,但有一个 Ed25519 签名子密钥来制作 Git提交签名比使用 RSA 时要小得多。)
我不是 PGP 专家,但我告诉你,除非你有不同的未连接系统和角色,否则使用单个密钥似乎更好。
特别是如果您让其他人签署您的密钥,如果只有一个密钥,则更容易证明您的身份,如果有问题,只有一个密钥可以被拒绝。
您可能希望查看拥有子密钥 - 这将允许您单独撤销一些密钥,但仍保留 1 个主密钥 - 这可以让您在某些子密钥周围的安全性稍差一些(阅读https:/ /wiki.debian.org/Subkeys )
它有点旧(但逻辑没有改变),https: //security.stackexchange.com/questions/29851/how-many-openpgp-keys-should-i-make 提出了类似的问题,并得出了相同的结果结论是我做到了。