TLS Companion

简体中文

TLS Companion 中文笔记

逐包理解 TLS、HTTPS、PKI、QUIC、ECH、后量子密钥交换与 Go crypto/tls 实现。

打开交互式工作台

  1. 00TLS 系列 · 总览与学习路线

    范围:从明文 HTTP 到 HTTPS,从 TCP 三次握手到 TLS 1.3 的密钥调度,从证书和 PKI 到 ECH、QUIC 和后量子密钥交换,再到各大厂的工程实践和整个 Web 推广 HTTPS 的治理过程。 标准基线:TLS 1.3 以 RFC 8446 及其 2026-07 发布的修订版 RFC…

  2. T01T01 · 从 HTTP 到 HTTPS:一次请求的全景

    这一篇不讲任何一条握手消息的细节,先把整件事的轮廓铺开:明文 HTTP 到底漏在哪,TLS 插在协议栈的哪一层、为什么插在那里,在地址栏敲一个地址回车之后到屏幕上出现第一个字节之间,网络上按什么顺序发生了什么,每种协议组合要花几个往返。后面每一篇都是在放大这张全景图里的某一块,先有这张图,后面才不会迷路。

  3. T02T02 · 密码学基础:TLS 用到的每一种算法

    TLS 要在不安全的网络上同时做到机密性、完整性和身份认证,它手里的工具不多,也就十来种密码学原语,但每一种都有明确的分工。这一篇按"它解决什么问题、数学上为什么成立、TLS 里用在哪、历史上在哪摔过跟头"的顺序把它们过一遍。文中的小数字例子都用程序验算过,真实参数的规模另外标出。后量子算法单独放在 T10 。

  4. T03T03 · 证书与 PKI:信任从哪里来

    T02 讲了签名:用私钥签、用公钥验。可签名只证明"这段数据出自某把私钥",并没有回答一个更根本的问题:这把公钥是谁的?TLS 握手里服务器会发来一把公钥,并用对应私钥签名证明它持有私钥,但如果攻击者拦在中间,换成自己的公钥和自己的签名,客户端照样验证通过,只是验证的对象变成了攻击者。证书和…

  5. T04T04 · 从 SSL 到 TLS 1.3:协议演进与攻击史

    TLS 1.3 看上去简洁得近乎理所当然:只有五个密码套件,全部是 AEAD;只有临时密钥交换;握手一个往返;ServerHello…

  6. T05T05 · TCP 三次握手与 TLS 1.2 握手逐包拆解

    HTTPS 连接的第一个往返属于 TCP,接下来的两个往返属于 TLS 1.2。这一篇把这三个往返里的每一个包都拆开:TCP 段头的字段和三次握手的状态变化,TLS 记录层的格式,TLS 1.2 完整握手的每一条消息和每一个字段,以及会话密钥怎样从握手里一步步推导出来。TLS 1.2 虽然正在被 1.3…

  7. T06T06 · TLS 1.3 握手与密钥调度逐包拆解

    这是整个系列最核心的一篇。TLS 1.3 用一个往返完成密钥交换和服务器认证,ServerHello 之后的一切都加密,所有密钥由一棵 HKDF…

  8. T07T07 · 会话恢复、0-RTT 与握手性能优化

    T01 算过往返账:一次全新的 TCP 加 TLS 1.3 连接,要两个往返才能发出第一个 HTTP 请求。这一篇讲怎么把这些往返和字节一个个省下来:会话恢复跳过证书和签名,0-RTT 让请求和握手一起出发,False Start 和 TCP Fast Open 从不同的位置抢时间,证书压缩和 ECDSA…

  9. T08T08 · ECH 与 HTTPS 记录:握手里的隐私

    TLS 1.3 把证书和大部分握手消息加密了,但 ClientHello 仍然是明文,而 ClientHello 里写着你要访问的域名。这一篇先盘点 TLS 1.3 握手里还剩哪些明文,再讲 SNI 为什么必须存在、为什么一直是明文,然后讲 ECH(Encrypted Client…

  10. T09T09 · QUIC 与 HTTP/3:把 TLS 放进传输层

    前面几篇里,TLS 一直坐在 TCP 上面,两次握手叠在一起,T01 的往返账里 TCP 那一个往返怎么也省不掉。QUIC 换了一种思路:在 UDP 上重新实现一个传输协议,让它从第一个包起就和 TLS 1.3 的握手合在一起。这一篇讲 QUIC 为什么要这样做,它怎么借用 TLS 1.3 的握手却不用 TLS…

  11. T10T10 · 后量子 TLS:ML-KEM 混合密钥交换与 Merkle Tree Certificates

    2026 年,你的浏览器和手机和大多数大网站之间的 TLS 握手,已经在用一种为对抗量子计算机设计的密钥交换。T06 的真实抓取里,OpenSSL 4.0.3 和 Cloudflare 协商出的群就是 X25519MLKEM768。这一篇讲清楚四件事:量子计算机到底威胁 TLS…

  12. T11T11 · 各大厂的 TLS 工程实践

    前面十篇讲的机制,几乎每一项背后都站着一家或几家公司:QUIC 来自 Google,ECH 的推动者是 Cloudflare 和 Mozilla,0-RTT 最早在 Facebook 和 Cloudflare 的规模下被验证,证书寿命缩短的那一刀是 Apple 先砍下去的。TLS 的标准是在 IETF…

  13. T12T12 · HTTPS 推广与信任治理

    协议再好,没有人用也没有意义。2014 年前后,Web 上的大部分页面还是明文 HTTP 加载的;到 2026 年,Chrome 准备把 HTTPS 变成默认、把 HTTP…

  14. T13T13 · 动手实验:用 openssl 与 curl 观察握手

    前面十二篇讲的东西,几乎都能在自己的电脑上亲眼看到。这一篇是一组实验:每个实验给出目的、命令、实际输出(删掉了与主题无关的行),然后逐行解释,并指回讲原理的那一篇。所有实验只连接公开的网站,只观察自己发起的连接。

  15. T99T99 · 术语表与标准索引

    状态列:PS 为 Proposed Standard,Info 为 Informational,Exp 为 Experimental,BCP 为最佳实践,Hist 为 Historic,草案为尚未发布的 Internet-Draft。