个人私钥的最佳做法

问题描述 投票:5回答:2

我刚开始在日常工作中使用RSA密钥,而且我有一些关于使用它们的最佳方法的问题。

最大的问题围绕多个客户端和多个服务器的想法。 这是一个场景:

我有两台客户端计算机:

  1. 桌面
  2. 笔记本电脑

我将对两台服务器进行身份验证:

  1. 我自己的本地服务器
  2. 远程服务(例如Github)

那么,一般来说,在这种情况下你会推荐多少个密钥对?

  • 一个密钥对:这个密钥是“我”,我到处都用它。
  • 每个客户端一个:这个密钥是“这个客户端”,我把它放在我要从该客户端连接的每个服务器上。
  • 每个服务器一个密钥对:这是“用于此服务”的密钥,我将私钥带到我想要连接到它的每个客户端。
  • 每个组合一个:每个独特的客户端 - 服务器配对都有自己的密钥对。

如果这些都不是显着优于其他任何一个,那么你能否勾勒出每个人的利弊,以便一个人可以自己选择?

rsa public-key-encryption
2个回答
2
投票

通常的方法是“每个客户一个”选项。 这样,如果客户端密钥被泄露,您可以从允许它的服务器中撤消该密钥 。 如果你想要额外的工作,你可以做“每个组合一个”。

以上选项可避免在主机之间复制私钥数据。


2
投票

在你的四个选项中,我喜欢的两个是:

  • 每个客户端一个:这个密钥是“这个客户端”,我把它放在我要从该客户端连接的每个服务器上。

    这使您可以轻松地在特定客户端受到攻击时撤消所有密钥 - 删除每个服务上的一个密钥。 它也只能在客户端数量上线性扩展,这可能会使密钥管理更容易。 它甚至可以与OpenSSH密钥模型完美匹配,即为每个客户端提供一个在多个服务器上使用的密钥。 (您可以使用OpenSSH做其他模型,这很不错。但这是最简单的事情,因为它不需要您的任何努力就会发生。)

  • 每个组合一个:每个独特的客户端 - 服务器配对都有自己的密钥对。

    当单个客户端受到攻击时,这有一个迫使您撤销多个密钥的缺点,但无论如何它将是每个服务的一个密钥,所以它并没有明显更糟。 更好的好处是,一项服务在您和另一项服务之间充当中间人将变得非常困难。 这在大多数情况下并不是真正的问题,但如果你的(笔记本电脑,服务器,SMTP)密钥突然被用于(笔记本电脑,服务器,SSH),你就有机会注意到它的奇怪之处。 我不确定这种能力值得管理密钥的二次增加。

© www.soinside.com 2019 - 2024. All rights reserved.