-2

假设我有一个服务器,它在启动时在内存中生成一个私钥。

无论如何,窥探管理员(例如来自 Heroku 或 Nodejitsu)是否可以在该服务器实例运行时恢复该私钥(即以某种方式在内存中访问它)?

如果重要的话,我在 Node.JS 上运行它

4

2 回答 2

0

这取决于他们使用什么系统,以及他们是否具有防止这种情况发生的功能。否则我可以说有权访问主机的管理员可以通过多种方式获取您的私钥。例如,他们可以冻结您的即时并保存其状态,这基本上将内存复制到硬盘,然后解冻它,这在快速系统上不需要很长时间。他们还可以转储您的实例的内存,因为它只是虚拟机管理程序下正在运行的应用程序。这些可能不容易做到,但根据我在安全领域的经验,我可以说它们很有可能。

但是,我认为您应该将密钥的加密版本存储在内存中。并且仅在使用时对其进行解密,因此解密后的版本仅临时存储在 CPU 寄存器中。

于 2012-11-13T19:41:51.473 回答
0

您不仅会生成私钥,还会生成密钥对。然后您必须确保对方使用该密钥对的可信公钥(用于验证签名或加密数据)。如果他们只使用任何公钥,那么他们无法确定它不属于攻击者。因此,即使管理员无法访问私钥,他们也可以简单地用他们生成的公钥替换公钥。所以你会有一个巨大的机会让一个中间攻击的人。

密钥管理很难。您不能简单地用一些随意的方案替换它。在每次运行时生成密钥对也有很多(安全)缺点。一般来说,这不是一个好主意。

于 2012-11-14T00:23:08.193 回答