type
status
date
slug
summary
tags
category
icon
password

🔐 TLS 通信过程简述(以 HTTPS 为例):

TLS 主要用于在客户端(浏览器)和服务器(网站)之间建立加密通信通道,防止窃听、中间人攻击和数据篡改。

🔄 1. 客户端 Hello(Client Hello)

  • 客户端发起请求,发送:
    • 支持的 TLS 协议版本
    • 支持的 加密算法(Cipher Suites)
    • 一个 随机数(Client Random)
    • 其他可选信息(如支持的扩展功能)

🔄 2. 服务器 Hello(Server Hello)

服务器响应,并发送:
  • 协商选定的:
    • TLS 版本
    • 加密算法
  • 自己的 随机数(Server Random)
  • 自己的 数字证书(含公钥,用于身份验证)
  • 如果使用 Diffie-Hellman,还会发送 DH 公钥参数

🔍 3. 证书验证(由客户端完成)

客户端用内置的 根证书(CA) 验证服务器证书是否合法(颁发者、域名、有效期等)。
  • 如果验证失败,则中断通信。

🔑 4. 生成对称加密密钥(Master Secret)

根据密钥交换算法的不同,客户端会:

如果使用 RSA 密钥交换

  • 客户端生成一个 预主密钥(Pre-Master Secret)
  • 用服务器公钥加密后发送

如果使用 Diffie-Hellman(DHE 或 ECDHE)

  • 客户端和服务器互相交换 DH 公钥
  • 双方使用自己的私钥 + 对方公钥计算出同一个 Pre-Master Secret
Diffie-Hellman
  • 公开颜色(g):黄色
    • → 所有人都知道的基础颜色
  • 双方选私密颜色(a、b):红色 / 蓝色
    • → 自己秘密的“私钥”
  • 混合生成公开色(公钥 A、B):橙色 / 青色
    • → 黄色 + 私密颜色,作为公钥发送给对方
  • 交换公钥后,各自再加一次自己的私密色
    • → Alice:青色 + 红色
      → Bob:橙色 + 蓝色
  • 双方最终得到相同的“共享颜色”
    • → 这就是 共享密钥,外人无法得知
  • 攻击者(Eve)只能看到黄色、橙色、青色
    • 看不到红色或蓝色 → 无法算出最终的密钥

🔐 5. 生成 Master Secret & Session Key(共享密钥)

  • 客户端和服务器使用:
    • Pre-Master Secret
    • Client Random
    • Server Random
  • 通过一个函数(Pseudo-Random Function, PRF)计算出:
    • Master Secret
    • 从中进一步派生出:
      • 会话密钥(Session Keys) → 用于实际数据的加解密(对称加密)

🔒 6. Finished 报文(加密验证阶段)

  • 双方用新生成的 Session Key 对通信内容加密,并互相发送“Finished”消息,表示后续通信将采用加密方式。
  • 从这一刻起,通信内容是 加密的

✅ 成功建立 TLS 连接后:

客户端和服务器开始用对称加密(AES 等)加密的数据进行通信。TLS 层还负责:
  • 数据完整性校验(防篡改)
  • 数据机密性保护(防窃听)

总结流程图(简洁版):


notion image
 
03-平成26年秋期 午後問1平成25年秋期 午後問8
Loading...
minami
minami
一个普通的干饭人🍚
Announcement

🎉 ブログへようこそ 🎉

notion image
名前:みなみ独立事務所
性別:男
国籍:China
完全独学だけで基本情報をはじめ31個の資格を仕事をしながら合格。 現在はIT会社の技術担当や、ブログの執筆や学習支援などを手掛けています。 独学で合格できる学習法、勉強法、試験対策を配信します!

📚 主な内容

💻 IT・システム開発
🏠 不動産 × 宅建士
🎓 MBA 学習記録

🔍 コンテンツの探し方

現在、サイトのデザインはシンプルなため、情報がやや探しにくいかもしれません。
気になるテーマを探す際は、タグ検索の利用をおすすめします。