-1

我有几个树莓派设备,我想用公钥基础设施中的 ssl 将它们安全地链接到一个 Web 应用程序。并且树莓派应该在其内存中保留一个凭证密钥以进行设备身份验证。但我有两个问题 1. 谁(树莓派或服务器)应该生成密钥对 2. 谁保留私钥。

所以对于第一个问题,我想以 Amazon EC2 服务为例。服务器实例生成密钥对,服务器保存公钥并将私钥发送给用户。一个个人原因是,如果他们想连接到一个特定的服务,我希望一组树莓派共享相同的密钥。因此,每个特定服务都会生成一个密钥对,并与链接到该服务的一组设备共享。如果我们允许每个设备为服务生成一个密钥对,服务器很难控制访问,对吧?

对于第二个问题,就像 aws 所做的那样,将私钥发送给用户,这也意味着我们必须确保将私钥安全地提供给用户/设备。但是我想知道向许多设备颁发相同的私钥是否是一种威胁,如果一个设备的密钥被盗,服务器端的整个服务都会受到损害。出于这个原因,给这些设备一个公钥比一个私钥更好吗?

如果基于我有限的安全知识我的猜测是错误的,请纠正我

4

1 回答 1

0

如果您编写一个简短的脚本,可以在每个树莓派上生成一个密钥对,然后将公钥复制到服务器(例如 scp),那将是最好和最安全的。这样,您的私钥就按照系统的预期方式在 pi 上。

谁生成密钥并不重要,重要的是它们是如何传输的。您可以将其视为 Lowes 或 Home depot 是否制造密钥并不重要,只是每个人都将正确的密钥传输给他们,而不会在此过程中复制它们。你总是希望你的私钥保密,但公钥是否被截获并不重要。

最安全的就是说,client1、client2、client3被授权与服务器对话。换句话说,服务器说,我分别了解这三个客户端,并且可以稍后决定其中一个是否已经离开并停止与他们交谈,直到他们提供一个新的正确密钥。

不在所有设备上复制相同的密钥会带来一点不便,但如果安全性因任何原因受到损害,它会为您省去麻烦,让您的系统在您找出问题所在时不会停止运行,并且是正确的做法。

(案例 2)但是,这取决于您的设备如何相互通信。如果是通过 ssh,上面就是你想要做的。如果您使用 ssl 和 https 只是为了确保 pi 上的最终用户知道他们实际上已连接到服务器,那么您将在服务器上拥有一个私钥并在所有服务器上验证公共 ssl 证书您的 pi 通过您的浏览器或其他方式。是否有任何 pi 在这方面受到损害并不重要,因为您的所有 ssl 证书所做的只是告诉 pi 他们实际上正在与权威服务器交谈。然后,您唯一需要担心的密钥将受到服务器本身的保护(不要与您的 pi 共享)。

最终,这取决于谁需要进行身份验证。如果人们需要知道服务器是真正的服务器,那么案例 2 将适用。如果服务器需要知道它的客户真的是他们所说的那样,则适用第 1 种情况。

于 2013-05-09T21:12:14.003 回答