摘要

  • 第 11 版草案用文本和 CBOR 表示一组 Bundle Protocol Endpoint ID,并提出可写入 X.509 SAN 的 BundleEIDPattern。
  • 由于 EID 模式没有通用的“子集”运算,CA 证书里的模式约束不参与普通证书路径验证,而是在具体 Node ID 验证时另行执行。
  • “匹配”只说明某个处理器在某个用途下得出了集合成员结论;它不自动授予路由、交付、TCPCL 会话或 BPSec 操作权限。

同一份配置,可能不是同一个集合

EID 模式的价值很直接。BPv7 用 EID 标识源和目的端点,BPSec 把 EID 用作安全源身份,TCPCL 把 EID 用作对端身份。节点还需要按一组 EID 配置转发、路由、交付、安保策略和汇聚层策略。草案把原先各自为政的匹配方法整理成共同结构,并为 ipn 的分配者、节点和服务编号提供区间与通配表达。

但共同语法不等于共同结果。任意 SSP 模式可以同时带方案的文本名和整数编号;编码器在确信解码器能够补回另一种形式时,可以省略其中一个。若判断错误,不认识私有方案名的处理器可能无法匹配文本 EID,认识它的处理器却可以。配置文件没有变化,软件版本和方案表一变,实际集合便可能变化。

不支持的方案同样不是简单的解析告警。实现可以整体失败,也可以跳过相应项目。在转发或路由表中,被跳过的项目可能令该表项失效,节点随后转向另一条规则或默认动作。真正需要记录的,不只是“哪条规则命中”,还包括“哪些规则因为能力缺口根本没有进入竞争”。

一个字符串必须先有类型

单项目的文本模式可以与它精确匹配的 EID 长得完全一样。脱离上下文,字符本身无法告诉接收者:这是一个端点标识,还是一个选择端点集合的模式。

这个类型边界直接关系权限。草案警告,把 EID 错当成 EID Pattern,可能扩大攻击者的访问范围。PKIX 通过不同的 OtherName 形式区分两者;普通文本环境还可以在模式前加 |,让它不可能被当成有效 EID。若中间平台把两种值都压成一列“identifier string”,后面的精确匹配再严谨,也补不回丢失的类型。

规范化也会丢掉历史。模式项逻辑上无序,处理器可以去重、排序、合并或改用规范编码,并且不保存原始输入。对匹配而言,这可能等价;对审计而言,原文、规范化结果、处理器版本和方案支持表必须分别保留。否则事故后只能证明“今天的程序这样算”,无法证明“当时的节点为何这样判”。

路径有效,不代表 Node ID 有效

草案在证书部分引入 id-on-bundleEIDPattern。它是 SAN 的 otherName,值为 UTF8String 编码的 EID 模式;它不是 URI。终端证书可用 NODE-ID 或 EID-PATTERN-ID 来验证 TCPCL 对端的 Node ID,BPSec COSE 也得到对应规则。

最重要的细节在 CA 的 Name Constraints。EID 模式没有适用于所有方案的子集逻辑,因此这些约束不能像常见名称那样直接限制下级证书里的 EID 或 EID-PATTERN-ID,也不影响 RFC 5280 的证书路径验证。它们被推迟到“最终身份验证”:验证具体 Node ID 时,程序才遍历证书路径中的允许与排除模式。

所以一条链可以签名正确、锚点可信、路径验证通过,却因具体 Node ID 不在允许集合内而失败。这不是证书系统前后矛盾,而是两道门回答了两个问题。只显示“证书有效”的监控页面,会把第二道门隐藏掉。

*:** 更能说明上下文的重要性。它作为允许子树没有增加任何限制;作为排除子树,效果等同于禁止 bundle-security 扩展密钥用途;放入转发表,则可能兜住所有目的地。同一个标记不能携带一个跨用途的统一授权。

共同层只负责到哪里

一个模式内部的多项目表达 OR。多个独立模式如何做 AND、NOT,缺席模式意味着什么,都由使用它的证书、路由或安保策略决定。规范可以规定集合和匹配,不应该假装已经规定了所有业务后果。

这与 Lu Heng 的最小初始规范原则相吻合:共同层只纳入互操作所需的确定性结构;未来的选择和后果留给运行代码的参与者明确承担。运行代码优先意味着,真实处理器支持了哪些方案、用了哪种规范化、对哪个具体 Node ID 作出何种判断,比文档或证书字段的存在更接近事实。现实分层则要求把编码值、规范化集合、证书路径、Node ID、会话、安全操作、转发和交付逐层保留。

第 11 版日期为 2026 年 9 月 23 日,预计 2027 年 3 月 27 日到期。Datatracker 将它列为活跃的 DTN 工作组 Internet-Draft,但 API 没有给出预期 RFC 状态;草案页眉写着 Standards Track。本文保留这一差异,不把任何一方解释成 RFC、共识或部署结果。

来源与边界

这些资料没有证明 OID 已分配、任何具名实现或部署存在,也没有提供互操作、性能、攻击、事故、采用率或业务结果。