摘要
- 过渡模式可在发出的 PDU 中加入 HMAC-MD5,却不检查收到的 HMAC;未实现该机制的系统也可接受相应类型。链路上看见 MAC,不能证明入站门禁已经收紧。
- 多密码轮换、purge 特殊形态和重启后的序列恢复分别扩大了不同权限。认证成功也只证明共享密钥政策下的来源与完整性,不证明拓扑正确、数据库收敛或流量交付。
同一个认证字段,经过两道不同的门
RFC 5304 在 IS-IS 类型 10 的 Authentication Information TLV 中,为 HMAC-MD5 分配认证类型 54。计算时把 Authentication Value 置零;LSP 还要把校验和与剩余生存期置零。算法说明了“如何复算”,没有说明“谁一定复算”。
标准明文允许过渡模式:本端发送的 PDU 带 HMAC-MD5,接收的 PDU 却不验证。这样可以分阶段部署,不必在同一时刻切断所有旧邻居。代价是抓包会提前呈现最终状态的外观,而接收政策仍处于旧状态。
更明显的兼容条款是:不实现 HMAC-MD5 的系统可以接受带该认证类型的 PDU。报文字段不能让接收端凭空获得执行能力。只有在实现了该机制、收到相应认证信息时,错误 Authentication Value 才必须导致丢弃。
因此,完整证据不是“TLV 存在”,而是:算法已实现、入站校验已启用、适用密钥集已加载、计算已发生、结果已记录、PDU 已拒绝或接纳、协议状态变化可见。缺任何一项,都不能把发送端的装饰当作接收端的执法。
RFC 5304 是 2008 年的 Standards Track 文档,取代 RFC 3567。它对当时密码研究的陈述不能作为今天新部署 HMAC-MD5 的建议;本文只分析验收语义。
一次成功,可能来自多把仍有权的密码
认证作用域随 PDU 变化。一级 SNP 使用区域认证字符串,二级 SNP 使用域字符串,IIH 使用链路级字符串,并且可能与 LSP 不同。“IS-IS 认证开启”不能说明每个表面使用哪份秘密。
轮换期间,实现可以尝试一组密码。这样能渐进更换,却使一次成功无法说明究竟哪把密码匹配。新密码生效、旧密码仍可用、多个候选之一成功,都可能汇总成同一个绿色计数器。
这不是 HMAC 数学失败,而是组织主动扩大了临时信任集合。候选集、顺序、启用时间、退役时间、作用域和重叠结束证明都应可查。没有截止时间的重叠,会把迁移工具变成永久额外权限。
RFC 5310 后来增加 Key ID 与通用 HMAC-SHA 安全关联,使选择更显式。但 ID 出现在包里,仍不等于所有接收端配置了相同链条。标识负责命名,运行状态负责决定。
purge 不是普通 LSP 的另一个取值
purge 把 LSP 的 Remaining Lifetime 置零,意图删除状态。RFC 5304 要求实现 HMAC-MD5 的发起方移除 LSP 主体,仅加入认证 TLV;接收端不得接受未认证 purge,也不得接受还含其他 TLV 的 purge。
这防止攻击者复制合法 LSP、把生存期改成零、再在不知道密码的情况下泛洪。接收过某条通告的能力,不应自动升级为删除该通告的权力。
审计也应把“普通 LSP HMAC 正确”和“purge 符合专用形态且认证正确”分开。形态被剥离、额外 TLV 不存在、适用密钥通过、状态确实被清除,四项共同构成删除回执。
新密码可能输给旧序列号
密码轮换后若路由器或 IS-IS 进程重启,它可能在新密码下从序列号 1 重新发 LSP。邻居仍保存更高序列的旧 LSP,因此拒绝新副本。路由器本应从邻居反射回来的旧副本学到更高序列。
问题是旧副本由旧密码认证,重启后的进程可能已不接受。它无法认证自己过去创建的状态,也无法经正常路径夺回自己的序列空间,只能等邻居把旧 LSP 超时。
RFC 5304 给出一个窄恢复:入站 LSP 认证失败、System ID 等于本地、序列又更高时,可以提升本地序列再重新泛洪。攻击者也能制造该条件,所以文档建议计数。
这里没有接受未认证的拓扑内容,只使用一个不可信坐标修复本地计数,再生成新的已认证 LSP。但由于该例外影响序列权力,每次触发都必须成为告警和审计事件。
认证过的路由器仍可能说错话
RFC 5304 说该机制相对明文密码提高攻击成本,也明确它不完美。它本身不防重放,不普遍防拒绝服务,也不防已失陷、故障或配置错误的路由器。持有密钥的成员可以用正确 HMAC 发布错误拓扑。
有效 HMAC 证明的是:某个被接受的共享密钥持有者生成了覆盖范围内未被修改的消息。它不证明该成员有权做这项具体变更,不证明语义正确,不证明所有节点使用同一密钥政策,也不证明 LSDB、FIB 或业务结果。
保证还依赖算法强度、密钥强度、实现正确性和所有参与者保密能力。共享秘密从任何一方泄露后,HMAC 无法区分不同持有者。
结论边界
本文不主张当前平台仍采用这些行为,也不建议新系统使用 HMAC-MD5。当前设计应遵循 RFC 5310 与更新安全指南。现网验证需要配置、拒绝计数、选中密钥、轮换时间、purge 日志、LSDB 与数据面测量。
可保留的结论是:认证材料、实现能力、执行开关、获胜密钥、消息专用权限和路由效果是六个事实。只查链路上的材料,会漏掉真正行使权力的接收条件。
来源
- RFC 5304:IS-IS 密码认证
- RFC 5304 纯文本
- RFC Editor 的 RFC 5304 信息页
- IETF Datatracker 的 RFC 5304 记录
- RFC 5304 历史记录
- RFC 5304 引用的文档
- 引用 RFC 5304 的文档
- RFC 5304 勘误
- RFC 1195:TCP/IP 环境中的 OSI IS-IS
- RFC 3567:较早的 IS-IS 密码认证
- RFC 2104:HMAC
- RFC 5310:IS-IS 通用密码认证
- RFC 4593:路由协议通用威胁
- RFC 5709:OSPFv2 HMAC-SHA 认证
- RFC 8177:YANG 密钥链
- RFC 8247:IKEv2 算法实现与使用指南
- RFC 5303:IS-IS 点到点三向握手
- Heng Lu:On Reality Layers, Symbolic Power, and Why Clarity Feels So Hostile
- Heng Lu:Running Code Primary
- Heng Lu:On the Agency Problem at the Core of Internet Governance
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
