当前位置: 首页 > news >正文

第五篇:HTTPS 与 TLS/SSL 握手原理

前言

        HTTPS(HTTP over TLS/SSL)是在 HTTP 之上通过 TLS/SSL 实现加密、认证和完整性保护的安全传输协议。理解 HTTPS 握手过程和底层加密原理,有助于排查性能、安全问题以及正确配置证书。


一、TLS/SSL 协议演进

  1. SSL 1.0、2.0、3.0(已淘汰)

    • SSL 1.0 未公开,2.0 存在多重安全缺陷,3.0 在 1996 年发布并成为后续 TLS 的基础。

  2. TLS 1.0 (1999)

    • 基于 SSL 3.0,改进了消息认证和加密算法。

  3. TLS 1.1 (2006)

    • 增加对 CBC 模式的 IV 随机化,抵御重放攻击。

  4. TLS 1.2 (2008)

    • 支持 SHA-256、AEAD (GCM) 模式,允许协商更强加密套件。

  5. TLS 1.3 (2018)

    • 精简握手流程(1-RTT 或 0-RTT)、废弃旧加密套件、内置前向保密 (PFS)。

二、公钥基础设施 (PKI) 与证书链验证

  1. 根证书 (Root CA)

    • 由受信任的根证书颁发机构签发并预装在操作系统或浏览器中。

  2. 中间证书 (Intermediate CA)

    • 根 CA 签发给中间 CA,用于签发终端证书,减少根密钥暴露风险。

  3. 服务器证书 (Leaf Certificate)

    • 用于具体域名的身份验证,包含域名、公钥、有效期等。

  4. 证书链验证

    • 客户端通过根证书验证中间证书,再通过中间证书验证服务器证书,完成信任路径。

三、TLS 全量握手流程 (Full Handshake)

        下文详细描述 HTTPS 握手的各个步骤和对应报文内容,以帮助理解加密协商和认证过程: (Full Handshake)

  1. ClientHello

    • 包含版本、随机数 (ClientRandom)、支持的加密套件列表、扩展(如 SNI、ALPN)。

  2. ServerHello

    • 服务器选择加密套件、返回版本、随机数 (ServerRandom)、扩展。

  3. 证书 (Certificate)

    • 服务器发送自身证书链,客户端验证证书合法性。

  4. ServerKeyExchange (可选)

    • 对于 DHE、ECDHE 等密钥交换算法,服务器发送参数或公钥。

  5. CertificateRequest (可选)

    • 双向 TLS 时,服务器请求客户端证书。

  6. ServerHelloDone

    • 服务器结束握手消息。

  7. ClientKeyExchange

    • 客户端生成 Pre-Master Secret,用服务器公钥加密并发送。

  8. ChangeCipherSpec / Finished

    • 双方切换到加密模式,互换 Finished 报文,验证握手消息完整性。

  9. 加密数据传输

    • 后续所有应用数据均在此加密信道内传输。

四、会话恢复与 0-RTT

  1. 会话 ID (Session ID)

    • 客户端缓存服务器返回的 Session ID,可用于后续连接复用。

  2. 会话票据 (Session Ticket, RFC 5077)

    • 无状态恢复,会话票据由服务器签名,客户端保存,恢复时发送票据。

  3. 0-RTT (TLS 1.3)

    • 客户端使用之前会话密钥,在握手前发送加密应用数据,实现零往返延迟启动。

    • 需注意重放风险,适用于幂等请求。

五、小结与优化建议

  • 启用 TLS 1.3:减少时延、提高安全性。

  • 使用 ECDHE+AEAD:保证前向保密和高效加密。

  • 启用 Session Resume:使用 Session Ticket 和 0-RTT 提升性能。

  • 合理配置 SNI 和 ALPN:支持多域名与 HTTP/2+。

相关文章:

  • 前端面经 两栏布局
  • 逆向入门(1)
  • DFS每日刷题
  • Mac电脑上本地安装 redis并配置开启自启完整流程
  • pikachu通关教程-CSRF
  • 使用langchain实现五种分块策略:语义分块、父文档分块、递归分块、特殊格式、固定长度分块
  • 【论文阅读 | PR 2024 |ICAFusion:迭代交叉注意力引导的多光谱目标检测特征融合】
  • 一天搞懂深度学习--李宏毅教程笔记
  • 财管8-企业价值评估
  • 【位运算】两整数之和(medium)
  • 过滤攻击-聚合数据
  • Spring Boot 全局配置文件优先级
  • “人单酬“理念:财税行业的自我驱动革命
  • CCPC dongbei 2025 F
  • 神经网络-Day42
  • 针对 Harmony-Cordova 性能优化,涵盖原生插件开发、线程管理和资源加载等关键场景
  • Codeforces Round 1028 (Div. 2)(ABC)
  • MMRL: Multi-Modal Representation Learning for Vision-Language Models(多模态表示学习)
  • 【MFC】初识MFC
  • Redis缓存落地总结
  • 企业网站服务器建设/百度网址大全
  • html制作静态网站模板/最新seo视频教程
  • asp.net做的网站/怎么知道自己的域名
  • 高端企业站/成都做网络推广的公司有哪些
  • 广州中国建设银行网站首页/3a汽车集团公司网络营销方案
  • 奉贤区做网站/关键词抓取工具都有哪些