摘要

  • RFC 5134 登记了 epc 与 epcglobal 两个 URN 名称空间,并未认证任何标签或商品。
  • epc 的子空间可命名实物,epcglobal 则命名模式等逻辑或软件构造。
  • 名称唯一意味着分配规则避免碰撞,不意味着同一比特不会被复制到两个载体。
  • 名称持久意味着不会被重新分配,不意味着对象持续存在、位于某处或始终由同一方保管。
  • SGTIN 示例中的前导零有意义,数值化清洗会把一个身份改成另一个身份。
  • 已核实勘误说明:大小写敏感的是名称空间特定部分,而非整个 URN。
  • 通用 URN 语法、EPC 子空间有效性与授权分配是三项独立检查。
  • RFID 读数证明某台设备观察到一段响应,不自动证明标签真伪或命名实物在场。
  • ONS/DDDS 只为部分 epc 子空间发现服务;epcglobal 根本不要求解析。
  • 解析结果与元数据必须分别证明授权、完整性、新鲜度和适用范围。
  • EPCIS 记录有边界的事件主张,而不是对实物位置连续、全知的观察。
  • 冲突应沿“名称—分配—观察—认证—事件—实物”逐层处理,不能压成一个“已验证”状态。

两道门都没有撒谎,也可能同时不完整

第一道门保留了天线编号、固件版本和接收时间,第二道门也留下了格式正确的事件。把其中一条直接删掉,会让报表恢复整洁,却会毁掉最有价值的异常。两次读数可以都是真实的设备观察:两台设备确实各自收到过承载同一 EPC 的响应。设备所观察到的,是无线接口上的比特,而不是名称背后那件商品的哲学同一性。

这正是“唯一名称”容易被误读的地方。RFC 5134 讨论的是名称空间的分配与持久性:一个标识符不应被授权机构重复分配给不同资源。它没有声称比特无法复制,也没有把读写器变成防伪设备。复制标签、错误写入、读区重叠、消息重放和时钟漂移,都可以在名称登记完全正确时发生。

因此,冲突不是注册表失效,而是多层证据开始分叉。名称层仍可能正确,分配层也可能正确;观察层出现两个彼此不相容的主张,实物层尚未判定。系统如果只允许一个布尔值,就会被迫牺牲某层事实去维护界面的一致。

epc 与 epcglobal 命名的不是同一种东西

RFC 5134 特意登记两个名称空间。epc 下的某些子空间可标识有形对象;epcglobal 用于逻辑或软件构造,例如模式名称。两者共享 URN 外形,并不共享相同的物理含义。

一个模式名称可以在没有下载地址的情况下持续有效。epcglobal 的登记明确表示不要求、也不提供解析机制。如果监控系统把每个 URN 都当作网址,它会把正常的“没有可解析服务”误报为故障。名称可用,并不以网络端点存在为前提。

反过来,实物标识能解析到服务,也不代表实物就在读写器前。复制值会生成同样的查询;旧缓存会返回看似完整的资料;被劫持的委派可能把客户端带到伪造服务。网络可达性只说明网络路径完成了某件事,不能替代载体认证与现场检查。

原始字符串是第一份证据

在调查两道门之前,应先确认两个系统保存的是不是同一个输入,而不是被清洗后碰巧相同的键。RFC 5134 的 SGTIN 非规范性示例把公司前缀、产品引用和序列号放在不同组件中,并明确指出填充组件的前导零有意义。把组件转成整数再输出,会删除身份信息。

输入链需要保留原始表示、接收载荷、解码方式、解析器版本、适用子空间和生成结果。所谓规范化必须能证明遵循名称空间等价规则,并通过往返测试;“看起来更干净”不是规范。否则,两串本来不同的 EPC 可能被合并成一个数据库键,制造出虚假的双地点冲突。

大小写也不能交给通用字符串工具。RFC 5134 原文曾把整个 URN 描述为大小写敏感,已核实勘误 1325 与 1328 将其纠正为名称空间特定字符串敏感。urn 方案名和名称空间标识符遵循一般 URN 比较规则。全串小写会合并特定部分中的不同名称;全串逐字节比较则可能把方案或 NID 的不同写法当成不同对象。

三次“有效”不能共用一个按钮

第一次检查是通用 URI/URN 语法,回答字符与外壳是否成立。第二次检查是具体 EPC 子空间的规则。RFC 5134 自己的 SGTIN ABNF 示例并非规范定义,规范结构交给 GS1 Tag Data Standard。第三次检查是分配链:相关前缀、引用和序列是否真的由有权主体分配。

