SSL/TLS的近年相关攻击研究综述(四)

SSL/TLS的近年相关攻击研究综述(四)

协议设计不足的漏洞

作者:韦俊琳 清华大学

简介:在SSL/TLS的协议设计中,除了CBC模式,RC4之外,近几年还发现了一些其他相关的漏洞。从K. Bhargavan 团队的相关研究中,三次握手攻击,SLOTH攻击,降级弹性等都是有代表性的研究。

三次握手攻击

三次握手攻击,利用的漏洞是协议的设计问题,主要是利用TLS协议的RSA/DH密钥交换缺陷和会话恢复的缺陷来绕过防护措施。作为TLS会话的核心,会话的主密钥产生是经过客户端驱动产生的。客户端会生成预主密钥和一个随机值发送给服务器,而服务器也会生成一个随机值发送给客户端,并且,预主密钥是加密传输的,根据客户端和服务器端的三个值生成主密钥。

三次握手攻击在实际进行的时候需要利用恶意网站进行中间人攻击。客户端把自己生成的预主密钥和随机值发送给恶意网站,而恶意网站作为正常的接受方,可以通过正常方式解密客户端的预主密钥。然后恶意网站再与目标服务器发送请求,建立新的连接,并使用从客户端接收到预主密钥和随机值,并把服务器端的随机值转发给客户端。当握手过程结束的时候,恶意网站就拥有了和客户端,服务器相同的主密钥,并分别和客户端,服务器建立了连接。但是由于两个连接使用的证书是不一样的,而且每个连接都拥有不同的verify_data值。这就需要利用会话恢复的机制来进行下一步的破解。在会话恢复的时候,不要求进行证书的验证,也没有身份的验证。而仅仅通过主密钥进行通讯双方的身份认证,从而导致在握手结束的时候,Finished消息将一致,verify_data相同。这时攻击者再发起重协商,利用客户端的证书伪造自己的身份,从而控制两边的连接,发送任意修改的数据内容。从而完成攻击。这个攻击攻破了所谓安全的TLS连接,警醒设计者对协议的重新设计思考。作者也提出一些比较可靠的解决方案,如禁用重协商,只启用ECDHE加密套件和对所有网站都要求验证客户端证书等,但是每种解决方案都有一定的适用范围。[1]

SLOTH攻击

对于MD5和SHA-1的碰撞,很多实践者认为,它们在这些协议中的使用仅依赖于第二前级映像,不受碰撞的影响。作者在[4]中则是系统的进行研究和揭示这个论点的薄弱,并在密钥交换协议上设计出一类新的基于哈希结构的有效的冲突查找算法的碰撞攻击。通过在TLS1.2客户端身份验证上进行演示攻击和几乎现实化的TLS1.1,IKEv2和SSH-2的降级攻击,迫使多个TLS库进行更新,禁用主流协议中的弱哈希函数。其中SLOTH(security losses from obsolete and truncated transcript hashes)是攻击者迫使使用弱哈希算法,如客户端TLS1.2版本可以利用MD5进行降级攻击。在握手的初期,客户端将Client Hello数据包发生给服务器;数据包中声明了服务器可以使用的签名和加密算法。然而,攻击者可以截获该数据包,并且向客户端发送一个要求更改算法的数据包,迫使客户端接受。至此,攻击者就开始了冒充目标服务器的攻击过程。位于客户端和服务器端之间的攻击者通过发送Server Hello、Certificate和Server Key Exchange数据包响应客户端请求。在Server Key Exchange中,攻击者使用RSA-MD5算法替换客户端实际指定的算法。客户端接收到“服务器端”的响应,并最终使用弱哈希算法。随后,客户端再次发送Client Key Exchange响应,握手成功。TLS被降级后,中间人攻击者就可以冒充服务器,解密所有加密的流量。SLOTH也可以反向进行,导致服务器端被使用MD5降级攻击。针对这个攻击,最好的方案是在TLS1.2 后的版本中删除MD5/SHA-1等弱哈希算法的支持,当然对于SSH和VPN也需要进行同样的更改。[2]

