SSL/TLS 的近年相关攻击研究综述 (1)
作者:韦俊琳 清华大学
在互联网时代,我们依靠的手机和计算机通信,支付,信息交流等都是互联网的一部分。但众所周知,在最初设计互联网的时候,其主要目标是增强通信能力,没有过多考虑安全问题。因此,现在互联网的核心通信协议TCP/IP,在本质上是不安全的。为了解决数据在TCP上的安全传输问题,Netscape 公司在1994年提出了Secure Socket Layer (SSL)协议,又称套接字安全协议。由于发布的SSL 2没有和Netscape 之外的安全专家商讨,考虑得不够全面,存在着严重的弱点[1]。在1995年, Netscape 发布了SSL 3,修补了SSL2协议上的很多漏洞,例如,解决了重放攻击,消息认证,增添了ChangecipherSpec等等。SSL 3发布以后,得到了业界的高度重视。之后IETF成立Transport Layer Security(TLS) 工作组,基于SSL3设计了TLS, 并于1999年,2006年,和2008年分别发布了TLS 1.0 [2],TLS 1.1 [3],和TLS 1.2 [4],修补了协议中设计,实现中存在的大量漏洞。
目前,TLS 已经作为一种工业标准大量应用于网络交易,信息交流中。例如HTTPS就是使用TLS协议进行加密传输HTTP流量,旨在为HTTP客户端(如浏览器)和Web服务器之间,创建一条安全的连接,用来保证数据传输的私密性和完整性。当客户端和服务器都同意使用TLS协议时,他们会通过握手来建立安全连接,一个完整的TLS握手过程如图1。
图 1 TLS完整握手过程
随着TLS的广泛应用,关于TLS安全的研究也越来越多,越来越深入。自2013年以来, 在安全领域的四个顶尖会议(ISOC NDSS,IEEE Security and Privacy, USENIX Security, ACM CCS)上,关于TLS的研究,有近50篇研究论文。在这些针对TLS的安全研究中,发现了许多可以被利用的漏洞。我们可以把基于TLS的问题大致分为以下几类:
- TLS所采用的加密算法的漏洞。例如早期设计基于CBC模式的一系列加密方式,给现在带来很多的问题,形成了一系列的漏洞。还有RC4之类的弱加密算法,也带来严重的漏洞。
- TLS版本兼容所带来的漏洞。由于过时的协议如SSL3,不能及时退役,对新版本的协议也造成了很严重的影响。例如利用降级攻击,让通讯双方使用旧版本,从而攻击双方的会话,还有DROWN攻击利用SSLv2协议对大量服务器进行攻击,造成很严重的影响。
- TLS实现的漏洞。由于TLS的开发人员,没有严格按照TLS协议的标准规范来实现,或者程序本身实现有问题,导致了很多TLS相关的漏洞。
- TLS所使用的数字证书的相关漏洞。证书管理和验证的复杂性,也导致了一系列针对证书的相关攻击,伪造证书,过期证书的清除工作较难解决。
在随后的几周,我们将针对上述TLS的问题,分别进行综述。另外,为了缓解或消除上述TLS的相关攻击,TLS 1.3提出一些新的设计。我们也将发布TLS1.3的相关总结。欢迎继续关注。
参考文献
[1] C. Meyer, J. Schwenk. Lessons learned from previous SSL/TLS attacks a brief chronology of attacks and weaknesses. IACR Cryptology ePrint Archive, 2013.
[2] T. Bellare and C. Allen. The Transport Layer Security (TLS) Protocol Version 1.0. RFC 2246, January 1999.
[3] T. Dierks,and E. Rescorla. The Transport Layer Security (TLS) Protocol Version 1.1, RFC 4346. April 2006.
[4] T. Dierks,and E. Rescorla. The Transport Layer Security (TLS) Protocol Version 1.2, RFC 5246. August 2008.
[5] E. Rescorla. The Transport Layer Security (TLS) Protocol Version 1.3, draft-ietf-tls-tls13-19. March 2017
作者简介
韦俊琳,本科毕业于华中科技大学。现为清华大学NISL实验室研一学生,清华蓝莲花战队成员,导师为段海新教授。现阶段主要从事SSL/TLS协议相关安全研究工作。