摘要
- RFC 5105 明确说,有效签名只是有效验证令牌的必要条件,不是充分条件。登记局还须核对被签元素、变换和算法、证书与 VE 资质、注册商、号码范围、方法、日期及防重放政策。
- 验证令牌记录的是一次验证声明。它不是登记局的委派决定,也不是 EPP 成功、权威 DNS 发布、递归解析可见或通信完成的凭据。
运营面板只显示一个绿色字段:signature valid。在它背后,至少还有八个尚未回答的问题。
签的是整个令牌,还是某个可选子元素?算法是否仍获准?证书链在决定当时是否受信?签名者是否仍是获认可的验证实体?令牌写的注册商是否就是当前申请方?E.164 号码或号码段是否一致?验证方法是否满足当时政策?执行日、到期日与允许提交窗口是否都合规?同一令牌此前是否已经使用?
这正是 RFC 5105 的制度价值。它没有把这些问题压缩成一个密码学布尔值。
ENUM 把 E.164 电话号码与域名体系联系起来。普通域名可以按注册流程分配,而 ENUM 域名必须与号码受让人保持一致。RFC 4725 因此区分号码 Assignee、ENUM Registrant、Validation Entity、Registrar、Registry、DNS 服务方和应用服务方。
各角色可能由同一组织兼任,但职责不会因此消失。VE 验证申请人与号码权利之间的关系;Registrar 代表申请人向 Registry 提交;Registry 维护主委派数据库及相应权威区;DNS 服务方发布区域;应用后来才消费解析结果。
RFC 5105 的令牌是 VE 向 Registry 携带验证结果的标准对象。它之所以要签名,是因为令牌可能由并无号码使用权证明权限的 Registrar 转交。签名防止中间方悄悄更改号码、方法、日期或注册商身份,却不把中间方变成决策者。
必填 validation 元素包括:在某一 VE 内唯一的序列号、一个 E.164 号码、可选的同长度号码段终点、VE 标识、Registrar 标识、验证方法标识、执行日期,以及可选到期日期。另一个可选区可带组织、公司登记号、姓名、地址、电话、传真和电子邮件。
这些字段各自有命名空间。序列号只在某一 VE 内唯一。只存 000001 会丢掉构成其身份的 VE。即使保留“VE+序列号”,若没有精确令牌哈希、号码范围、Registrar、方法和日期,也不足以判断重放或授权。
号码段也不能凭习惯扩张。首个 E164Number 与可选 lastE164Number 定义闭区间,两者必须同长度。导入器若去掉结构、改写规范化规则或扩展范围,就改变了原声明。签名只能保护被签表示,无法代替 Registry 把它与实际 ENUM 委派申请比对。
RFC 采用 enveloped XML-DSIG,并要求 exclusive XML canonicalization。令牌常嵌在另一个 XML 协议内;排他规范化避免外层继承来的命名空间声明破坏签名。这解决的是稳定摘要输入,不是业务授权。
签名引用范围尤其关键。Reference URI="#TOKEN" 应指向令牌元素上的 Id="TOKEN"。RFC 警告,如果把该 ID 移到可选 tokendata,签名对本用途就会失去价值。通用库仍可能正确验证那个联系信息子树的数学签名,而号码、方法与日期没有被覆盖。
因此“XML-DSIG 成功”不是结论。Registry 还必须确认变换与密码算法获准,引用目标确为完整 token 元素,并且签名密钥属于获认可的 VE。RFC 的示例直接写明:有效签名是有效令牌的必要条件,但不是充分条件;证书和 XML Schema 也要检查。
证书本身不会授予 VE 资格。RFC 允许 Registry 自己作为认证机构、接受公共 CA,或只接受预登记密钥。嵌入式 X.509 证书只是验证材料。它不选择信任锚,也不证明主体在做出决定的那个时点仍有 VE 资质。
审计系统因此需要保存“信任快照”和“资质时期”。证书编码有效期可能尚未结束,VE 的制度性认可却已经撤回。今天的信任库也可能与当年不同。后来的政策变化可以改变当前可接受性,但不应静默改写历史系统当时究竟看到了什么。
日期也有两层。executionDate 说明验证何时执行;expirationDate 说明令牌表示的验证何时结束。若省略到期日,格式把它解释为无限有效。但 RFC 同时要求 Registry 检查这种省略是否符合本地政策,并要求政策规定执行后多久仍可用该令牌授权委派。
所以“未到期”并不等于“可授权”。令牌的到期日在未来,提交窗口却可能已关闭;令牌可以省略到期日,而 Registry 不允许无限期验证;所有日期都可通过,Registrar 却不匹配。每个判断都需要政策版本和自己的时钟。
Registrar 绑定提供了一个清晰反例。若第二家 Registrar 窃听到为第一家签发的令牌,原签名仍然有效。Registry 必须把令牌内容与请求匹配,签名里的 registrarID 会证明第二个请求不是被验证的那个请求。完整性没有失败,授权检查正确地失败了。
methodID 同样只是标识,不是执行证明。RFC 4725 说明,验证方法可能因当事方、数据源、号码受让人选择和监管要求而变化,具体方法不在该文档范围内。Registry 需要判断某方法在该政策时期是否满足这个号码类别的最低要求。
委派生命周期也不会停在首次签名。RFC 4725 要求 ENUM 委派持续跟踪 E.164 号码状态。重新验证成功,委派可以继续;重新验证失败,委派必须通过明确操作或到期自动暂停,本地政策还可能给宽限期。旧令牌的签名仍可验证,不会因此推翻后来的失败事件。
防重放需要完整账本。一个令牌首次被接受后,仍可能在表面有效期内再次出现。仅靠序列号不能知道它是否已消费、被拒绝后重试,或用于另一请求。应联合记录 VE、序列、精确哈希、Registrar、号码范围、首次出现时间、决定和允许窗口。
可选联系信息也不能取代核心验证。组织名或电子邮件可帮助后续核验,却不证明当前号码分配。令牌内容不加密;若本地政策要求保密,必须另用机制。签名、传输加密、字段最小化和授权是四种不同控制。
算法选择带有时代边界。RFC 5105 当时要求支持 RSA-SHA1 与 RSA-SHA256,同时已经指出 SHA-1 的密码分析疑虑,并把实际接受算法及密钥长度留给 Registry 政策。库能识别某 URI、能完成历史算法验签、Registry 现在愿意接受,是三个不同事实。
令牌通过政策检查后,仍只到委派链条中段。RFC 5076 定义 EPP 扩展,可增加、更改、删除或查询 ENUM 验证信息。EPP 成功响应只证明那次协议事务成功;它不自动证明权威区已经发布。
数据库可以提交,而区域生成失败。权威服务器可以更新,而递归缓存仍保留旧视图。RFC 3761 的 ENUM 查询可以返回 NAPTR,URI 却仍可能错误或终端不可达。终端可达,也不保证目标通信完成。VE 的签名对这些下游系统没有追溯性权力。
可辩护的证据链应分段保存。密码学收据记录原始字节与哈希、解析器和 Schema、解析出的 ID、引用节点、变换链、规范化输入、摘要与签名算法、证书路径、信任锚及结果。它只陈述被覆盖对象是否验证通过。
政策收据再记录 VE 身份与资质、方法许可、Registrar 匹配、E.164 范围、执行与到期日期、提交窗口、政策版本及重放历史。Registry 单独签发接受或拒绝决定。EPP 事务、委派记录、权威发布、解析观察和应用结果分别产生自己的收据。
这种结构让故障可定位。错误可能来自 VE 签错号码、引用范围错误、另一 Registrar 重放、信任库变化、旧方法仍被接受、EPP 未提交、区域未发布或应用不可达。若全部叫“已验证”,组织只能看到结果颜色,无法看到权力和失败发生在哪里。
这与 Heng Lu 的现实分层原则一致。签名是一项强而窄的表示与来源事实。它只有在自己的层内才可靠。一旦让它替政策、登记操作或运行服务发言,清晰的数学事实就会成为扩张权力的符号。
运行代码优先并非贬低文档,而是要求每个系统证明自己执行的那一步:验证器证明具体对象;Registry 证明决定;EPP 证明事务;DNS 证明发布;解析器证明观察;应用证明结果。任何一层都不应借用上一层的绿色状态。
来源
- RFC 5105 — ENUM 验证令牌格式
- RFC 5105 — 规范文本
- RFC Editor 的 RFC 5105 记录
- RFC 5105 勘误检索
- IETF Datatracker 的 RFC 5105 记录
- RFC 5105 的 IETF 历史
- RFC 4725 — ENUM 验证架构
- RFC 5076 — EPP 中的 ENUM 验证信息
- RFC 3761 — ENUM
- RFC 3275 — XML 签名
- RFC 4051 — XML 安全 URI
- RFC 3339 — 互联网日期与时间
- RFC 4930 — EPP
- RFC 4055 — RSA 算法与标识
- RFC 3688 — IETF XML 注册表
- Heng Lu — 运行代码优先
- Heng Lu — 最小初始规范
- Heng Lu — 现实层
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
