公开存储 GPG 加密数据是否安全,例如在 GitHub 上?

信息安全 加密 gnupg github
2021-09-07 22:36:18

我一直在学习一些信息安全和 GPG 加密的基础知识,这非常有趣。我想了解我的想法背后的漏洞。

在我们使用 GPG 创建我们的公钥和私钥对之后,在线发布您的公钥和指纹是很常见的并且众所周知。

我的问题围绕着我在线存储个人加密数据,例如在我的 GitHub 存储库中。我假设它会好起来的,但我想与社区核实一下,因为我对这个话题还很陌生。

假设我有一个使用自己的公钥用 GPG 加密的数据文件。我现在将文件上传到 GitHub,可以在其中公开查看。我假设这应该是安全的,因为除了我自己之外没有人可以用我的个人私钥解密这些信息。这是一个安全的假设还是我在这里遗漏了一些关键的东西?

2个回答

我通常同意加密有一个到期日的想法。因此,假设您遵循密钥长度和密码选择的最佳实践,最佳实践通常假设安全期限约为 30 年。

因此,如果 30 年后,这些数据仍然是敏感信息……那么您可能希望选择比正常密钥长度和密码更强的密钥(即查看后量子密码学),或者考虑其他方法来减少您的暴露的风险。例如,不在 GitHub 上公开发布内容。但请记住,NIST 等组织为制定行业实践提供的 30 年指导是基于密码学的历史流失率。如果新的漏洞利用导致密码不安全,攻击者可能会在更短的时间内读取您的数据。

但是,如果内容仅在短时间内敏感——例如易于撤销和更改的 API 密钥,或者具有到期日期——那么您可能可以放心地发布加密数据,因为没有人会能够阅读内容。

假设您正确地做所有事情,强密钥,不重复使用密钥,保护密钥,强加密,那么是的,它是安全的。

但是,鉴于您的使用场景,您应该考虑使用对称密钥加密。

公钥加密的重点是提供不同实体加密和解密的能力。在您陈述的场景中,拥有公钥和私钥是没有意义的,因为您是唯一的用户。您只需要一个对称的单一密钥,并且您可以像保护私钥一样保护它。

公钥加密的工作方式是您的文件实际上是使用随机生成的对称密钥加密的。只有这个对称密钥通过公钥加密进行加密,因为它的计算成本很高。公钥解密只对对称密钥进行解密,用于后续的对称解密。如果您是唯一的用户,公钥加密只会增加开销和潜在的混乱,而不会带来额外的好处。