TLS 1.3 是IETF(国际互联网工程任务组)在2014年开始着手制定的另一个新协议,其安全等级是基于TLS1.1和TLS1.2的基础上在进一步加强。经过三年多的筹备,TLS 1.3呈现出一种未上市先爆红的状态,令大家都对TLS 1.3翘首以待。近日IETF(国际互联网工程任务组)正在进行第27届草案。这意味着,TLS 1.3的发布时间越来越接近。
TLS 自标准化至今已有近20年的时间,1999年TLS 1.0标准颁布;2006年TLS 1.1发布;两年后(即2008年),目前得到广泛使用的TLS 1.2也上市;TLS 1.3将会是TLS协议的第四代。虽然TLS 1.2仍未被破解,但是互联网的世界千变万化,所以须做好未雨绸缪的准备。因此也成就了TLS是保障网络传输安全最重要的安全标准之一。ssl证书申请
与前面三代的TLS相比,TLS 1.3是TLS标准更新过程中变动最大的一次,除了对于运行过程中的若干问题如密码套件的选择、密钥的计算方式、握手消息的发送方式等做了更改之外,TLS 1.3还增加了新的握手模式,以满足不同应用场景下的需求。
TLS 1.2与TLS 1.3 的对比
TLS 1.2
TLS 1.2握手过程,与TLS 1.0和1.1类似,涉及一系列的客户端和服务器之间背后的来往通信。
第1步:客户端向服务端发送 Client Hello 消息,该消息由加密信息组成,支持的协议和客户端支持的加密套件(Support Ciphers)和 SSL Version 等信息。也包含一个随机字符。
步骤2:响应客户端的“客户端问候”消息,服务器以“服务器问候”消息响应。该消息包括服务器从客户端提供的CipherSuite中选择的CipherSuite。服务器还会将其证书和会话ID以及另一个随机值一起发送。
第3步:客户端验证服务器发送的证书。验证完成后,发送一个随机字符串,也称为“密钥”,并使用服务器证书的公钥对其进行加密。
步骤4:服务器收到密钥,客户端和服务器都会生成一个主密钥以及会话密钥(临时密钥)。这些会话密钥将用于对称加密数据。
第5步:客户端向服务器发送“更改密码规范”消息,通过会话密钥的帮助让其知道它将切换到对称加密。除此之外,它还发送“客户端已完成”的消息。
步骤6:回复客户端的“更改密码规范”消息时,服务器执行相同操作并将其安全状态切换为对称加密。服务器通过发送“服务器已完成”消息来结束握手。
有上述可知,客户端和服务器之间需要三次往返才能完成握手。平均而言,这需要0.25秒到0.5秒之间的时间。这个数字用户一般都察觉不到,但此刻数据传输还没有开始。当比较HTTP和HTTPS站点的TTFB(第一个字节的时间)时,与HTTP站点相比,HTTPS站点的TTFB需要更长的时间,尤其是当站点运行在HTTP / 1上时。
TLS 1.3握手
与TLS 1.2握手过程对比,TLS 1.3握手过程只需一次往返,大大加快了其相应时间。
第1步:与TLS 1.2握手类似,TLS 1.3握手从“客户问候”消息开始。客户端发送支持的密码套件列表并猜测服务器可能选择的密钥协议协议。客户端还发送其特定密钥协议。
第2步:在回复“客户端问候”消息时,服务器回复它所选择的密钥协议。“服务器问候”消息还包含服务器的密钥共享,其证书以及“服务器已完成”消息。
第3步:现在,客户端检查服务器证书,生成密钥,因为它具有服务器的密钥共享,并发送“客户端已完成”消息。从这开始,数据的加密就开始了。
TLS 1.3做出了哪些重大改动
与之前版本类似,TLS 1.3协议可分为握手协议和记录协议,前者负责密码组件的协商以及安全信道的建立,后者则是在已建立的安全信道中传输秘密信息。TLS 1.3设计的第一个重要目标就是避免之前版本存在的缺陷,为此,一部分相关的改动如下:
(1)禁止使用RSA密钥传输算法。
(2)禁止一些安全性较弱的密码原语如MD5的使用。
(3)不再支持重协商握手模式。
(4)握手消息采取了加密操作,如图二中标有{}的部分。
(5)实现了握手协议和记录协议的密钥分离。
(6)实现了会话密钥与整个握手消息的绑定。
(7)记录层只能使用AEAD(Authenticated Encryption with Additional Data)认证加密模式。
目前,TLS 1.3仍处于讨论修改阶段,因此TLS 1.2仍然是目前甚至未来相当一段时间内被普遍使用或者兼容的TLS 版本。这可能导致TLS 1.2对TLS 1.3的安全性带来影响,也是未来研究的重要方向。