资料来源 : 小林coding
小林官方网站 : 小林coding (xiaolincoding.com)
HTTPS 的应用数据是如何保证完整性的?
TLS 在实现上分为握手协议和记录协议两层
- TLS 握手协议就是我们前面说的 TLS 四次握手的过程,负责协商加密算法和生成对称密钥,后续用此密钥来保护应用程序数据(即 HTTP 数据)
- TLS 记录协议负责保护应用程序数据并验证其完整性和来源,所以对 HTTP 数据加密是使用记录协议
TLS 记录协议主要负责消息(HTTP 数据)的压缩,加密及数据的认证,过程如下图
具体过程如下:
- 首先,消息被分割成多个较短的片段,然后分别对每个片段进行压缩
- 接下来,经过压缩的片段会被加上消息认证码(MAC 值,这个是通过哈希算法生成的),这是为了保证完整性,并进行数据的认证。通过附加消息认证码的 MAC 值,可以识别出篡改。与此同时,为了防止重放攻击,在计算消息认证码时,还加上了片段的编码
- 再接下来,经过压缩的片段再加上消息认证码会一起通过对称密码进行加密
- 最后,上述经过加密的数据再加上由数据类型、版本号、压缩后的长度组成的报头就是最终的报文数据
记录协议完成后,最终的报文数据将传递到传输控制协议(TCP)层进行传输。
这期就到这里 , 下期见!