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

3
我正在尝试实现一个基于通用NFC标签的授权系统。我想要解决其中的一个问题是标签克隆。我已经阅读了一些文献,通过在制造过程中写在标签上的只读标签ID来保证标签的真实性。这个ID由所有者签名后写在标签上。这样,可以通过将标签ID与克隆签名进行比较来检测到克隆标签(其将具有不同的、由标签制造商分配的ID)。
我的问题是,是否可以安全地假设所有(或大多数)NFC标签都具有这样的内嵌只读ID,以供克隆检测使用?
3个回答

3
首先,缩小问题范围,选择适合您需求的标签类型和制造商。
UID 是大多数标签的通用属性,但不同的标签有不同的规格。一些标签具有较小的 UID 大小,因此 UID 重复使用的可能性较高。不同的标签具有不同长度的 UID。有些标签应在出厂时设置,但克隆产品可以以后设置它们。某些规格说明标签 UID 始终可写。
此外,使用主机卡仿真技术,仅基于 UID 就可能编写程序来破解任何基于安全的保护(根据使用的 UID 长度,所需时间可能会有所不同)。
各种标签提供密码保护和对标签上数据的加密(老的标签类型可能具有弱加密/密码保护功能)。
大多数密码保护都是在一个特殊区域中完成的,读写器可以将密码写入该区域,但只能由标签本身读取。
如果您使用某些标签的密码保护功能,请确保不要为系统的每个实例使用相同的密码,并确保系统管理员强制为其系统设置一个密码。

2
考虑使用UID进行真伪检查并不是一个好主意,因为克隆卡可以具有与原始卡完全相同的UID。我不确定其他制造商,但我已经与NXP标签一起工作了很多,我在这里提出一个解决方案,如果符合您的要求,那么您可以继续使用。对于使用NXP卡,他们提供了一个名为TapLinx的开放式API,其中您可以获得用于原始性检查的API。使用它,您可以知道卡是否真实或复制。即使UID也被克隆,它也将识别克隆卡。

1
不要把UID作为安全机制的依据。市场上有克隆芯片,也有可以自己编程UID的芯片。此外,我们也发现厂商的错误导致了重复的UID。
最好使用自己的编号方案,最好是基于加密技术。

2
这种方案不也容易受到克隆攻击吗?如果攻击者能够克隆整个标签内容,那么如何检测这样的克隆呢? - Tabish Mir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接