ISO/IEC 29167-1 — RFID 空中接口安全架构

信息技术 — 自动识别与数据采集技术 — 第1部分:安全服务空中接口架构

一、29167-1 安全架构概览

ISO/IEC 29167-1 为 RFID 系统的空中接口安全服务建立了基础架构。它定义了一个通用框架,使 RFID 标签和读写器能够在不妨碍底层通信协议效率的前提下协商并执行密码运算。该标准引入了”安全套件”的概念——一个自包含的密码模块,可插入 RFID 空中接口协议栈中。这种模块化设计使得从供应链物流到高价值资产追踪等多样化的部署场景都能实现互操作性。

该架构支持在统一的命令结构下管理多种密码套件。这意味着单个读写器可以使用不同的加密算法与标签通信,根据标签的能力和应用的安全需求选择合适的套件。

架构的核心是安全管理协议(SMP),负责处理读写器与标签之间的认证、密钥协商和安全消息传输。SMP 定义了一组消息类型——Authenticate(认证)、AuthCrypt(认证加密)、KeyUpdate(密钥更新)和 Challenge(挑战)——这些消息被映射到现有的空中接口命令(如 ISO/IEC 18000-6C 的 Req_RN 和 Read 命令)。通过利用现有命令基础设施,该标准最大限度地减少了对物理层和数据链路层的更改,这是实现与现有 RFID 部署向后兼容的关键工程考量。

二、协议层与消息流

29167-1 架构分为三个逻辑层。最底层是由 ISO/IEC 18000-6C(UHF RFID)等标准定义的空中接口协议(AIP)。上层是安全服务层(SSL),负责拦截应用层命令并为其添加加密保护。最顶层是应用层,终端用户逻辑在此运行。这种分层结构确保了安全机制对高层应用透明——例如,仓库管理系统可以发出标准的 Read/Write 命令,而无需了解其下方发生的密码握手过程。这种分层设计的精妙之处在于,即使底层密码套件发生变化——例如从 AES-128 升级到椭圆曲线密码——应用层代码完全不需要修改,大大降低了系统集成的复杂度和维护成本。

层级 组件 功能 工程说明
应用层 主机软件/中间件 发出 Read/Write 命令 无需感知加密细节
安全服务层 SMP 引擎 认证、加密、MAC 套件无关的调度器
空中接口层 物理层 + 链路层 调制、防碰撞仲裁 与基础标准保持一致
SMP 引擎充当密码调度器的角色。当读写器发送 Authenticate 命令时,引擎检查标签支持的套件列表并选择适当的密码模块——AES-128、PRESENT-80、Grain-128A 或椭圆曲线——而无需更改应用层代码。这种插件式架构是 29167 系列标准最核心的设计理念,也是实现多套件互操作性的技术基础。

消息流从读写器发送”Untraceable”(不可追踪)命令开始,该命令用于发现标签而不泄露其身份。一旦标签被识别,读写器通过”Authenticate”命令对发起认证握手。如果双向认证成功,则会派生出会话密钥,后续命令可以使用”AuthCrypt”封装进行加密。该标准强制要求所有密码材料——密钥、挑战随机数和认证令牌——必须存储在标签上的防篡改存储器区域中,这是一项关键的硬件设计要求。从安全工程的角度来看,这种设计遵循了”纵深防御”原则——即使攻击者能够物理接触标签,也无法直接读取密钥材料。

三、实现中的工程洞察

在无源 UHF RFID 标签上实现 ISO/IEC 29167-1 需要仔细关注计算和能量预算。无源标签从读写器的询问信号中收集全部工作能量,通常仅向数字核心提供 10–50 µW 的功率。这一严格的约束驱动了标准中的多项架构决策。例如,SMP 消息的最小化设计使得认证往返次数降低到三次传递,既保证了安全强度又兼顾了标签的能量约束。

挑战-响应认证序列必须在单个盘点周期内完成(通常为 20–50 毫秒,用于 64 位随机数交换)。设计人员必须优化密码引擎以实现低延迟启动——密码加速器必须在上电后的几个时钟周期内准备就绪,因为标签在单次读取会话期间可能多次掉电重启。工程实践中,建议采用异步电路设计或保持部分密码状态的持久化存储来应对这一挑战。

29167-1 中的密钥派生函数(KDF)被设计为最小化状态保留。每次认证会话结束后,标签可以丢弃会话密钥,依赖存储在其受保护存储器中的永久密钥用于下一次会话。这种无状态设计可防止针对易失性存储器的侧信道攻击导致密钥泄露。从系统角度来看,该标准定义了一个密钥层次结构:每个标签的主密钥(MK)、每个应用的标签唯一密钥(TUK)和每笔交易的临时会话密钥(SK)。这种层次结构限制了密钥泄露的影响范围——即使某个应用的 TUK 被攻破,其他应用和主密钥仍然安全。

切勿在标签上以明文形式存储主密钥。该标准强烈建议在密钥个性化过程中使用硬件安全模块(HSM),先将 MK 用传输密钥加密后再写入标签的保留存储器库。现场研究表明,以明文形式存储 MK 的标签在物理接触后的几分钟内就可能受到侧信道探测攻击。在大规模部署中,建议采用在线密钥注入系统,确保密钥在写入标签之前始终处于加密保护之下。

四、常见问题

问:符合 29167-1 的标签能否与非兼容的读写器配合使用?
基本的盘点操作可以正常工作,但任何需要认证或加密的安全服务都将失败。读写器也必须实现相应的安全套件才能参与 SMP 握手。这种设计确保了向后兼容性,允许在同一个射频场内混合使用安全标签和传统标签。
问:单个标签最多能支持多少种密码套件?
该标准允许最多 15 个不同的套件标识符。实际上,由于存储器和门数限制,标签通常实现 1–3 个套件。套件列表在初始握手期间报告。常见的组合是 AES-128 加 PRESENT-80,兼顾高性能和超低成本的部署需求。
问:安全层对读取距离的附加影响有多大?
密码计算会增加 5–15 毫秒的交易时间,但由于调制方案和反向散射链路保持不变,读取距离本身不受影响。然而,标签在密码运算期间的功耗增加 30–50%,这可能会在边缘功率条件下将可靠读取距离缩短 10–20%。设计时建议预留至少 3 dB 的链路余量。
问:29167-1 是否向后兼容 ISO/IEC 18000-6C Gen2 标签?
是的。安全命令使用保留命令代码映射到现有的 Gen2 命令(如 Read、Write、BlockWrite)。传统标签将简单地忽略这些安全命令,从而允许在同一个射频场中存在混合标签群体。这使得用户可以分阶段部署安全功能,降低迁移风险。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注