所有 SSL/TLS 实现都容易受到 Heartbleed 错误的影响吗?

信息安全 tls 密码学 openssl 心血来潮
2021-08-24 15:30:36

我已经了解了 SSL/TLS 协议背后的理论,以及它们在客户端和服务器之间实现安全通信的有效性。

OpenSSL、PolarSSL、MatrixSSL 和 Mozilla NSS 的所有实现是否都使用相同的 SSL 和 TLS 基础理论?如果是这样,是否意味着 Heartbleed 漏洞会改变对 SSL/TLS 的承诺程度?

2个回答

如果您查看 Heartbleed 摘要:

Heartbleed Bug 是流行的 OpenSSL 加密软件库中的一个严重漏洞。此弱点允许在正常情况下窃取受用于保护 Internet 的 SSL/TLS 加密保护的信息。SSL/TLS 为 Web、电子邮件、即时消息 (IM) 和一些虚拟专用网络 (VPN) 等应用程序提供 Internet 上的通信安全和隐私。

Heartbleed 漏洞允许 Internet 上的任何人读取受 OpenSSL 软件易受攻击版本保护的系统内存。这损害了用于识别服务提供商和加密流量、用户名和密码以及实际内容的密钥。这允许攻击者窃听通信,直接从服务和用户窃取数据,并冒充服务和用户。

你问:

这是否意味着 Heartbleed 漏洞会改变对 SSL/TLS 的承诺程度?

不,它没有。您可以看到它专门针对 openssl。Heartbleed 是一个软件错误,一个程序错误。这不是 SSL/TLS 协议本身的弱点,例如CRIME 或 BEAST我们从 Heartbleed 中学到的重要教训是,在使用代码之前应该对其进行审查。OpenSSL 中的内存泄漏是一个重大问题,但存在编程错误并将在未来存在。我们所能做的就是定期进行代码审查并简化/清理代码(OpenSSL 有点乱)。

其他库(实际上是任何与此相关的软件)也很容易拥有一个,这里的主要威胁是人为错误,有时很难缓解。

SSL/TLS 是协议。

OpenSSL 是这些协议的实现。它有两个库:libcrypto一个实现了一组加密算法,libssl一个实现了 TLS 协议及其之前的 SSL。

如果给定协议的实现出现错误,并不意味着问题出在协议本身。HeartBleed 只是 OpenSSL 继承的一个问题,但在其他 TLS/SSL 实现中不存在,例如LibreSSLGnuTLSMatrixSSL和许多其他实现。

HeartBleed 是错误实施的结果。HeartBleed 由 Stephen Henson 在 2011 年除夕前一小时首次推出。更准确地说,是当时的博士生 Robin Seggelmann。Duisburg-Essen 大学的学生,他为 OpenSSL 开发了 HeartBeat 扩展(HeartBeat 已经出现在 SSL2.0 规范中),并向 OpenSSL 首席开发人员项目 Stephen Henson 提出了建议,该项目未能(他检查过吗?)找到错误并提交它在其存储库中。其他人则认为,该漏洞早在公开宣布之前就已为人所知并被利用。

Stephen Henson 一直是 OpenSSL 唯一的永久开发者。只有一位同行评审员帮助了他,但不是永久的。OpenSSL 项目的所有其他 11 名成员都与正确所说的开发无关。你可以猜到,无论开发人员多么聪明,只要他独自开发,他就容易出错。