遇到了一个 2012 年的帖子防止复制 nfc 芯片信号,该信号建议:
“建议不要使用标签的唯一 ID 作为安全功能。”
为什么除了以下所述的原因之外,使用唯一 ID 作为生成消息验证码 (MAC) 的消息的一部分是否存在安全问题?
我的应用程序是使用 RFID 应答器的 8 字节固定唯一 ID、RFID 的 100 个数据字节的一部分和一些随机数据* 来导出 MAC。此 MAC 将用于验证标签的消息。
将唯一 ID 合并到 MAC 中的主要原因是它可以防止标签消息的简单复制,并且 MAC 到另一个标签不会产生合法的 MAC。
MAC 需要足够大,有/没有 ID。MAC 大小目标:512 位(32 字节)。
已知的问题:
一种已知的攻击是直接复制整个标签的数据和 ID,然后将其移植到标签模拟器,该模拟器可以在不同的标签上重新创建 ID。所以使用ID没有帮助。
仅取决于 ID 变化的 MAC 变化(其他数据相同)可能有助于破解 MAC。为了防范此漏洞,MAC 还必须依赖额外的随机数据。
- 4字节的随机数据确保,如果数据内容重复,MAC的变化不仅仅取决于唯一的ID——本质上是扩展ID。