Heartbleed 是否意味着每个 SSL 服务器都需要新证书?

信息安全 tls openssl 心血来潮
2021-08-22 10:40:52

如果您还没有听说过Heartbleed Bug,请立即查看。这实质上意味着攻击者可以利用许多版本的 OpenSSL 中的漏洞来获得对服务器私钥的访问权限。这不是理论上的威胁,而是可证明和可重现的威胁。有关更多信息,请参阅上面的链接。

我认为大多数组织都在问自己的问题如下:

现在是否每个公司都需要创建新的公钥/私钥对并要求他们的 CA 使原始签名的密钥对无效?

4个回答

这不仅仅意味着每个受影响的服务器的新证书(或者更确切地说是新的密钥对)。这也意味着:

  • 将受影响的系统修补到 OpenSSL 1.0.1g
  • 撤销刚刚被取代的旧密钥对
  • 更改所有密码
  • 使所有会话密钥和 cookie 无效
  • 评估易受攻击的服务器处理的可能泄露的实际内容,并做出相应的反应。
  • 评估可能泄露的任何其他信息,例如内存地址和安全措施

heartbleed.com总结(强调我的):

什么是泄露的主键材料,如何恢复?

这些是皇冠上的宝石,加密密钥本身泄露的密钥允许攻击者解密任何过去和未来到受保护服务的流量,并随意冒充服务。可以绕过 X.509 证书中的加密和签名提供的任何保护。从此泄漏中恢复需要修补漏洞、撤销受损密钥以及重新发布和重新分发新密钥。即使做所有这些仍然会使过去被攻击者拦截的任何流量仍然容易被解密。所有这些都必须由服务的所有者完成。

什么是泄露的二级密钥材料,如何恢复?

例如,这些是易受攻击的服务中使用的用户凭据(用户名和密码) 。从此泄漏中恢复需要服务的所有者首先根据上述步骤恢复对服务的信任。在此之后,用户可以根据受到损害的服务所有者的指示开始更改他们的密码和可能的加密密钥。所有会话密钥和会话 cookie 都应无效并被视为已泄露。

什么是泄露的受保护内容以及如何恢复?

这是易受攻击的服务处理的实际内容它可能是个人或财务详细信息、私人通信(如电子邮件或即时消息)、文档或任何值得通过加密保护的东西。只有服务的所有者才能估计泄露的可能性,他们应该相应地通知用户。最重要的是恢复对如上所述的主要和次要密钥材料的信任。只有这样才能在未来安全使用受感染的服务。

什么是泄露的抵押品以及如何恢复?

泄露的抵押品是在泄露的内存内容中暴露给攻击者的其他细节。这些可能包含技术细节,例如内存地址和安全措施,例如用于防止溢出攻击的金丝雀。这些只有当代价值,当 OpenSSL 升级到固定版本时,它们对攻击者将失去价值。

这是最坏的情况,正如建立引用网站的 Codenomicon 所描述的那样。

“原始”漏洞描述是:

处理 TLS 心跳扩展时的缺失边界检查可用于向连接的客户端或服务器显示多达 64k 的内存。( OpenSSL )

我并不是说他们走得太远了,这是非常非常糟糕的,但是:

  • 检查您的 OpenSSL 版本(并非所有版本都受到影响)。
  • 更好的是,测试它:

    openssl s_client -connect example.com:443 -tlsextdebug 2>&1| grep 'server extension "heartbeat" (id=15)' || echo safe

  • 或使用http://filippo.io/Heartbleed/

然后,如果您使用的是完全前向保密 (PFS),则交换的数据无法解密,除非执行了 MITM。

要执行 MITM 攻击,黑客必须了解该漏洞并成功利用它。攻击者可以在不被注意的情况下尝试访问 64ko 内存的随机片段,通过这样做,他最终应该能够获得存储私钥的部分内存。

回答这个问题,如果您容易受到 Heartbleed 错误的影响。是的,您必须更改您的私钥和证书。如果您想安全起见,请检查大约 2 年的日志文件以确保没有人在您的站点上使用 Heartbleed,或者简单而安全地执行已经提到的操作。

为所有服务器使用新 SSL 证书/密钥的问题通常被夸大了。你需要假设

  • 在您修复 openssl 之前,存在一个知道 Heartbleed 的黑客
  • 他/她有兴趣入侵您的服务器,而不是其他流行的网站
  • 他/她有能力从64K服务器内存中提取私钥,他/她应该是一个非常老练的黑客
  • 他/她可以拦截本地网络(用户/服务器)并能够解密流量

鉴于所有条件,您判断是否需要更新 SSL 证书/密钥。

我不是说你不应该,我只是说有时互联网上的人会盲目地听别人说话,如果你不这样做,你的网站将 100% 被黑,这只是 FUD,恕我直言

如果这个人正在收集这 64K 条数据,直到他们最终捕获私钥,他们就可以解密他们收集的所有内容(并收集更多)。这就是攻击者无需成为 MITM 即可获取用户名和密码的方式。如果这个人可以得到私钥,剩下的就很容易了。