SSL3 TLS1.0 TSL1.1 TLS1.2 TLS 1.3协议版本间的差异
今天安信SSL证书主要为大家介绍SSL和TLS协议的个版本之间的差异。自SSL3以来,协议核心并没有大幅改变。TLS1.0为了迎合使用另一个名称进行了有限的改变,发布TLS1.1的首要目标是为了解决几个安全性问题。TLS1.2引了已验证加密,清理了散列,另外去掉了协议中的硬编码基元。TLS1.3是目前最新协议,有望成为有史以来最安全版本。
1、SSL3
SSL3于1995年末发布,为了弥补先前协议版本的诸多弱点,SSL3从头开始设计了一套协议,并一直沿用到了最新版本的TLS。
2、TLS1.0
TLS1.0于1999年1月发布,与SSL3相比,它有以下的区别:
1)这是定义基于标准HMAC的PRF的第一个版本。它将PRF以 HMAC-MD5和 HMAC-SHA的结合(XOR)实现;
2)生成主密钥使用PRF,而不是定制的构造方法;
3)verify_data的值基于PRF,而不是定制的构造方法;
4)使用官方HMAC作为完整性验证(MAC)。SSL3使用的是更早的、已被废弃的HMAC版本;
5)修改填充格式,使其更为可靠。2014年10月,被称为POODLE的攻击暴露了SSL3的填充机制不安全。
6)去掉了 FORTEZZA套件。
协议清理的结果是TS1.0得到了FPS的批准,允许其用于美国政府机构,这是现实中一个非常重要的事件。
3、TLS1.1
TLS1.1于2006年4月发布。与TLS1.0相比,它有以下的区别:
1)CBC加密使用包含在每个TLS记录中的显式Ⅳ。这弥补了Ⅳ可预测的弱点,不然这个弱点后面会被BEAST攻击所利用;
2)为了抵抗填充攻击,要求实现使用 bad_record_mac警报作为填充问题的响应。不再赞成使用decryption_failed警报。
3)这个版本引用包含了TLS扩展(RFC3546)
4、TLS1.2
TLS1.2于2008年8月发布。与TLS1.1相比,它有以下的区别:
1)添加已验证加密支持;
2)添加对HMAC-SHA256密码套件的支持;
3)删除IDEA和DES密码套件;
4)虽然大部分扩展的实际文档还是在其他地方,但TLS将扩展和协议的主规格说明书进行了集成;
5)客户端可以使用一种新的扩展( signature_algorithms)来通报它愿意接受的散列和签名算法。
6)当使用TLS1.2套件或者以协商协议是TLS1.2为条件使用之前的套件时,在PRF中使用SHA256代替MD5/SHA1组合。
7)允许密码套件定义其自身的PRF;
8)使用单一散列代替用于数字签名的MD5/SHA1组合。默认使用SHA256,并且密码套件可以指定其自身使用的散列。签名散列算法以往是由协议强制指定,现在是散列函数式签名结构中的一部分,而且在实施启用中可以选择最佳算法。
9)密码套件可以显式指定 Finished消息中的 verify_data成员的长度。
5、TLS 1.3
TLS 1.3发布2018年,是时隔九年对 TLS 1.2 等之前版本的新升级,也是迄今为止改动最大的一次。针对目前已知的安全威胁,IETF(Internet Engineering Task Force,互联网工程任务组) 正在制定 TLS 1.3 的新标准,使其有望成为有史以来最安全,但也最复杂的 TLS 协议。
TLS 1.3 与之前的协议有较大差异,主要在于:
1)相比过去的的版本,引入了新的密钥协商机制 — PSK;
2)支持 0-RTT 数据传输,在建立连接时节省了往返时间;
3)废弃了 3DES、RC4、AES-CBC 等加密组件,废弃了 SHA1、MD5 等哈希算法;
4)ServerHello 之后的所有握手消息采取了加密操作,可见明文大大减少;
5)不再允许对加密报文进行压缩、不再允许双方发起重协商;
6)DSA 证书不再允许在 TLS 1.3 中使用。
对比旧协议中的不足,TLS 1.3 确实可以称得上是向前迈了一大步。既避免之前版本出现的缺陷,也减少了 TLS 握手的时间。