前言
TLS (Transport Layer Security)作为 SSL (Secure Sockets Layer)协议的后继者,是目前网络通信中应用最广泛的密码协议,也是把密码学应用到实际中最重要、最典型的实例之一。TLS 1.2是目前最常用的TLS版本,主要用于保护通过HTTPs传输的信息,为各种应用提供安全的通信信道,比如电子货币交易、邮件传输、VPN以及手机安卓应用等等。
鉴于TLS 1.2及之前版本存在一系列的攻击,比如重协商攻击、幸运 13 攻击、三次握手攻击、BEAST攻击、Heartbleed等,IETF 目前正在制定TLS新版本即 TLS 1.3,目前最新发布的草案是draft-18。
TLS 1.2和已发布的TLS 1.3草案均支持多种握手模式,TLS 1.2支持完整握手、会话重启握手、重协商握手等三种握手模式,TLS 1.3 draft 10(本文是针对TLS 1.3 draft 10所做的工作)支持完整握手、 0-RTT、基于 PSK 的会话重启、会话重启与 DHE 的结合等四种模式。除此之外,不同模式的握手并不是完全独立的,而是存在一定的关联并且可以组合运行,如运行TLS 1.2完整握手之后,可以利用完整握手产生的中间密钥(成为主密钥)进行接下来的会话重启握手。然而,不同模式的握手协议的组合运行可能会导致实际的攻击,如2014年Bhargavan等利用TLS 1.2三种不同模式的握手协议的顺序运行提出了针对 TLS 1.2 的三次握手攻击,可以造成在第三次握手完成之后敌手对客户端的冒充攻击。目前,虽然 TLS 每一种独立的握手模式的安全性得到了很好的研究,但是组合情况下的安全性仍然是一个待解决的问题。
TLS 1.3 多重握手安全性研究
在本篇工作中,我们首次对 TLS 多模式握手协议的组合运行进行了系统、全面地安全性分析。
首先,在本文中我们首先利用多层、多阶段的“树”状结构给出多重握手(密钥交换)协议的正式定义,每个节点对应一个会话 (即一次握手协议),每个会话分为多个阶段,每个阶段均会产生相应的会话密钥。除此之外,一个会话可能会使用位于上层的相关会话中建立或者传输的密钥材料,而同一层的会话是独立、并行运行的。下图给出了TLS 1.3多重握手协议的一个实例,其中粗线表示的是“完整握手+ 0-RTT + 基于PSK 的会话重启”多重握手组合运行模式,这种情况下,第二层的0-RTT 握手使用的Server Configuration 信息来源于上层的完整握手,而基于PSK 的会话重启握手使用的PSK 来源于上层的0-RTT 会话产生的RMS。
然后,为了对多重握手协议进行安全性分析,我们提出了多重握手安全模型 — 多层多阶段的安全模型。作为BR模型的扩展,多重握手安全模型主要具有以下性质:该模型中,协议的每次执行包含多个会话(握手),每次会话的模式也可能是不同的,而且相邻会话之间可能存在安全关联;该模型考虑了介于静态密钥和临时密钥之间的半静态(semi-static) 密钥,出发点是TLS 1.3的0-RTT握手模式;模型考虑了同一个会话中不同阶段会话密钥的相关性以及位于不同层的会话之间的密钥相关性;模型还刻画了多种认证模式即无认证、单向认证以及双向认证的并行运行。模型中定义的安全目标为会话匹配与密钥安全性,前者提供了直观上的安全保障,比如匹配会话拥有相同的会话密钥,诚实会话的会话记录的不可碰撞性等性质;后者则保证了会话密钥的不可区分性。
最后,利用多重握手模型,我们对TLS多重握手协议进行了安全性分析。首先给出了TLS 1.3多重握手协议的安全性证明,该结果确认了TLS 1.3安全设计的可靠性;之后,我们说明,与对TLS 1.3的分析类似,多重握手模型也适用于TLS 1.2多重握手协议的安全性分析,分析表明,该模型可以识别针对TLS 1.2的三次握手攻击,进一步证明了模型的有效性。
结语
目前,TLS 1.3仍在制定过程中,相比于draft 10版本,目前的TLS 1.3对上述几种握手模式如0-RTT的运行做出了一些更改,也加入了新的功能如post-handshake认证功能。这些更改对于TLS安全性的影响也是我们今后重点关注的对象。
由于参考文献较多,请参考论文进行查阅。论文地址:
http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=7546519
本文分享自微信公众号 - 百度安全实验室(BaiduX_lab)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。