摘要
- RFC 5296 把 EAP 重认证压缩成一次往返,但服务器接纳请求、对等端验证 Finish、AAA 把 rMSK 送到认证器,以及低层建立 TSK 仍是不同状态。
- 回执必须把序列窗口、计数器提交、目标认证器、密钥安装和最终接入结果逐项连接,而不能用“ERP 成功”覆盖整条链。
一次往返并不是一次原子提交
ERP 让仍持有有效重认证材料的对等端在移动到新认证器时避免完整 EAP 方法交换。EAP-Initiate/Re-auth 经认证器送往 ER 服务器,EAP-Finish/Re-auth 在同一往返中返回。服务器可以位于归属域,也可以位于本地域。
但参与者没有减少:认证器转发 ERP 消息;服务器验证 rIK 持有证明与新鲜度;AAA 携带面向特定认证器的 rMSK;对等端自行派生同一密钥;低层协议再用它建立会话密钥并执行接入控制。
“一次往返”描述时延,不描述事务原子性。
服务器首先消耗的是序列状态
Initiate 包含 16 位 SEQ、一个 keyName-NAI、密码套件和认证标签。新 rRK 会把 SEQ 初始化为零。服务器检查数值是否符合期望,或者是否位于尚未使用的允许窗口内,然后验证套件与消息完整性。
通过后,服务器把 rRK、固定标签、SEQ 与长度输入 KDF,产生 rMSK。Finish 回送相同 SEQ,服务器同时把本地期望值加一或更新窗口。如果 Finish 或 AAA 消息随后丢失,服务器的状态变化不会因此自动撤销。
证据必须记录接纳前期望值、窗口边界、该值是否已用、判定、提交时间和接纳后状态。只保存报文无法证明数据库中的序列提交。
Identifier 与 SEQ 解决不同问题
对等端负责重传定时器。超时重传必须保留同一个 EAP Identifier;新的 Initiate 必须使用不同 Identifier,尤其当前一个交换仍未结束时。Finish 的 Identifier 必须匹配仍在等待的 Initiate。
Identifier 关联一次未完成交换,SEQ 负责防重放并参与 rMSK 派生。把二者压缩成单一 request ID,会让同一重传被计算成第二次授权,也可能把新事务误判成旧报文。
规范建议认证器在 300 秒后清理重认证状态。这个本地超时不证明服务器窗口、对等端等待状态和已安装密钥同时消失。
受保护 Finish 证明的范围有限
对等端先确认自己在该 keyName-NAI 下等待所返回的 SEQ,再验证 Finish 完整性。验证通过后,它派生 rMSK。此时低层安全关联协议只是“可以启动”。
这条边界十分关键。Finish 能证明持有相应 rIK 的服务器在预期坐标上给出了响应,却不能证明 AAA 已把 rMSK 交给正确认证器、认证器已安装同一代际、双方建立了 TSK,更不能证明数据包接入已经生效。
因此要分别记录 Finish 生成和验证、AAA 发送和接收、安装确认、低层开始、低层完成与接入判定。
每个 rMSK 只属于一个认证器
rMSK 的用途类似完整 EAP 后的 MSK,但同一个 rMSK 不得在多个认证器之间共享,寿命也不得超过 rRK。生成新 rRK 后,后续 rMSK 必须来自新根;已经交付的旧 rMSK 可以继续使用到到期。
新根出现并不是全网切换证明。必须按认证器维护接收、安装、使用与退役清单。
在 bootstrap 场景中,这个差异更明显:若低层已经用旧 MSK 建立 TSK,它可以忽略新收到的 rMSK,也可以启动新的 TSK 交换。两者都可能符合规范。收到不等于使用。
并发把“下一个值”变成窗口
对等端可以通过多个认证器同时向同一 ER 服务器运行 ERP,消息可能乱序到达。服务器可以接受一个窗口内尚未使用的多个 SEQ,窗口维护方式由本地实现决定。
SEQ 本身不足以重演判定。证据还要保存窗口代际、上下界、已消费集合、经过哪个认证器,以及当时的策略版本。否则合法乱序与重放无法区分。
窗口宽度变化也应单独告警,因为它在密钥与报文格式不变时改变接纳面。
无法验证的失败保留两种解释
服务器处理失败时发送失败 Finish。持有有效 rIK 时必须保护它;若套件不可接受,可以列出可接受套件。对等端验证后可换套件重试,PRF 变化时还要重新派生相关根和 rIK。
若重放或完整性检查失败,该失败可能由攻击者伪造,也可能表示双方没有共同套件。对等端无法仅凭此消息判断,所以应继续按重传定时器运行,再宣布失败。
运营告警必须保留这种不确定性。把“无法验证”直接翻译成“已遭攻击”,就是把观察边界误写成归因。
新版要求当前仍持有根材料
RFC 6696 在保持向后兼容的同时取代 RFC 5296,并明确隐式 bootstrap 中的认证器或本地 ER 服务器必须检查自己当前拥有有效的对应根材料。缓存里有身份和旧上下文不够。
这项检查只授权其进入下一步,仍不证明 rMSK 已安装或接入完成。根代际必须沿 SEQ、目标认证器和低层结果贯穿下去。
完整回执
记录 rRK 名称、代际和到期;keyName-NAI 与域;Identifier;SEQ;窗口和已用状态;套件;Initiate 完整性判定;服务器接纳与计数器变更;rMSK 代际及单认证器绑定;Finish 结果、Identifier 与 SEQ;AAA 事务和目标;认证器接收及安装确认;对等端验证和派生;低层实际选择的 MSK/rMSK;TSK 开始与结果;接入结果;回退到完整 EAP;重传;channel binding 输入与判定。
回执绝不记录秘密。它证明每一层什么时候真正提交。
Sources
- https://www.rfc-editor.org/rfc/rfc5296.html
- https://www.rfc-editor.org/rfc/rfc5296.txt
- https://www.rfc-editor.org/info/rfc5296/
- https://datatracker.ietf.org/doc/rfc5296/
- https://datatracker.ietf.org/doc/rfc5296/history/
- https://datatracker.ietf.org/doc/rfc5296/references/
- https://datatracker.ietf.org/doc/rfc5296/referencedby/
- https://www.rfc-editor.org/errata/rfc5296
- https://www.rfc-editor.org/rfc/rfc6696.html
- https://www.rfc-editor.org/info/rfc6696/
- https://www.rfc-editor.org/rfc/rfc5295.html
- https://www.rfc-editor.org/rfc/rfc3748.html
- https://www.rfc-editor.org/rfc/rfc5247.html
- https://www.rfc-editor.org/rfc/rfc4962.html
- https://www.rfc-editor.org/rfc/rfc2865.html
- https://www.rfc-editor.org/rfc/rfc3579.html
- https://www.rfc-editor.org/rfc/rfc5080.html
- https://www.rfc-editor.org/rfc/rfc7542.html
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
- https://heng.lu/on-reality-layers-symbolic-power-and-why-clarity-feels-so-hostile/
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
