如何管理Web服务器的SSL私钥保护(密码与无密码)?


18

我们公司的安全小组中有一个讨论,涉及以下管理SSL私钥的选项的不良后果。

Web服务器需要访问私钥以进行加密操作。此文件应受到保护,以防止未经授权的访问。同时,服务器应自动启动,而无需人工干预(如果足够安全的话)。

我们正在讨论三种选择:

  1. 使用文件系统权限保护密钥。

  2. 使用受密码保护的密钥,并在每次重新启动时手动输入密钥。

  3. 使用受密码保护的密钥,并将密钥存储在文件系统中以自动重启。

我们关注的问题如下:

  1. 使用选项1,重新启动是自动进行的,但是折衷方案可以复制私钥,并且不受保护,可以用来解密通信或模拟我们的服务器。

  2. 选项2似乎更安全,但是它需要人工干预,如果非工作时间发生,则系统管理员会感到担忧。另外,密码应与多个系统管理员共享,并且您知道共享的机密不再是机密。

  3. 选项3具有上述两个选项中的最佳功能,但是如果某人可以访问密钥,也可以访问密码:(,因此似乎一点也不安全。

您如何管理服务器私钥的安全性?还有其他(更安全的)选项吗?

Answers:


10

选项1是我认为可以接受的标准。

但是,如果您真的想要额外的安全性,为什么不设置一个安全服务器(不在DMZ中)来监视您的Web服务器,并且如果apache出现故障,它可以自动远程登录并重新启动apache,密码短语。

因此,密码短语保存在计算机上,但与运行apache的密码短语不同,并且不在您的DMZ中。您可以获得使用密码短语的额外安全性,并保持自动重启的能力。


5

如果有人对服务器具有足够的访问权限以读取密钥,那么他们很可能也具有足够的访问权限来连接调试器并从内存中获取密钥。

除非您真的很喜欢在半夜醒来输入密码,否则请转到选项1。如果有许多服务器,则要在出现故障时自动重新启动,而选项2不允许这样做。


1

安全性高于1.但停机时间少于2.的一种可能性是创建有效期短的私钥并定期回收它们。这样,您可以不用密码存储它们,但是可以减少漏洞窗口。

如您所知,选项3不提供超过1的任何其他安全性。


1

实用性表明,在几乎所有情况下,您最终都将使用选项(1)。在大多数安全性和实际方案中,文件系统烫发是最好的方法。

在* nix系统上,您可以将私钥仅限制为root用户,因为大多数好的Web服务器(如apache)将以root用户启动,但是一旦拥有所需的特权端口(80、443等),便将其priv降级为受限用户。 。

如前所述,从安全角度来看,选项(3)与选项(1)相同。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.