章节摘要:本章跟着"算法如何长成协议"这条线走:TLS 把 ECDHE、证书、AEAD、哈希装进一次握手,SSL 到 TLS 1.3 的每一步版本更替都由真实攻击推动;证书链把"公钥属于谁"钉死在信任树上;PGP、磁盘加密与区块链则示范同一套零件在不同场景的组装方式。全书前五章的零件,在本章全部同台。
这一章的主线:协议不是算法的清单,是算法之间的次序与责任划分——次序错了,算法再强也会被组合出漏洞。
浏览器地址栏那一把小锁,是密码学史上部署规模最大的工程制品。它每秒在全球完成上千万次这样的演出:客户端递出 ECDHE 临时公钥,服务器以证书背书自己的长期身份并回敬自己的临时公钥,双方各自算出同一把会话密钥,随即切到 AES-GCM 或 ChaCha20-Poly1305 跑数据。四步之内,第 3 章的对称密码、第 4 章的密钥协商与签名、第 5 章的哈希全部上场,并且各就各位——谁做认证、谁做加密、谁先谁后、密钥何时销毁,全部写死在协议里,不给实现者任何发挥空间。
这套次序是用事故换来的。SSL 3.0 时代允许 RSA 静态密钥交换,历史会话在长期私钥泄露后回溯可解(无前向安全);MAC-then-Encrypt 的组装次序留下时序裂缝,2013 年的 Lucky13 攻击照着填充耗时恢复明文;CBC 模式的填充预言机、RC4 的输出偏差,让 TLS 1.2 之前的标准里几乎每个部件都挨过一枪。2018 年定稿的 TLS 1.3 做的是减法:删掉静态 RSA 与全部 CBC、RC4 套件,只留 AEAD 与临时密钥协商,握手从两轮压到一轮——把本书讲过的每一课直接写进协议禁区清单。
握手解决了"两台机器之间",剩下的工程问题是"公钥的归属"(证书与信任链)、"平台之外的保密"(PGP 与磁盘加密)与"密码学的新舞台"(区块链与零知识证明)。三条线共享同一批零件,组装方式各异。
本章的认知转折在 6.1:密码学事故的根因排序中,组合次序与协议状态机排在算法强度之前。Heartbleed 是实现层的心跳包越界,BEAST/Lucky13 是次序与模式的裂缝,DROWN 是新旧协议混搭的回声——没有一个是因为 AES 或 SHA-256 被攻破。工程者的重心因此要放在协议裁剪、版本禁用与实现审计上。
最终落点是一份"组装铁律":认证先行(没有认证的协商等于给中间人开门)、加密认证合一(AEAD 优先,退而求其次先加密后 MAC)、密钥短命(会话密钥用完即弃,长期密钥只做背书)。第七章的量子迁移将检验这份铁律——后量子算法替换的正是铁律里的第一块砖。
铁律已立,但第 7 章要掀桌:量子计算威胁的不是 AES,而是支撑认证与协商的 RSA 与 ECC——铁律的第一块砖。后量子迁移如何在不推翻铁律的前提下换砖,是全书的最后一站。