其他分享
首页 > 其他分享> > TLS1.3和TLS1.2的形式化分析

TLS1.3和TLS1.2的形式化分析

作者:互联网

本篇博客是对下面博客连接上的原文进行梳理+自己在其他方面资料做个整理

https://blog.csdn.net/andylau00j/article/details/79269499    TLS协议在网络的应用层提供功能 :加密,认证、消息完整性。(建立一个安全的连接,对其中传输的数据加密保护,防止中间人嗅探明文;多对数据的完整性进行校验,防止传输的数据被中间人进行篡改,建立一个可信的连接,对双方的真实身份进行验证)         

  一个正常的TLS1.3 握手顺序是按照下面的顺序进行:

TLS1.3最大的特点就是对不同的报文使用多种不同的秘钥,TLS1.2中只使用两种秘钥,一个事用于完整性校验,另一个是用于报文加密,同一个连接中不同方向的加密秘钥不一样,TLS1.3使用AEAD机制不再使用MAC_key来进行完整性校验,同时由于其他各种用途的加密需要,TLS1.3的实施过程使用一下几种key:

    handshake_key     early_traffic_key   resumption_key     exporter_key(导出秘钥,用户自定义的其他用途)

  这些秘钥都是由之前协商的秘钥材料计算而出,区别在于HKDF的计算次数不同,HKDF计算使用的哈希值不同,以会话秘钥application_key为例子,以整个握手阶段的报文作为输入,计算四次HKDF导出最终使用的秘钥,同时,当加密的报文长度达到一定的长度的时候,双方发送的KU报文重新计算application_key

数据发送出去之后,recod层会在密报文头部加上一小段的明文信息来标识解密后明文的长度信息,对方的让recod 层收到消息之后,通过逆过程解密密文后转发给上层协议,

同时TLS1.3协议版本允许在末尾添加八字节整数倍的全为0的二进制数据,对方收到该消息之后,解密从末尾开始去掉0 ,当搜索到第一个不全为0的八字节的时候结束。

总的概括:  TLS1.3协议版本 使用的更加 复杂额秘钥导出过程,增强了最终使用秘钥的安全性,同时简化了所使用的加密秘钥,删除了RC4  3DES   SHA1  AES-CBC 等加密算法,删除了加密前压缩,重新协商等具有的漏洞,精简了协议 内容,

    在TLS1.2中记录协议record,占据一个TLS连接的绝大数的数据流量,

Record 协议 — 从应用层接受数据,并且做:

分片,逆向是重组
生成序列号,为每个数据块生成唯一编号,防止被重放或被重排序
压缩,可选步骤,使用握手协议协商出的压缩算法做压缩
加密,使用握手协议协商出来的key做加密/解密
算HMAC,对数据计算HMAC,并且验证收到的数据包的HMAC正确性
发给tcp/ip,把数据发送给 TCP/IP 做传输(或其它ipc机制)。

 

 

标签:TLS1.2,TLS1.3,报文,形式化,秘钥,发送,key,服务端,客户端
来源: https://www.cnblogs.com/xinxianquan/p/10750784.html