个人私钥的最佳做法

Ips*_*gle 5 rsa public-key-encryption

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

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

我有两台客户端计算机:

  1. 桌面
  2. 笔记本电脑

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

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

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

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

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

sar*_*old 3

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

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

    这使您能够在特定客户端受到威胁时轻松撤销其所有密钥 - 删除每项服务上的一个密钥。它还仅在客户端数量上线性扩展,这可能会使密钥管理变得更容易。它甚至与 OpenSSH 密钥模型完美契合,即为每个客户端提供一个在多个服务器上使用的密钥。(您可以使用 OpenSSH 做其他模型,这很好。但这是最简单的事情,因为它不需要您付出任何努力。)

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

    这样做的缺点是,当单个客户端受到威胁时,您将被迫撤销多个密钥,但无论如何,每个服务只有一个密钥,因此情况并没有变得更糟。更好的好处是,一项服务充当您和另一项服务之间的中间人会变得更加困难。大多数时候这并不是一个真正值得关注的问题,但如果您的(笔记本电脑、服务器、SMTP)密钥突然被用于(笔记本电脑、服务器、SSH),您将有机会注意到这种奇怪的情况。我不确定这种能力是否值得管理密钥的二次方增加。