从 SSL 证书中删除密码是好的做法吗?

从 SSL 证书中删除密码是好的做法吗?

我已经在几篇博客上看到,应该从 SSL 证书中删除密码,以避免 Apache 重启期间出现密码提示。

这是真的吗?会带来安全风险吗?

答案1

是的,它将在启动 Web 服务器时停止向终端发送提示。

是的,这确实存在安全风险,因为证书之前是加密的,现在却是纯文本。这意味着可以从机器上窃取完全可用的证书。

这是否会对您造成重大的安全风险,取决于这件事发生在您身上会有什么后果,以及您通过这种方式能得到什么好处。

如果对于您来说,服务即使无人值守也能正常重启比整个 SSL 系统的安全性更重要,那么这是一个直接的答案。

就我个人而言,我发现保留 SSL 证书的解密副本对于我的典型工作量来说总体上利大于弊,原因如下;

  1. 即使证书已加密,攻击者仍然会拥有该证书的副本,因此无论如何您都有责任撤销它。
  2. 如今,攻击者通过社会工程学获取您网站的有效证书比窃取证书的工作副本要容易得多。
  3. 证书自然过期,使得其攻击面受到限制。
  4. 基于主机的安全系统(例如传统的权限和 SELinux)提供了强大的方法来保护平台上的证书。
  5. 证书并不是安全系统的全部。还有很多其他方面需要考虑,例如您存储的数据、存储数据的介质以及数据的价值和/或个人性质。

可能会让我加密的事情:

  1. 如果您使用证书执行相互认证。
  2. 它是一个通配符证书或托管多个域的证书(损失增加一倍、三倍或可以使用任意数量的主机)
  3. 该证书在某些方面具有多种用途。
  4. 证书的目的是确保高价值数据(医疗记录、金融交易等)的完整性。
  5. 另一端期望高度的信任和/或依赖系统的完整性来做出操作决策。

最后,不要依赖他人为你做出安全决策。你需要权衡风险,并利用尽可能多的信息确定对你和你的机构来说最好的选择。

答案2

它提供了更多的安全性,但事实是,如果有人深入您的系统并获取您的私人 SSL 密钥,那么您可能会遇到更大的问题。

从实际角度来看,您真的希望每次需要重新启动 apache 时都输入密码吗?

您可以做的一件事是将密钥的密码保护在您的服务器上(并通过正常的系统安全保护它),并使用密码保存您存储在其他地方的密钥的备份。因此,如果有人能够从您的服务器以外的其他地方获取密钥(更有可能的是,想想某人的笔记本电脑被盗,其中有密钥),它仍然受到保护。

答案3

用于登录的客户密钥应受密码保护。

如果您希望基于 SSL 的服务无需人工干预即可重新启动,则有两种选择:

  1. 不要对密钥设置密码,并保护它以便只有需要它的服务才能访问它。
  2. 将密码以纯文本或等效纯文本形式存储在服务器上,以便需要该密码的服务可以提供该密码。(您可能最终会在安全性较差的配置文件中获得密码的多个副本。)

密钥的备份副本应受密码保护,并且应像未受密码保护一样进行安全保护。

相关内容