降级弹性

降级攻击是攻击者使用一些策略,让服务器和客户端采用比较弱的协议或者加密方式的一种攻击。类似于TLS,SSH,IPsec和ZRTP之类的密钥交换协议是高度可配置的,能够支持多种版本的协议,加密算法和参数等。这也是为了让协议能够具有更好的应用范围,所具备的敏捷性。作者在[3]中设计了一个正式的框架来研究降级弹性及其与密钥交换协议的其他安全属性的关系。通过剖析和归类经典攻击和一些新型攻击,总结其中的原因,并调查现有的标准降级弹性的相关内容,然后将这些结果与降级安全性结合起来,分析几个协议实现的条件,最后设计一套降低安全性的模式,并解释如何使用它们来加强现有协议的安全性。

论文中再次提及到Agility,现代协议具有加密敏捷性,其提供了多种协议和密码模式的可配置选择,使得在两个对等体之间实际执行的密钥交换取决于嵌入在交换中的协商阶段。在确保实际的协议实现方面,敏捷性已被证明其重要性。不幸的是,对算法敏捷性的支持为降级攻击提供了机会,在这种攻击中,主动网络攻击者干扰协商,导致诚实的对等方完成密钥交换,尽管使用的方式比自己使用的模式弱。为了防止对特定协议模式的攻击,关闭导致其协商的配置也是必要的。作者对降级弹性的探讨依然是建立在mi TLS上的,考虑Initiator 和 Responder,引入了一个降级保护谓词DP,它可以对成对的配置进行操作,并且确定了一组配置来降低弹性。还引入了一个函数Nego,将两个相反角色的配置映射到协议模式,在没有攻击者的情况下应该协商。而且如果从符合DP的配置开始的两个对等体只能协商Nego确定的模式,即使在有攻击者的情况下,协议也会降级安全。例如,对于TLS协议,Nego的具体实例可能会确定两个TLS对等体配置通常会导致TLS 1.2与密码套件的协商,例如DHE-RSA-AES256-GCM-SHA384,具有2048位DH模数。但是,如果服务器支持不安全模式,例如DHE-EXPORT密码套件,则对手可能会迫使其降级到此模式。这表明如果没有其他对策,TLS 1.2将不符合的定义。另一方面,仅具有一种可能模式的协议显然是安全的。[3]

作者也证实了TLS1.2版本协议并不是降级安全的,还描述了IKEv2和ZRTP的新的降级漏洞,并提出相应的配置方案来避免这些漏洞,最后还证明了SSHv2是降级安全的。

总结

SSL/TLS 协议内容比较复杂,存在着很多未知的变数。只有通过从在之前版本中的漏洞中不断地进行总结,才能够逐步改善,成为更完备,更安全的通讯协议。通过总结TLS各版本中存在的问题,在TLS1.3中做出了修改,废除了类似于RC4,CBC加密等方式,废弃了弱哈希算法的使用,也采取了更有效的措施来防止降级。总之,协议的发展是靠逐渐积累起来,一点一点推进的,TLS1.3将更具有完备性和实用性。

参考文献

[ 1 ] K. Bhargavan, A. Delignat-Lavaud, C. Fournet. Triple Handshakes and Cookie Cutters: Breaking and Fixing Authentication over TLS. In IEEE Symposium on Security and Privacy (Oakland), 2014

[ 2 ] B. Beurdouche, K. Bhargavan, A. Delignat-Lavaud. A Messy State of the Union: Taming the Composite State Machines of TLS. In IEEE Symposium on Security and Privacy (Oakland), 2015

[ 3 ] K. Bhargavan, C. Brzuska, C. Fournet. Downgrade Resilience in Key-Exchange Protocols. In IEEE Symposium on Security and Privacy (Oakland), 2016

[ 4 ] K. Bhargavan, G. Leurent. Transcript Collision Attacks: Breaking Authentication in TLS, IKE, and SSH. In Network and Distributed System Security Symposium (NDSS), 2016

Bookmark the permalink.

Comments are closed.