三次都通过,仍然只能说明名称形成和行政来源可靠。这个名称仍可能被写到未经授权的载体上。若系统只显示“EPC 有效”,操作员无从知道它指的是语法、子空间、分配还是标签认证,也无法知道两道门冲突发生在哪一层。

版本同样属于结果。GS1 的 TDS 档案显示规范持续演进。校验器应记录应用了哪个版本,以及为何选择它。按当前规则有效和按委任当时规则有效,是可以并存的两个问题;任何一个都不证明当前实物位置。

为每一次无线观察划边界

可审计的读数至少包含读写器身份、软件与固件版本、天线或询问区、功率与过滤规则、设备捕获时间、平台接收时间以及去重决定。这样才能判断两个地点是否真的物理不相容,还是一条迟到消息被赋予了错误事件时间。

若同值确实在两个地点被同时观察,调查应保留多种假设。标签可能复制;一个读区可能越过墙面;上游可能重放缓存;编码器可能批量写错;商品也可能移动,而某个时钟或地点映射错误。EPC 本身不能选择答案,但它能把有关证据聚到同一案件中。

真正的载体认证需要额外机制,例如适合部署风险的密码能力、受保护的制造信息、可问责的委任流程、防拆证据或人工检验。并非每个场景都需要最昂贵的机制,但每个决策都必须承认单纯读到持久名称不等于认证了载体。

ONS 的职责止于发现服务

RFC 5134 说明部分 epc 子空间可通过 Object Naming Service 解析,而 ONS 建立在 Dynamic Delegation Discovery System 之上。DDDS 与 NAPTR 根据规则把输入转向候选服务。这是一条可复核的服务发现链,不是一条通往“现实真相”的专线。

解析收据应保存准确输入、等价形式、所请求服务、委派路径、候选与选择结果、DNSSEC 或其他保护状态、缓存年龄、响应签名者和应用决策。成功意味着这些规则在该时刻导向某个结果。它不意味着元数据属于当前商品实例,也不意味着命名实物位于某道门。

失败也要分类。没有定义服务、委派缺失、校验失败、超时和查询格式错误,各自要求不同响应。特别是 epcglobal 本就不要求解析,盲目把解析失败当作非法名称,会让实现擅自扩大协议契约。

元数据是另一条信任链

RFC 5134 的安全部分直接指出:名称可对应高价值实物,攻击者因而有动力伪造价格、尺寸等元数据。文档把数字签名、安全解析和信任关系称为基础措施。这说明“解析到了 JSON”从来不是“商品是真的”的同义词。

需要追问谁签署了什么、覆盖哪种标识表示、有效期为何、声明针对产品类别还是序列化实例、客户端接受哪条信任锚。传输加密只能保护一段连接;它不能自动证明内容发布者有权对该 EPC 作出声明。签名完整也不代表数据仍然新鲜。

即使资料完全真实,复制标签仍可能引用它。签名把声明绑定到发布者,把字段绑定到标识符,却未必把观察到的硅片、包装和内部实物绑定在一起。界面必须让这条最后的物理链接保持可见,而不是借用加密术语把它掩盖。

EPCIS 把事件写下来,而不是替世界作证

当前 GS1 架构把标识与可见性事件分开。EPCIS 记录“何物、何时、何地、为何、如何”的业务事件。它保存的是某个来源在特定上下文中的主张,不是两次事件之间持续不间断的定位。

一条有用事件应保留事件时间、捕获时间、读点、业务地点、业务步骤、状态、源系统和负责主体。迟到、修正、重复与撤销都需要审计链。地点字段是设备和流程生成的陈述,不是实物本身;若两道门的地点映射错误,格式完美的事件仍会误导。

保管链要由这些有边界事件、组织交接收据和实物控制共同构成。中间没有观察,就是证据空白。系统可以声明“这段时间未知”,不应仅因相同 EPC 在空白两端出现,就自动插值出连续移动和连续保管。

把一个绿色图标拆成十张收据

第一张是名称空间登记,第二张是通用与特定语法,第三张是前导零和大小写无损,第四张是授权分配,第五张是设备观察,第六张是载体认证,第七张是服务发现,第八张是元数据授权与新鲜度,第九张是业务事件,第十张是实物检查与结果。

每张收据都有生产者、时间、适用范围和可能失败的方式。较早层通过,并不推导较晚层通过。一个正确分配的名称可以没有解析服务;服务可以返回旧数据;签名数据可以被复制标签借用;真实标签可以经过没有事件覆盖的区段;完整数字轨迹可以止于未完成的交付。

这种模型不会削弱自动化,反而让自动化知道自己在做哪一种决定。库存盘点、付款、召回、通关与所有权转移可以要求不同收据组合,并在某一层故障时局部降级,而不是让一个解析器中断全部事实。

来源