NFC 标签是否具有唯一的只读 ID?

Do NFC tags have unique, read-only IDs?

我正在尝试实现一个基于通用 NFC 标签的授权系统。我想解决的问题之一是标签克隆。我读过一些文献,通过使用在制造过程中写在标签上的只读标签 ID 来确保标签的真实性。此 ID 由所有者签名并写在标签上。这样,可以通过将标签 ID 与克隆签名进行比较来检测克隆标签(将具有不同的标签制造商分配的 ID)。

我的问题是,可以安全地假设所有(或大多数)NFC 标签都有这样一个编码的只读 ID,我可以将其用于克隆检测吗?

不要依赖 UID 作为安全机制。市场上有克隆芯片,也有可以自己编程 UID 的芯片。最重要的是,我们看到制造商的错误,导致重复的 UID。

最好使用您自己的编号方案。理想情况下基于密码学。

首先缩小您的问题范围,选择适合您需要的标签类型和制造商。

UID 是大多数标签的通用 属性,但不同的标签有不同的规范。一些标签具有较小的 UID 大小,因此可能会重复使用 UID。不同的标签具有不同长度的 UID。有些应该在工厂设置,但克隆允许稍后设置。一些规范声明标签 UID 始终是可写的。

还可以使用主机卡仿真,编写程序以仅基于 UID 来暴力破解任何安全性(所花费的时间可能因使用的 UID 长度而异)

各种标签提供密码保护和标签上数据的加密(尽管较旧的标签类型可能具有较弱的 encryption/password 保护)。

大部分密码保护是通过一个特殊区域完成的,密码可以由 Reader/Writer 写入但只能由标签本身读取。

如果您确实使用了某些标签的密码保护功能,请确保您不会为系统的每个实例设置相同的密码,确保系统的管理员被强制为其系统设置一个密码。

考虑使用UID来验证真伪不是一个好主意,因为克隆卡的UID可能与原卡完全相同。

我不确定其他制造商,但由于我在 NXP 标签方面工作了很多,我只是在这里提出一个解决方案,如果适合您的要求,那么您可以继续。为了使用 NXP 卡,他们提供了一个名为 TapLinx 的开放 api,您可以在其中获得 api 进行原创性检查。使用它您可以了解该卡是真实的还是克隆的。即使 UID 也被克隆,它也会识别克隆的卡。