使用私钥解密SSL

时间:2015-03-08 11:36:18

标签: ssl openssl private-key

如果攻击者获得了您的SSL私钥,他可以用它做什么?他可以解密SSL流量吗?如果是的话,怎么样? 管理员应采取什么措施来防止此类攻击?

1 个答案:

答案 0 :(得分:0)

如果对手获得了您的私钥,他们可以:

  • 执行 man-in-the-middle attack 并读取客户端和服务器之间的所有流量。
  • 解密未使用提供 forward secrecy 的密钥交换方法建立的SSL / TLS会话。这种攻击只需要观察(或重放先前观察到的)线路上的流量。 Wireshark提供了一个" SSL dissector"功能,给定私钥,解密当前或记录的TLS会话。 This Stack Overflow question证明了前瞻性如何阻止这种分析。
  • 尝试欺骗证书颁发机构(客户端信任的机构)签署将公钥绑定到您的域名的证书,并使用此证书直接冒充您(假设它们可能导致客户端使用例如网络钓鱼攻击它们) ,DNS中毒等。)

保护您的私钥:

  • 始终使用强密码和强密码以加密形式存储私钥。
  • 确保只能由需要阅读它的进程读取。设置适当的文件所有权和权限,并考虑使用其他强制访问控制机制(如SELinux)来限制哪些进程可以访问它。
  • 如果您的服务器长时间运行,请考虑不要将您的私钥存储在服务器主机上,因为它很可能只在服务器启动时才需要。
  • 如果您的服务处理敏感或高价值数据,请考虑使用 Hardware Security Module (HSM)进行签名和解密操作,以便无法泄露私钥。

您还应采取措施限制重点披露的影响:

  • 支持(或使用exclsively)提供前向保密的密钥协议协议,以便在披露私钥后,以后无法解密捕获的会话。
  • 当您认为可能已被盗用时,请准备撤销密钥,并使用新密钥部署新证书。
  • DNSSEC可以帮助防范MitM和模拟攻击(如果客户使用它)。
  • DNS-based Authentication of Named Entities (DANE)与DNSSEC一起,允许您为证书指定信任锚,如果客户端查询并验证DANE TLSA记录,则保护客户端不与服务器通信提交由其他CA签署的证书。