ISO/IEC IEC 29167-16 — 信息技术安全 — 第16部分:RFID ECDH 密钥协商

基于椭圆曲线 Diffie-Hellman 的 RFID 空中接口安全会话密钥建立协议

1. ISO/IEC 29167-16 概述

ISO/IEC 29167-16 定义了椭圆曲线 Diffie-Hellman(ECDH)密钥协商协议,作为符合 ISO/IEC 18000 系列空中接口标准的 RFID 系统的一个密码套件。ECDH 使两方——RFID 读写器和标签——能够在不安全的信道上建立共享密钥,而无需交换各自的私钥。每一方生成一个临时或静态密钥对,交换公钥,然后使用自己的私钥和对方的公钥独立计算相同的共享密钥。

该标准区分了临时-临时(EE)模式和静态-静态(SS)模式。在 EE 模式下,双方每次会话都生成全新的密钥对,提供完美前向保密性(PFS):即使长期密钥被泄露,过去的会话密钥仍然安全。SS 模式牺牲了 PFS,但由于密钥生成仅在个性化期间发生一次,因此计算开销更低。

使用临时密钥的 ECDH(ECDHE)提供完美前向保密性,确保长期密钥的泄露不会暴露之前记录的加密会话。这对于标签-读写器交互可能被记录的供应链审计追踪至关重要。

2. 协议细节与密钥派生

ISO/IEC 29167-16 规定的 ECDH 协议遵循三方消息交换。读写器首先发送”密钥协商请求”,其中包含其支持的曲线标识符及其临时公钥(或指示将使用静态密钥)。标签以其选择的曲线标识符及其临时公钥作为响应。双方然后计算共享密钥——即各自私钥与对方公钥点进行标量乘法所得点的 x 坐标。

从 ECDH 派生的原始共享密钥不会直接用作会话密钥。相反,标准指定了一个基于 HMAC-SHA-256 的密钥派生函数(KDF),该函数将共享密钥与交换的随机数和公钥一起处理,生成最终的会话密钥。这个 KDF 步骤确保即使意外生成了相同的 ECDH 共享密钥,每个会话也能产生唯一的密钥。

参数 ECDHE-256 ECDHE-384 ECDHE-521
交换消息数 3(请求/响应/确认) 3 3
KDF 算法 HMAC-SHA-256 HMAC-SHA-384 HMAC-SHA-512
会话密钥大小 128 位 192 位 256 位
完美前向保密 是(临时模式)
标签端计算 ~25 ms @ 1 MHz ~60 ms @ 1 MHz ~180 ms @ 1 MHz
空中传输负载 ~96 字节 ~128 字节 ~196 字节
切勿在没有显式密钥确认步骤的情况下使用 ECDH。没有确认时,中间人攻击者可以与读写器和标签分别建立独立会话。ISO/IEC 29167-16 中的确认消息通过让每一方证明拥有共享密钥来防止这种情况。

3. 工程设计要点

在无源 RFID 标签上实现 ECDH 需要精心管理标签有限的计算资源。标量乘法运算主导了执行时间和功耗。硬件架构师通常实现一个专用的 ECC 加速器,使用在素域上运行的流水线 Montgomery 乘法器,并配备专用双端口 RAM 来存储中间投影坐标。

一个关键的实现细节是临时密钥的随机数生成。标准要求每个临时密钥对使用密码学质量的随机数生成器(RNG)生成。在 RFID 标签上这带来了挑战,因为传统的模拟熵源(环形振荡器、热噪声)在加电瞬态期间可能不可用。许多标签设计包含一个专用 RNG,该 RNG 在标签响应任何命令之前的初始功率稳定窗口期间进行种子植入。

使用基于 AES-CTR 的确定性随机位生成器(DRBG)(如 NIST SP 800-90A 所规定)在硬件成本和随机质量之间提供了极佳的折衷。一个 AES-128 核心可以同时服务于 DRBG 和加密/解密功能。
如果用于临时密钥生成的随机数生成器是可预测的,攻击者通过观察多个协议运行可以使用基于格的攻击恢复私钥。这并非理论:2012 年索尼 PlayStation 3 ECDSA 故障正是由于使用了静态 k 值。始终验证 RNG 输出是否通过统计检验。

4. 常见问题

问:ECDH 能否用于多个标签的组密钥协商?
答:不能直接使用。ISO/IEC 29167-16 规定了一对一的密钥协商。对于组场景,更高级别的协议必须使用如树形组 Diffie-Hellman(TGDH)或集中式密钥分发器等技术扩展 ECDH。
问:如果标签的临时密钥被重用会怎样?
答:临时密钥的重用消除了完美前向保密性,并且如果在多个会话中使用相同的临时密钥,则会导致密钥恢复攻击。实现必须强制临时密钥一次使用。
问:ECDH 对于完整的 RFID 安全是否足够?
答:不够。ECDH 仅提供密钥协商。完整的安全性需要将 ECDH 与加密(例如 AES-GCM)和认证(例如 ECDSA 或 29167-14 中的 ECC 套件)相结合。

发表回复

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