TLS3.0简述
何为TLS3.0?
TLS3.0在上一篇文章中已讲到是TLS1.0和2.0的升级版,是由IETF提出。
IETF是干嘛的?
IETF是国际互联网工程任务组(The Internet Engineering Task Force,简称 IETF)
IETF的主要任务是负责互联网相关技术标准的研发和制定。
TLS是干嘛的?
TLS(Transport Layer Security)安全传输层协议是负责两端通信的数据完整性与保密性的。
该协议划分两大部分、分别是TLS记录协议(Record)和TLS握手协议(Handshake)。
为何使用TLS协议?
在早期TLS协议还未出现之前,我们熟知的HTTP、FTP等协议均存在安全隐患问题,我们的数据在传输过程中都是明文传输数据。在上一章“HTTPS详解”文章中我们也提到,如果传输过程中一旦明文数据被拦截,被篡改,接收者无法分辨对方身份和数据的合法性与完整性。为了解决此类问题,HTTPS采用的解决方案便是加入TLS安全传输协议层。
TLS在HTTPS传输过程中所起到的作用
1、数据的保密性(message privacy)数据均采用加密技术实现。
2、数据的完整性(message integrity)通过MAC校验机制,数据一旦被篡改,双方都可得知。
3、认证(mutul authentication)双方认证,双方都可以配备证书,防止身份被冒充。
TLS Handshake(握手协议)
据手协议在上一文章HTTPS详解中实际已经讲到,这篇文章在简单回顾一下。
1、客户端先向服务端发起请求,并发送TLS协议版本号,压缩算法、所支持的加密算法集合与随机数C等相关相息。
2、服务端接收到请求后,会先校验是否支持客户端发送的加密算法集合。如校验通过,则分别采用对称加密与非对称加密两种加密算法,连同本身的数字证书,随机数S一起发送给客户端。
3、客户端收到该数字证书后,会查找该数字证书是否在受信任的列表之内。如果该证书是可信任证书,则取出证书中的公钥用来生成一个“预主秘钥”,并通过该预主秘钥和随机数C和S通过一定算法合成“会话秘钥”,
4、客户端将通过公钥生成的“预主秘钥”发送给服务器
5、服务器通过私钥解析得到“预主秘钥”,并采用相同办法将预主秘钥和随便数C、S通过算法合成“会话秘钥”
6、双方通过“会话秘钥”,也就是通过对称加密算法对通讯内容进行加密。
TLS记录协议(Record)
记录协议主要负责消息的压缩、加密与数据的安全认证。
1、首先将消息进行分割成多个片段,然后分别对每个片段进行压缩,所采用的压缩算法,是通过与通信对象协商决定的。
2、针对每个片段信息加了编号与MAC值信息。通过校验MAC来确认信息是否被篡改,
3、针对每个片段信息通过双方协商的“会话密钥”,进行数据加密。
4、最后,上述经过加密的数据再加上数据类型、版本号、压缩后的长度组成的报头(header)就是最终的报文数据。