多重握手安全性研究
TLS(Transport Layer Security)作为SSL(Secure SocketsLayer)协议的后继者,是目前网络通信中应用最广泛的密码协议,也是把密码学应用到实际中最重要、最典型的实例之一。TLS1.2是目前最常用的TLS版本,主要用于保护通过HTTPs传输的信息,为各种应用提供安全的通信信道,比如电子货币交易、邮件传输、VPN以及手机安卓应用等等。
鉴于TLS 1.2及之前版本存在一系列的攻击,比如重协商攻击、幸运13攻击、三次握手攻击、BEAST攻击、Heartbleed等,IETF目前正在制定TLS新版本即TLS 1.3,目前最新发布的草案是draft-18。
TLS 1.2和已发布的TLS1.3草案均支持多种握手模式,TLS 1.2支持完整握手、会话重启握手、重协商握手等三种握手模式,
TLS 1.3 draft10(本文是针对TLS 1.3 draft10所做的工作)支持完整握手、0-RTT、基于PSK的会话重启、会话重启与DHE的结合等四种模式。除此之外,不同模式的握手并不是完全独立的,而是存在一定的关联并且可以组合运行,如运行TLS 1.2完整握手之后,可以利用完整握手产生的中间密钥(成为主密钥)进行接下来的会话重启握手。然而,不同模式的握手协议的组合运行可能会导致实际的攻击,如2014年Bhargavan等利用TLS 1.2三种不同模式的握手协议的顺序运行提出了针对TLS1.2的三次握手攻击,可以造成在第三次握手完成之后敌手对客户端的冒充攻击。目前,虽然TLS每一种独立的握手模式的安全性得到了很好的研究,但是组合情况下的安全性仍然是一个待解决的问题。
我们首先利用多层、多阶段的“树”状结构给出多重握手(密钥交换)协议的正式定义,每个节点对应一个会话(即一次握手协议),每个会话分为多个阶段,每个阶段均会产生相应的会话密钥。除此之外,一个会话可能会使用位于上层的相关会话中建立或者传输的密钥材料,而同一层的会话是独立、并行运行的。图3给出了TLS 1.3多重握手协议的一个实例,其中粗线表示的是“完整握手+0-RTT+基于PSK的会话重启”多重握手组合运行模式,在这种情况下,第二层的0-RTT握手使用的Serveron figuration信息来源于上层的完整握手,而基于PSK的会话重启握手使用的PSK来源于上层的0-RTT会话产生的RMS。

然后,为了对多重握手协议进行安全性分析,我们提出了多重握手安全模型——多层多阶段的安全模型。作为BR模型的扩展,多重握手安全模型主要具有以下性质:该模型中,协议的每次执行包含多个会话(握手),每次会话的模式也可能是不同的,而且相邻会话之间可能存在安全关联;该模型考虑了介于静态密钥和临时密钥之间的半静态(semi-static)密钥,出发点是TLS1.3的0-RTT握手模式;模型考虑了同一个会话中不同阶段会话密钥的相关性以及位于不同层的会话之间的密钥相关性;模型还刻画了多种认证模式即无认证、单向认证以及双向认证的并行运行。模型中定义的安全目标为会话匹配与密钥安全性,前者提供了直观上的安全保障,比如匹配会话拥有相同的会话密钥,诚实会话的会话记录的不可碰撞性等性质;后者则保证了会话密钥的不可区分性。
最后,利用多重握手模型,我们对TLS多重握手协议进行了安全性分析。首先给出了TLS 1.3多重握手协议的安全性证明,该结果确认了TLS1.3安全设计的可靠性;之后,我们说明,与对TLS1.3的分析类似,多重握手模型也适用于TLS 1.2多重握手协议的安全性分析,分析表明,该模型可以识别针对TLS1.2的三次握手攻击,进一步证明了模型的有效性。
目前,TLS1.3仍在制定过程中,相比于draft10版本,目前的TLS 1.3对上述几种握手模式如0-RTT的运行做出了一些更改,也加入了新的功能如post-handshake认证功能。这些更改对于TLS安全性的影响也是我们未来重点关注的对象。
(作者单位为中国科学院软件研究所)
参考文献:
[1]AlFardan N J, Paterson K G. Lucky thirteen: Breaking the TLS and DTLS record protocols [C]. Proceedings of 2013 IEEE Symposium on Security and Privacy (S&P), 2013. 526-540.
[2]Bhargavan K, Lavaud A D, Fournet C, et al. Triple handshakes and cookie cutters: Breaking and fixing authentication over TLS [C]. Proceedings of 2014 IEEE Symposium on Security and Privacy (S&P), 2014. 98-113.
[3]Mavrogiannopoulos N, Vercauteren F, Velichkov V, et al. A cross-protocol attack on the TLS protocol[C]//Proceedings of the 2012 ACM conference on Computer and communications security. ACM, 2012: 62-72.
[4]AlFardan N J, Bernstein D J, Paterson K G, et al. On the Security of RC4 in TLS [C].
Proceedings of 22nd USENIX Security Symposium, 2013. 305-320.
[5]Bleichenbacher D. Chosen ciphertext attacks against protocols based on the RSA encryption standard PKCS #1 [C]. Advances in Cryptology—CRYPTO’98, 1998. 1-12.
[6]Codenomicon. The Heartbleed Bug [EB/OL]. http://heartbleed.com, April 2014. [7]https://www.ietf.org/mail-archive/Web/tls/current/maillist.html.
[8]Rescorla E. The Transport Layer Security (TLS) Protocol Version 1.3 - draft-ietf-tls- tls13-09[S]. https://tools.ietf.org/html/draft-ietf-tls-tls13-19, March, 2017.
[9]Dowling B, Fischlin M, Günther F, et al. A cryptographic analysis of the TLS 1.3 handshake protocol candidates [C]. Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security (CCS), 2015. 1197-1210.
[10]Cremers C, Horvat M, Scott S, et al. Automated analysis and verification of TLS 1.3: 0-RTT, resumption and delayed authentication[C]//Security and Privacy (SP), 2016 IEEE Symposium on. IEEE, 2016: 470-485.
[11]Fischlin M, Günther F, Schmidt B, et al. Key confirmation in key exchange: a formal treatment and implications for TLS 1.3[C]//Security and Privacy (SP), 2016 IEEE Symposium on. IEEE, 2016: 452-469.
[12]Li X, Xu J, Zhang Z, et al. Multiple handshakes security of TLS 1.3 candidates[C]// Security and Privacy (SP), 2016 IEEE Symposium on. IEEE, 2016: 486-505.
[13]Krawczyk H, Wee H. The OPTLS protocol and TLS 1.3[C]//Security and Privacy (EuroS&P), 2016 IEEE European Symposium on. IEEE, 2016: 81-96.
[14]https://www.ietf.org/mail-archive/Web/tls/current/msg22593.html.

特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。