我刚开始在日常工作中使用RSA密钥,而且我对使用它们的最佳方法有一些疑问。
最大的问题围绕多个客户端和多个服务器的想法。这是一个场景:
我有两台客户端计算机:
我将验证两台服务器:
因此,一般来说,在这种情况下,您会推荐多少个密钥对?
如果其中任何一个都显着优于或差,你能概述每个人的利弊,以便一个人可以自己选择吗?
答案 0 :(得分:2)
通常的做法是“每个客户一个”选项。这样,如果客户端密钥被泄露,您可以从允许它的服务器中撤消该密钥。如果你想要额外的工作,你可以做“每个组合一个”。
以上选项可避免在主机之间复制私钥数据。
答案 1 :(得分:2)
在你的四个选项中,我喜欢的两个是:
每个客户端一个:这个密钥是“这个客户端”,我把它放在我要从该客户端连接的每台服务器上。
这使您可以轻松地在特定客户端受到攻击时撤消所有密钥 - 删除每个服务上的一个密钥。它也只能在客户端数量上线性扩展,这可能会使密钥管理更容易。它甚至可以与OpenSSH密钥模型完美匹配,即为每个客户端提供一个在多个服务器上使用的密钥。 (你可以使用OpenSSH做其他模型,这很不错。但这是最简单的事情,因为它不需要你付出任何努力。)
每个组合一个:每个唯一的客户端 - 服务器配对都有自己的密钥对。
这有一个缺点,即当单个客户端被泄露时强制你撤销多个密钥,但它无论如何都是每个服务的一个密钥,所以它并没有明显更糟。更好的好处是,一项服务在您和另一项服务之间充当中间人将变得非常困难。这在大多数情况下并不是真正的问题,但如果你的(笔记本电脑,服务器,SMTP)密钥突然被用于(笔记本电脑,服务器,SSH),你就有机会注意到它的奇怪之处。我不确定这种能力值得管理密钥的二次增加。