摘要

  • RFC 5206 及其 Standards Track 后继 RFC 8046 会认证 locator 通告,但新学到的地址通常先标记为 UNVERIFIED;发往该地址的 nonce 得到回应,或新 SA 上收到合格数据,才产生下一层证据。
  • Credit-Based Authorization 允许在不确定期间发送有限字节,目的是抑制放大,不是宣布路径已验证、SA 已承载业务或应用已连续。

一条签名消息留下两张收据

HIP 把主机身份和 IP 地址拆开。设备移动时,可以保留原来的加密关系,只更新用于转发的位置。这种设计让会话不必跟着地址重建,也迫使系统承认:身份事实不能替网络路径作证。

签名或 HMAC 能证明 UPDATE 属于既有 HIP 关系。它能保护 locator、lifetime、preferred 标记和序列不被无声篡改。它不能让无线接口保持在线,不能让路由收敛,也不能恢复已经过期的 NAT 状态。

所以接收端要维护 UNVERIFIED、ACTIVE 和 DEPRECATED。这不是内部实现细节,而是产品对外用词的边界。省略 UNVERIFIED,就会把“经过认证的主张”写成“已经观察到的事实”。

挑战必须到达新地址

典型验证把随机 nonce 放进 ECHO_REQUEST,再把 UPDATE 发往新 locator。对端收到后返回对应值,接收端才能说明:这项挑战确实到达了所声明的位置,并由既有身份上下文回应。

规范也允许用新 SA 上抵达的受保护数据作为隐式验证。关键仍然是“抵达”。证据来自新路径上的包、SPI、认证结果与时间,而不是此前报文中的地址字符串。

创建 SA 只是准备状态;nonce 返回是路径状态;第一份受保护载荷是数据面状态;应用恢复则是业务状态。任何一项都不能替后面的项盖章。

preferred 不是可达性测量

preferred 标记表达对端希望把流量送到哪里。新地址仍为 UNVERIFIED 时,如果还有 ACTIVE locator,RFC 8046 建议继续使用后者,直到验证完成。偏好是策略输入,不是探测结果。

locator lifetime 也只说明记录可以保留多久,并不承诺整段时间都能连通。接口、接入网、路由、防火墙和对端策略都可能先变化。记录尚未过期,路径已经死亡,是完全可能的状态。

R1 中 preferred locator 的窄例外有自己的 base-exchange 上下文。系统必须记录采用了哪条规则,而不能把它扩张成“签名地址一律 ACTIVE”。

CBA 管理的是不确定性

移动应用如果每次都等待完整往返,可能出现明显停顿。CBA 依据最近从对端收到的字节积累信用,允许向未验证 locator 发送有限数据;发送会扣减信用,时间会让信用衰减。

这套机制没有验证地址归属,也没有消灭洪泛。它限制攻击者通过重定向获得放大收益。一个准确的事件应写成“在 CBA 额度内发送”,并附上额度来源、衰减参数、消耗字节和最终验证结果。

如果挑战从未返回,这些先行包不会自动变成可达性证明。允许在未知中行动,不等于把未知改名为已知。

从声明到应用的链条

一次移动事件至少保存:HIP association;UPDATE 指纹与序列;完整 locator 集合;格式与类型检查;初始状态;备用 ACTIVE 路径;nonce、目的地址与重传;回应或新路径数据;状态转换;preferred 决策;SA 安装;第一包受保护载荷;应用结果;到期与删除。

链条的价值不是增加日志数量,而是让失败停在正确的位置。挑战可能失败而签名通过,ESP 可能被中间设备拦住而 nonce 已返回,应用也可能在数据路径恢复后仍超时。

把历史版本写清楚

RFC 5206 于 2008 年以 Experimental 发布,现已 obsolete。RFC 8046 在 2017 年以 Standards Track 替代它,把 LOCATOR 改名为 LOCATOR_SET,并把 multihoming 拆给 RFC 8047。身份声明与地址验证分离的原则被保留。

引用新 RFC 不代表运行代码已经迁移。版本、参数解析、状态机、定时器、CBA 配置和实际包行为都要单独核验。

管理层应批准四个独立状态:通告已认证、locator 已验证、受保护路径已活动、应用已连续。最小公共机制负责认证和限额;实际返回的包才对路径负责。

来源

  1. RFC 5206 信息
  2. RFC 5206 HTML
  3. RFC 5206 文本
  4. Datatracker RFC 5206
  5. RFC 5206 历史
  6. RFC 5206 引用
  7. RFC 5206 Errata
  8. RFC 8046 信息
  9. RFC 8046 HTML
  10. RFC 8046 文本
  11. Datatracker RFC 8046
  12. RFC 8046 历史
  13. RFC 8046 引用
  14. RFC 8046 Errata
  15. RFC 7401 — HIP v2
  16. RFC 7402 — HIP ESP 传输
  17. RFC 8047 — HIP 多宿主
  18. RFC 6973 — 隐私考量
  19. RFC 4423 — HIP 架构
  20. Heng Lu — 现实层与符号权力
  21. Heng Lu — 最小初始规范
  22. Heng Lu — 运行代码优先