Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
消息认证码(MAC)对于保证在不可信网络上传输的数据的完整性和真实性至关重要。在物联网生态系统中,设备广播传感器读数、接收固件更新和交换控制命令,缺少MAC将使系统容易受到伪造、重放和数据损坏攻击。ISO/IEC 29192-6标准化了轻量级MAC算法,以最小的计算和存储开销提供强大的安全保障,补充了第2、3和5部分中定义的加密和哈希原语。
该标准指定了几种建立在第2部分轻量级分组密码之上的MAC构造。最值得注意的是CMAC的轻量级变体,它使用CBC模式的分组密码,并对最后一个块进行最终加密以防止长度扩展攻击。当使用PRESENT-80或CLEFIA-128实例化时,得到的MAC分别提供64位或128位安全性,与底层密码的块大小匹配。硬件开销极小——相同的密码核心可同时用于加密和MAC计算。
除了基于分组密码的构造,ISO/IEC 29192-6还包含了从头设计用于轻量级操作的专用MAC算法。TBC-MAC(可调分组密码MAC)使用可调分组密码作为核心原语,无需额外状态即可提供内置域分离。LP-MAC(轻量级并行MAC)针对硬件并行性进行了优化,同时处理多个消息块以实现比串行CBC-MAC设计更高的吞吐量。LP-MAC特别适用于高速传感器接口,如SPI或并行总线。
| MAC 算法 | 核心原语 | 标签大小(位) | 安全等级 | 硬件门数 | 可并行 |
|---|---|---|---|---|---|
| CMAC-PRESENT-80 | PRESENT-80 分组密码 | 64 | 64 位 | ~2 000 | 否 |
| CMAC-CLEFIA-128 | CLEFIA-128 分组密码 | 128 | 128 位 | ~3 500 | 否 |
| TBC-MAC-64 | 可调分组密码 | 64 | 64 位 | ~1 800 | 否 |
| TBC-MAC-128 | 可调分组密码 | 128 | 128 位 | ~3 200 | 否 |
| LP-MAC-64 | 专用置换 | 64 | 64 位 | ~2 500 | 是 |
| LP-MAC-128 | 专用置换 | 128 | 128 位 | ~4 000 | 是 |
该标准允许将MAC标签截断至低至32位,以减少带宽受限信道中的传输开销。然而,截断直接降低了安全等级:由于生日界效应,试图伪造的攻击者平均只需2^(t/2)次尝试即可攻破t位标签。对于32位标签,这仅为2¹⁶次尝试——对于一个坚定的攻击者是可行的。该标准建议大多数应用最小标签长度为64位,高安全环境为128位。
29192-6中的所有MAC构造都是确定性的:相同的消息和密钥总是产生相同的标签。为防止重放攻击,消息必须包含一个nonce(使用一次的数),如单调递增的序列号或时间戳。该标准明确建议在协议级别强制nonce唯一性,并将nonce包含在MAC输入中。不这样做是已部署物联网系统中最常见的漏洞之一。
在低功耗广域网(LPWAN)等带宽极度受限的环境中,MAC标签长度直接关系到频谱效率和电池寿命。标准提出的灵活标签截断机制允许设计者在安全性和通信开销之间做出精细权衡。例如,对于每日仅上报几次数据的环境传感器,使用32位标签配合较长的验证间隔(如每小时更换一次密钥)可以在可接受的风险水平下将每消息开销降低50%以上。但设计者必须清醒认识到,标签截断后的安全强度降低是数学必然,需要通过缩短密钥生命周期或增加访问控制层来补偿。