HTTPS 通信流程

HTTPS 通信流程时序图:
客户端 SSL管理器 证书验证器 证书链构建器 信任存储 吊销检查器 服务器 TLS 1.3 握手开始 ClientHello 支持的TLS版本: 1.0-1.3 加密套件(如 TLS_AES_256_GCM_SHA384) 客户端随机数(32字节) 支持的椭圆曲线(如 X25519, P-256) ServerHello 选择TLS版本: 1.3 选择加密套件 服务器随机数(32字节) 选择椭圆曲线 发送服务器证书(X.509 v3) ServerKeyExchange (ECDHE参数) ServerHelloDone 请求验证证书 解析X.509证书 验证签名算法(RSA-2048/ECDSA) 构建证书链 查询根证书 返回信任锚 验证证书链完整性 验证签名(SHA-256 with RSA) 返回证书链验证结果 验证证书有效期 验证域名(CN/SAN) 验证密钥用途和扩展 检查证书吊销状态 OCSP检查(HTTP) CRL检查 返回吊销状态 返回验证失败 显示证书错误 终止连接 返回验证成功 证书验证通过 ECDHE密钥交换 生成ECDHE私钥 ClientKeyExchange ECDHE公钥 使用HKDF-SHA256密钥导出 计算共享密钥(ECDHE) 导出会话密钥 计算共享密钥(ECDHE) 导出会话密钥 ChangeCipherSpec Finished(AEAD加密) ChangeCipherSpec Finished(AEAD加密) 对称加密通信(AES-256-GCM) 应用数据(AEAD加密) 应用数据(AEAD加密) alt [验证失败] [验证成功] 客户端 SSL管理器 证书验证器 证书链构建器 信任存储 吊销检查器 服务器

这个详细的时序图展示了 HTTPS 通信的完整流程,重点包含以下几个方面:

  1. 客户端发起请求

    • 客户端向服务器发送HTTPS请求,连接到服务器的443端口。
  2. 服务器发送证书

    • 服务器将其数字证书发送给客户端。该证书包含服务器的公钥、证书颁发机构(CA)的签名等信息。
  3. 客户端验证证书

    • 客户端验证证书的有效性,包括证书链验证、有效期检查和域名匹配等。
  4. 密钥交换

    • 客户端生成一个预主密钥(Pre-Master Secret),使用服务器的公钥加密后发送给服务器。
    • 服务器使用其私钥解密,得到预主密钥。
  5. 生成会话密钥

    • 客户端和服务器使用预主密钥、客户端随机数和服务器随机数,通过伪随机函数(PRF)计算得到主密钥(Master Secret)。
    • 主密钥用于生成对称加密的会话密钥。
  6. 加密通信

    • 客户端和服务器使用协商的对称加密算法和会话密钥进行加密通信。

在上述过程中,常用的加密算法包括:

  • 非对称加密算法

    • RSA:用于密钥交换和身份验证。
  • 对称加密算法

    • AES:用于数据加密。
  • 哈希算法

    • SHA-256:用于消息摘要和完整性校验。
相关推荐
z人间防沉迷k1 小时前
HTTP/3展望、我应该迁移到HTTP/2吗
网络·笔记·网络协议·http·https
UFIT9 小时前
Nginx安全防护与HTTPS部署实战
nginx·安全·https
付出不多1 天前
Nginx安全防护与HTTPS部署
nginx·安全·https
2501_916013742 天前
从一次被抄袭经历谈起:iOS App 安全保护实战
websocket·网络协议·tcp/ip·http·网络安全·https·udp
网安小张2 天前
IP SSL证书常见问题助您快速实现HTTPS加密
tcp/ip·https·ssl
步、步、为营2 天前
.NET中使用HTTPS全解析
数据库·https·.net
00后程序员张2 天前
做 iOS 调试时,我尝试了 5 款抓包工具
websocket·网络协议·tcp/ip·http·网络安全·https·udp
猴子请来的逗比4892 天前
http重新为https
网络协议·学习·http·https
2501_915106322 天前
开发者如何优雅应对HTTPS抓包难题
websocket·网络协议·tcp/ip·http·网络安全·https·udp
爪哇小白20212 天前
MinIO实现https访问
网络协议·http·https