章节摘要:推演开始前先认场地和道具。本章回答三个入口问题:密码协议到底"是"什么——为什么它是一份写给敌手看的信任论证;机密性、完整性、认证性这三大安全属性各自防什么、被攻破时长什么样;对称加密、非对称加密、哈希这三块积木各自的脾气,以及拼协议时最常见的错拼方式。读完你能把任何一份协议描述拆成"角色、消息、目标、假设"四要素,并为它配上正确的敌手预期。
读完本章,你应当能够:
如果只能带一句话出本章,我选这句:协议是角色之间按规则交换消息的对话,而密码协议的特殊性在于——这场对话有一名看不见的听众,敌手,他不在角色表里,却决定了一切设计。
这张图的完整展开在第 1 节:四要素里最容易被含糊带过的是信任假设,而绝大多数真实事故的根子恰恰埋在那里——假设了有可信第三方,却没问第三方被攻破怎么办;假设了时钟同步,却没问时钟回拨会怎么样。三个安全属性的攻防含义在第 2 节逐个过,三块积木在第 3 节拆。

三节是一条从抽象到具体的认知阶梯:先建立"协议是对话、敌手在场"的世界观(1.1),再用三个属性把"安全"这个词拆成可判断的谓词(1.2),最后落到能动手的积木层面(1.3)。顺序不能倒:没有 1.1 的四要素,1.2 的属性就挂不到具体消息上;没有 1.2 的谓词,1.3 的积木就不知道为什么这么拼。
世界观(1.1) ──提供挂载点──> 属性谓词(1.2) ──提供判据──> 积木拼装(1.3) │ │ │ 拆协议四要素 判断输赢的标准 动手搭与查错
读三节之前先收下这张表,读的时候拿它对号入座——分析协议时最高频的动作就是问"这个字段动用了哪块积木、被放在哪一层"。
| 积木 | 典型位置 | 开销量级 | 最常见的误用 |
|---|---|---|---|
| 对称加密 | 记录层批量加密应用数据 | 硬件加速后近乎免费 | 加密模式选错、密钥跨场景复用 |
| 密钥交换 | 握手层协商会话密钥 | 每次握手毫秒级到几十毫秒 | 拿静态密钥直接加密、无前向保密 |
| 哈希 | 密钥派生、转录锁定、完整性 | 极快 | 当加密用、无密钥校验防篡改 |
| 签名 | 身份认证(证书、转录签名) | 全场最贵,握手一次 | 签名对象不含会话上下文 |
末列就是 1.3 节的主角:三类错拼不是理论洁癖,每一种都能指认真实的失守案例——第 3 章会看到各自的案发现场。这张表也顺手回答一个评审高频问题:"为什么不全用非对称加密?"开销量级那一列就是答案,1.3 节会把它升格成一条工程铁律。
前置只需要两样:模运算的直觉(第 1.3 节开头会用三行补齐)和"抓包"这个动作的印象(不需要真的抓过)。学有余力可以先翻第 2 章的敌手能力表,回来再看本章会更有味道——你会发现四要素里的每一条,都是在给敌手的能力划边界。往后走,本章的四要素拆解法将贯穿全册:第 3 章的名案全是四要素中某一条被击穿,第 5 章的机器建模本质上是把四要素写成形式语言。