HTTPS的工作原理

文章目录

  • HTTP有什么问题?
    • [1. 明文传输,容易被窃听](#1. 明文传输,容易被窃听)
    • [2. 无法验证通信方身份](#2. 无法验证通信方身份)
    • [3. 数据完整性无法保证](#3. 数据完整性无法保证)
  • HTTPS是如何解决这些问题的?
  • HTTPS的工作原理
    • [1. SSL/TLS握手](#1. SSL/TLS握手)
    • [2. 数据加密传输](#2. 数据加密传输)
    • [3. 完整性保护](#3. 完整性保护)
    • [4. 连接关闭](#4. 连接关闭)
  • 总结

HTTP有什么问题?

1. 明文传输,容易被窃听

HTTP传输的数据都是明文,就像在大街上裸奔一样。任何人在网络路径上都能看到你传输的内容。

2. 无法验证通信方身份

HTTP无法确认你访问的网站是不是真的。黑客可以很容易地伪造一个假的银行网站,你根本分不清真假。

3. 数据完整性无法保证

HTTP传输过程中,数据可能被篡改,而你完全不知道。比如你下载一个软件,结果被中间人植入了病毒。

HTTPS是如何解决这些问题的?

HTTPS = HTTP + TLS/SSL,它通过三个核心机制解决了HTTP的安全问题:

  1. 加密:数据传输过程中被加密,即使被截获也无法读取
  2. 认证:通过数字证书验证服务器身份
  3. 完整性校验:确保数据在传输过程中没有被篡改

HTTPS的工作原理

HTTPS的工作流程可以分为以下几个步骤:

1. SSL/TLS握手

当客户端访问一个HTTPS网站时,会触发SSL/TLS握手过程,以建立安全连接:

  1. 客户端Hello:

客户端向服务器发送支持的TLS版本、加密算法和随机数。

  1. 服务器Hello:

服务器回应支持的TLS版本、选择的加密算法、服务器证书(包含公钥)以及服务器生成的随机数。

  1. 证书验证:

客户端验证服务器证书的有效性(由受信任的证书颁发机构CA签发,检查是否过期、域名匹配等)。

  1. 密钥交换:

客户端生成一个会话密钥(用于对称加密),用服务器的公钥加密后发送给服务器。

服务器用私钥解密,获取会话密钥。

  1. 握手完成:

双方共享会话密钥,握手结束,进入加密通信阶段。

2. 数据加密传输

使用对称加密(如AES)对实际传输的数据(如网页内容、表单数据)进行加密。

对称加密速度快,适合大量数据传输,而非对称加密(如RSA)仅用于握手阶段的密钥交换。

数据通过会话密钥加密后传输,第三方无法解密。

3. 完整性保护

TLS使用消息摘要算法,确保数据在传输过程中未被篡改。

4. 连接关闭

数据传输完成后,双方可以通过发送关闭通知来安全终止连接。

总结

HTTPS通过SSL/TLS协议,在HTTP基础上添加了加密、身份验证和数据完整性保护。其核心是握手建立安全通道,使用非对称加密交换会话密钥,再用对称加密传输数据,确保通信安全。

相关推荐
小邓的技术笔记1 天前
解析 gin 接收到 http 请求是怎么处理的
网络协议·http·gin
TlSfoward1 天前
TLSFOWARD抓包工具 TLS指纹
网络协议·http·百度·https
利来利往1 天前
如果你的电脑可以ping ip无法ping域名
网络·网络协议·tcp/ip
lupai1 天前
赛符 SSL 证书全场景部署与信任价值构建指南
网络·网络协议·ssl
CHANG_THE_WORLD1 天前
TCP 四次挥手彻底解析:FIN、ACK、SEQ、半关闭与 TIME-WAIT
网络·网络协议·tcp/ip
测试员周周2 天前
【skills5】一份 spec 生成 k6/JMeter/Locust:性能压测 + 全站截图,上线前的双保险
功能测试·网络协议·测试工具·jmeter·http·自动化·集成测试
酣大智2 天前
常用 IP 协议号大全(IP 层承载的上层协议)
网络·网络协议·tcp/ip
paopaokaka_luck2 天前
基于Springboot3+vue3的旅游景区点评系统(AI审核、webSocket聊天、协同过滤算法、Echarts图形化分析)
websocket·网络协议·旅游
熬夜苦读学习2 天前
基于websocket的多用户五子棋网页游戏
linux·服务器·网络·websocket·网络协议·游戏·五子棋
广州灵眸科技有限公司2 天前
xfce桌面旋转说明:基于灵眸科技EASY-EAI-Nano-TB
网络·网络协议·tcp/ip·算法·php