SSH 密钥对应该多久更改一次?

信息安全 SSH
2021-08-18 15:51:11

多年来,我一直在自己的系统之间使用 1024 位 RSA 密钥进行无密码 SSH。最近,我还开始使用它来无密码访问我的托管服务提供商和源代码存储库。

长时间使用相同的密钥对并访问多个资源是否存在问题?

4个回答

我将在这里采取与其他人不同的立场。我的建议:没有必要更改您的 SSH 私钥,除非您有充分的理由更改它。

理由:加密货币不会磨损。反复使用不会变弱。

更改私钥的最大原因是您有理由怀疑它已被泄露或不再安全。例如,如果您的一台机器被黑客入侵,并且您在该机器上存储了您的私钥副本,我建议您更改您的 SSH 密钥。同样,如果您的其中一个备份是随身携带的,并且上面有您的 SSH 私钥的副本,我建议您更改您的 SSH 密钥。或者,如果您在旧的 Debian 系统上生成了您的私钥,那么它可能不安全,我建议您更改它。但是,如果您没有这样的理由怀疑您的私钥被泄露,我认为没有必要更改它。

不必要地更改密钥的缺点是现在您必须更新authorized_keys您可能登录的每台机器上的文件。这有点乏味。

我怀疑有些人建议您更改私钥的原因是出于预防性原因:如果其中一台存储您的私钥的机器被黑客入侵,而您不知道,现在黑客不再有权访问怎么办?黑客可能仍然拥有您的私钥。因此,偶尔更改 SSH 私钥可能会有一些价值,以限制在这种情况下的暴露。但就我个人而言,我怀疑这种情况非常罕见,可能不值得麻烦更改 SSH 密钥。所以,如果其他人喜欢定期更改他们的 SSH 密钥,我可以理解他们的原因——但就个人而言,我不会打扰。

PS如果我们谈论的是主机密钥(而不是您的个人密钥),那么有一个更强有力的理由不要不必要地更改主机密钥:如果您更改主机密钥,每个尝试登录该机器的人都会开始获得警告他们可能受到攻击。如果人们经常看到这些警告,他们会开始将它们视为无意义的噪音(这将是一个男孩叫狼的情况),从而削弱了它们的价值。因此,不要无故更改主机密钥。

是的,严格来说,建议在一段时间后使 SSH 密钥过期(这可能取决于密钥长度、密钥生成器中发现的漏洞等)。然而,SSH 没有预见到这种机制。而且去每一个可能的远程主机并删除公钥是很麻烦的。

有一个解决方案——虽然我还没有尝试过,但是在我有空闲时间的时候保留它——MonkeySphere for OpenSSH 项目据我了解,它将允许管理您的密钥的到期!

好吧,这当然取决于您的数据的敏感性:您正在保护您的数据免受邻居、商业攻击、政府的侵害?

这篇文章估计,建造一台可以破解 1024 位 RSA 密钥的计算机是可能的,一年花费数百万美元。他们提到了很多研究,都推荐至少 2048 位。

该站点可以帮助您估计您的密钥抵抗攻击的时间。

这个问题给出了很多关于密钥大小的答案

另外,请记住,正确使用您的私钥并不意味着如果您有多个主机持有您的公钥,您就会遇到问题,也不意味着您使用它的次数会使其变弱。这就是创建私钥-公钥的原因:在不增加风险的情况下使用它们,因为它们被更多地使用。

据我所知,RSA 密钥没有“密钥磨损”,因此保持相同的密钥集没有问题。如果您怀疑您的密钥可能已被泄露,您可以生成新的密钥,否则就没有必要了。