HTTPS通信的加密问题

如大家所了解的,在未加密的 HTTP 中,客户端会打开一条道 web 服务器端口 80 的 TCP 连接,发送一条请求报文,接收一条响应报文,关闭连接。

在 HTTPS 通信中:

  1. 由于 SSL 安全层的存在,客户端首先打开一条道web服务器端口 443(安全HTTP的默认端口)的连接。
  2. 一旦建立了 TCP 连接,客户端和服务器就会初始化 SSL 层,对加密参数进行沟通,并交换密钥,进行 SSL 握手。
  3. 握手完成之后,SSL 初始化就完成了,客户端就可以将请求报文发送给安全层了
  4. 在将这些报文发送给 TCP 之前,要先对其进行加密

在发送已加密的 HTTP 报文之前,客户端和服务器要进行一次 SSL 握手,这个过程中,它们要完成以下工作:

  1. 交换协议版本号
  2. 选择一个两端都了解的密码
  3. 对两端的身份进行验证
  4. 生成临时的会话密钥,以便加密信道

需要注意的是:SSL 是一个二进制协议,且在通过网络传输任何已加密的 HTTP 数据前,SSL 已经发送了一组握手数据来建立通信连接了。

相关推荐
ALex_zry几秒前
论gRPC:基于 TCP/IP 的通用网络模式,以及基于 Unix Domain Sockets (UDS) 的同机进程间通信 (IPC) 模式
网络·tcp/ip·unix
数据与人工智能律师29 分钟前
数据淘金时代的法治罗盘:合法收集、使用与变现数据的边界与智慧
大数据·网络·人工智能·云计算·区块链
柱子子子子40 分钟前
【邪修】linux (ubuntu/fedora/arch/debian) wifi hard blocked解决方法-AX210
linux·网络·ubuntu·debian
wanderful_2 小时前
使用eNSP模拟器搭建网络拓扑结构(笔记2):从 0 到 1 掌握华为网络仿真
网络·智能路由器
QC七哥2 小时前
关于宽带网络下公网地址的理解
服务器·网络
—Qeyser2 小时前
Flutter网络请求Dio封装实战
网络·flutter·php·xcode·android-studio
馨谙3 小时前
OpenSSH 安全配置核心概念解析
linux·服务器·网络
烧冻鸡翅QAQ3 小时前
HTTP 1.0版本的webserver自主实现
网络·网络协议·http
开开心心就好3 小时前
Word转PDF工具,免费生成图片型文档
前端·网络·笔记·pdf·word·powerpoint·excel
qq_479875435 小时前
网络管理中的名词
网络