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 已经发送了一组握手数据来建立通信连接了。

相关推荐
七七powerful14 小时前
AI+运维提效--HTTPS 证书有效期监控方案
网络协议·http·https
楼田莉子14 小时前
Linux网络:数据链路层
linux·服务器·开发语言·网络·c++·后端
环流_14 小时前
IP协议特性
网络·tcp/ip·智能路由器
其实防守也摸鱼14 小时前
CTF密码学综合教学指南--第二章
开发语言·网络·python·安全·网络安全·密码学·ctf
22信通小白14 小时前
北邮现代通信技术实验——网络基础综合实验
网络
艾莉丝努力练剑14 小时前
【Linux网络】Linux 网络编程入门:UDP Socket 编程(上)
linux·运维·服务器·网络·c++·udp
X54先生(人文科技)14 小时前
《元创力》纪实录·桥段薪火三纪
网络·人工智能·开源·ai写作·零知识证明
计算机安禾14 小时前
【Linux从入门到精通】第44篇:Linux网络协议栈与TCP参数调优
linux·网络协议·tcp/ip
学不会pwn不改名14 小时前
【ArchLinux】如何制服国产免驱网卡
linux·运维·网络