HTTP与HTTPS-HTTPS 的应用数据是如何保证完整性的?

资料来源 : 小林coding
小林官方网站 : 小林coding (xiaolincoding.com)

HTTPS 的应用数据是如何保证完整性的?

TLS 在实现上分为握手协议和记录协议两层

  • TLS 握手协议就是我们前面说的 TLS 四次握手的过程,负责协商加密算法和生成对称密钥,后续用此密钥来保护应用程序数据(即 HTTP 数据)
  • TLS 记录协议负责保护应用程序数据并验证其完整性和来源,所以对 HTTP 数据加密是使用记录协议

TLS 记录协议主要负责消息(HTTP 数据)的压缩,加密及数据的认证,过程如下图

具体过程如下:

  • 首先,消息被分割成多个较短的片段,然后分别对每个片段进行压缩
  • 接下来,经过压缩的片段会被加上消息认证码(MAC 值,这个是通过哈希算法生成的),这是为了保证完整性,并进行数据的认证。通过附加消息认证码的 MAC 值,可以识别出篡改。与此同时,为了防止重放攻击,在计算消息认证码时,还加上了片段的编码
  • 再接下来,经过压缩的片段再加上消息认证码会一起通过对称密码进行加密
  • 最后,上述经过加密的数据再加上由数据类型、版本号、压缩后的长度组成的报头就是最终的报文数据

记录协议完成后,最终的报文数据将传递到传输控制协议(TCP)层进行传输。


这期就到这里 , 下期见!

相关推荐
christine-rr10 分钟前
【25软考网工】第四章无线通信网(1)移动通信与4G/5G技术、CDMA计算
网络·5g·网络工程师·软考·考试
caimouse16 分钟前
C#里创建一个TCP客户端连接类
java·网络·tcp/ip
DanmF--1 小时前
详解UnityWebRequest类
网络·unity·c#·游戏引擎·游戏程序
北海有初拥1 小时前
【Linux网络#1】:网络基础知识
网络·智能路由器
MerlinTheMagic1 小时前
Tshark:强大的命令行网络抓包与分析工具
网络
我的golang之路果然有问题1 小时前
案例速成GO+Socket,个人笔记
开发语言·笔记·后端·websocket·学习·http·golang
凢en2 小时前
NOC科普一
网络·笔记·算法·智能路由器·硬件工程
zym大哥大2 小时前
HTTP协议重定向及交互
网络·网络协议·http
言之。4 小时前
Go语言Context机制深度解析:从原理到实践
服务器·网络·golang
Antonio9154 小时前
【网络编程】UDP协议 和 Socket编程
网络·udp·网络编程