OpenSSL Encrypt-Then-MAC 握手协商拒绝服务漏洞

责任编辑:editor005

作者:CFCA信息安全实验室

2017-05-12 15:23:36

摘自:中国电子银行网

OpenSSL是实现用于Web认证的SSL TLS协议的流行通用加密库,最近遭受了几个漏洞。如果ClientHello消息不包含Encrypt-Then-Mac扩展名

OpenSSL Encrypt-Then-MAC 握手协商拒绝服务漏洞

OpenSSL是实现用于Web认证的SSL / TLS协议的流行通用加密库,最近遭受了几个漏洞。例如CVE-2017-3731:截断数据包可能导致OpenSSL中的拒绝服务和SSL死亡警报(CVE-2016-8610)可能导致OpenSSL服务器的拒绝服务。现在探讨另一个高度严重的错误CVE-2017-3733,Encrypt-Then-MAC重新协商崩溃可能导致拒绝服务。

在SSL / TLS加密数据之前,它运行握手和ChangeCipherSpec协议。在握手阶段,客户端和服务器决定使用哪些加密算法。一旦协商完成,客户端和服务器就会发送一个ChangedCipherSpec消息,之后通过协商的算法对流量进行加密。

加密数据以SSL / TLS中的消息认证码(MAC)的两种方式之一发送。

1. MAC-then-encrypt:该方法计算纯文本的MAC,并将其与纯文本进行连接,并在其上运行加密算法。

2. Encrypt-then-MAC:密文通过加密明文生成,然后附加加密明文的MAC。

如果ClientHello消息不包含Encrypt-Then-Mac扩展名,则默认值为MAC-then-encryption模式,如果ClientHello具有Encrypt-Then-Mac扩展名,服务器将在加密数据后计算MAC。

如果客户端或服务器希望更改用于加密的算法,则可以重新协商他们已经同意的Cipher_Suites。这可以通过发起新的握手在数据传输期间发生,这种情况发生在现有的SSL连接上

触发漏洞

OpenSSL提供了这个解释:

如果Encrypt-Then-Mac扩展名在原始握手中不协调(或反之亦然),则在重新协商握手过程中,这可能导致OpenSSL崩溃(取决于密码)。客户端和服务器都受到影响。“

说客户端使用默认的MAC-then-encryption模式与服务器启动TLS握手。如果客户端稍后重新协商启用了Encrypt-then-MAC扩展,并在ChangeCipherSpec消息之前以该模式发送加密数据,则服务器将崩溃,导致拒绝服务。

当客户端触发此漏洞时,服务器会在ssl3_get_record函数的ssl3_record.c文件中崩溃:

OpenSSL Encrypt-Then-MAC 握手协商拒绝服务漏洞

崩溃发生在352行当检查mac_size是否小于EVP_MAX_MD_SIZE(64字节)时:

OpenSSL Encrypt-Then-MAC 握手协商拒绝服务漏洞

在if函数中会检查是否在服务器中设置了Encrypt-then-MAC标志。if条件中的宏:

OpenSSL Encrypt-Then-MAC 握手协商拒绝服务漏洞

在重新协商时使用Encrypt-then-MAC扩展名发送ClientHello数据包时,TLS1_FLAGS_ECRYPT_THEN_MAC标志已被设置。所以控制将进入if条件。但是由于ChangeCipherSpec消息尚未传递给服务器,因此不知道它必须使用Encrypt-then-MAC。

在行号上设一个断点352和检查mac_size变量显示值0xffffffff,大于EVP_MAX_MD_SIZE(64)。因此if条件失败,服务器崩溃。

OpenSSL Encrypt-Then-MAC 握手协商拒绝服务漏洞

我们来看看代码,找到mac_size变量如何获取值0xffffffff。EVP_MD_CTX_size函数计算mac_size。

OpenSSL Encrypt-Then-MAC 握手协商拒绝服务漏洞

当消息摘要值为null时,返回-1。0xffffffff是-1的二进制补码。这意味着“s-> read_hash”返回null,因为服务器尝试使用MAC-then-encrypt模式计算哈希。

提示所有管理员应将OpenSSL更新为最新版本。

参考来源:https://securingtomorrow.mcafee.com/mcafee-labs/vulnerable-openssl-handshake-renegotiation-can-trigger-denial-service/,信息安全实验室小编翻译整理,转载请注明来自CFCA信息安全实验室  

链接已复制,快去分享吧

企业网版权所有©2010-2024 京ICP备09108050号-6京公网安备 11010502049343号