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:用于消息摘要和完整性校验。
相关推荐
szephyr3 小时前
HTTPS 证书申请与自动续期:acme.sh + Let‘s Encrypt 完整记录
nginx·https·acme.sh·证书续期
Lsetea11 小时前
部署证书后提示“证书名称与输入不匹配”:Safari 报错的三层排查
nginx·https·safari·ssl证书·openssl
其实防守也摸鱼1 天前
DeepSeek Harness 开源贡献手记:从入门到合入主线
服务器·数据库·windows·https·ssl
Lsetea1 天前
OpenSSL快速生成域名证书:含SAN的自签命令、验证与排错
nginx·https·ssl证书·openssl·自签证书
2501_916008891 天前
SSE 和 gRPC 流式接口如何抓包,调试 SSE 与 gRPC 流式接口
网络协议·计算机网络·网络安全·ios·adb·https·udp
其实防守也摸鱼1 天前
堆叠注入(Stacked Injection)详解
服务器·数据库·windows·https·ssl
2501_915909063 天前
怎么用 FlutterFlow 把应用发布到 App Store?
android·ios·小程序·https·uni-app·iphone·webview
2501_916008894 天前
全平台抓包工具,Windows、iPhone、Linux三个平台抓包测试
网络协议·计算机网络·网络安全·ios·adb·https·udp
szephyr4 天前
Nginx 反向代理实战:从 502、跨域到 HTTPS,一次打通
运维·nginx·https·部署·反向代理
2501_915918414 天前
怎么把 Python 写的 Flet 应用打包成 iOS App 并上架 App Store?
android·ios·小程序·https·uni-app·iphone·webview