摘要

  • ARIN 的公开目录同时列出正确的 delegated-arin-extended-20260829 及其 .md5,以及两个额外路径:delegated-arin-extended-20231018 和 delegated-arin-extended-20231008.md5。
  • 额外数据路径的首行把 enddate 写成 20260829;额外校验路径的 67 字节内容与正确清单完全相同,声明的目标也是 delegated-arin-extended-20260829。
  • 对两条数据路径在五个位置各取 65,536 字节,成对 SHA-256 全部一致。这支持“当前文件被额外路径提供”的判断,但不是完整文件同一性证明,也不评价任何资源记录。
  • ARIN 自己的格式规范要求文件名、内部头部和匹配的校验文件共同完成验证。发布门禁应把三者绑定成一个可更正的身份记录。

目录先暴露了矛盾

在 ARIN 的统计目录里,正常的 8 月 29 日发布物都在:delegated-arin-extended-20260829、同名加 .md5 的校验文件,以及两条 latest 路径。它们说明当前版本并没有缺席。

异常来自目录顶部的两个条目。一个是 12,774,921 字节的数据对象,文件名末尾为 20231018;另一个是 67 字节的校验对象,末尾为 20231008.md5。目录给两者标出的修改时间都是 2026 年 8 月 29 日。

如果它们真是一组 2023 年历史文件,至少日期应当相同。这里一个是 10 月 18 日,一个是 10 月 8 日。更关键的是,文件内部根本不把自己描述为 2023 年版本。

从额外数据路径取得的第一行是:

2.3|arin|1788008421241|202440|19700101|20260829|-0400

ARIN 发布的RIR 统计交换格式把这些字段定义为版本、注册管理机构、序列号、记录数、开始日期、结束日期和 UTC 偏移量。因此,这个对象内部的结束日期是 2026 年 8 月 29 日。路径名却说它来自 2023 年 10 月 18 日。

67 字节把问题说得最清楚

大文件需要谨慎抽样,小文件则可以完整保存。额外的 20231008.md5 与正确的 20260829.md5 都只有 67 字节,两个响应逐字节相同:

6e57e7c85222c5ff9c1549d1ff8ea52c delegated-arin-extended-20260829

清单没有把 20231008 写成目标,也没有把另一条额外路径 20231018 写成目标。它明确要求校验正确命名的 20260829 数据文件。

这说明校验成功和路径正确是两件事。常规 MD5 工具会读取清单里的目标名,再去找该文件。只要正确的 20260829 文件存在,校验就可能通过。通过的结论是“目标文件的字节符合这份 MD5 清单”,不是“取得清单的 URL 名称正确”。

ARIN 的规范本来就做了这种区分。它规定日期文件使用 delegated-<registry>-yyyymmdd,日期是注册管理机构本地生成文件的日期;校验文件应在匹配名称后加 .md5;验证还应检查文件名与内容是否一致,而不是只看分离校验值。

眼前的两个额外路径正好绕开了这种整体一致性。数据路径、内部结束日期、校验路径和清单目标一共给出了三个不同的日期身份。

五段一致,不等于无限外推

正确的 20260829 数据对象与额外的 20231018 对象都报告 12,774,921 字节。核对分别在偏移量 0、1,048,576、4,194,304、8,388,608 和 12,000,000 处读取 65,536 字节。每一组对应样本的 SHA-256 都相同。

这五个位置覆盖开头、中部和靠后的部分,也包含相同的文件头。结合相同长度和同时出现的目录条目,可以合理判断额外路径在提供当前数据对象的副本或别名。

但抽样仍是抽样。没有对额外路径的全部 12.7 MB 响应计算完整强哈希,就不应宣称两个大文件逐字节完全相同。新闻结论也不需要越过这条线:第一行已经足以证明路径日期和内部日期不一致,完整的 67 字节清单则证明其声明目标是 20260829。

证据边界还要再窄一层。本次核对没有逐条验证 ASN、IPv4 或 IPv6 记录,也没有重算头部声明的 202,440 条记录。它没有证明分配、转移、持有人、路由或 ROA 有误。正确的 20260829 文件对一直在目录中,没有公开证据显示任何使用者因此作出错误决定。

问题属于发布身份,不是资源内容判决。

文件名本身就是机器输入

日期文件专门为自动处理设计。采集程序会用日历拼出 URL,下载数据和 .md5,再把 yyyymmdd 当作时间序列键。镜像可能保存目录里看到的一切。研究者往往相信文件名就是观测日,不会每次都解析内部头部。

当命名合同失效时,这些正常做法会分叉。请求 20231018 的程序会拿到内部日期为 20260829 的对象;请求 20231008.md5 的程序则会被清单引向正确的 20260829 文件。校验可以成功,目录索引仍可能把一次 2026 年观测放进 2023 年。

目前没有证据表明某个镜像或报告真的发生了这种错位。风险来自公开接口允许这种解释:完整性校验保护的是字节,目录身份保护的是字节在时间序列中的位置。二者不能互相替代。

这也是为什么不应把 MD5 描述成现代签名或语义证明。本文只如实报告 ARIN 当前发布的校验方式。新的发布记录可以同时保存现代强哈希;即便使用更强算法,也仍要单独核对路径名、头部日期和清单目标。

最温和的解释已经足够

正确文件对和 latest 路径都存在,五个样本一致,两份校验清单也完全相同。这些事实支持一个平静的判断:两个额外对象很可能是无意别名、复制残留或短暂发布杂项,而不是资源历史被篡改。

ARIN 的2023 年归档目录还单独列出压缩历史条目。本文不审计那些文件,更不声称旧档案已被覆盖或删除。现有证据也不能识别是哪套程序、哪次部署或哪位操作人员产生了额外名称。

ARIN 留存的2013 年扩展统计公告记录过一次更严重的情况:当时受影响文件被删除,正确发布随后恢复。那次公告明确提到数据损坏和不完整;这次没有这样的证据。它能提供的只是一个有限先例——公开统计表面可以修正,并可以留下说明。

本次适当措施更小。如果额外路径没有意图,就移除它们;如果本来就是别名,就公开声明它们指向哪个规范版本。若镜像可能已经抓取,一份短更正比无声清理更有用。无需撤下正确的 20260829 文件,更不应把它描述成注册系统事故。

把一次发布绑定成一个身份元组

发布前的门禁可以很薄。它为每次版本生成一个身份记录,包含规范路径、明确允许的别名、解析后的头部字段、字节长度、现代强哈希、校验或签名文件路径、算法、内部目标名以及验证结果。

至少要通过三项相等检查:规范路径日期等于头部 enddate;校验路径等于数据路径加预期后缀;清单内部目标等于规范数据文件名。不同日期的有意别名必须显式连接到规范记录,而不能伪装成另一日版本。无法解释的差异应在公开前隔离。

更正也不能抹去旧状态。新记录可以引用上一个记录的哈希,写明更正时间、原因类别和结果:已移除、已确认别名、已替换或已恢复。内部基础设施细节不必公开。

这项要求不会扩大 ARIN 的制度权限。注册管理机构只需准确识别自己发布的记录;运营商仍决定网络,研究者仍决定分析。最小共同层只负责让路径、头部和校验目标说出同一个日期。

8 月 29 日的字节可能是好的,校验值也可能是好的。两个 2023 年文件名仍然没有正确描述它们所提供的对象。

来源