我正在使用NFC标签制作应用程序,我必须阻止NFC标签克隆。我已经看到许多其他NFC标签,当试图克隆时,会显示弹出消息“克隆受限制,标签由密钥保护”,我希望NFC标签具有相同的安全性。
答案 0 :(得分:18)
这取决于您使用的标记类型以及您希望克隆的保护级别。
NFC标签(由NFC Forum定义)无法克隆。这些标签旨在作为可自由读取的数据的容器(所谓的NDEF消息)。任何人都可以从一个标签中读取NDEF消息并将其复制到另一个标签。
许多NFC标签还包含由标签制造商预编程的唯一标识符,不能在普通标签上修改。您可以使用此唯一标识符来确定标签是否由您(即您知道其ID)或伪造(即您不知道其ID)发出。您还可以在标记的ID及其数据上创建数字签名,而不是使用正版ID列表。这样,您可以查看数据和签名是否用于具有不同唯一标识符的标记。 但是,仍然可以从您的代码中提取所有数据。因此,您应该了解这样一个事实:攻击者可以更改专用硬件(例如Proxmark等)和现成标签标记ID的唯一标识符。所以这肯定不是完美的克隆保护。
您可以使用非接触式智能卡/标签,提供通信加密和基于共享密钥的访问控制(例如MIFARE DESFire)。使用此方法,您可以存储不希望攻击者能够在受密钥保护的内存区域中克隆的数据。但是,如果您希望能够从应用程序中读取该数据(即没有直接与卡通信的在线后端),则需要存储密钥才能访问应用程序中的内存区域。因此,在离线情况下(即存储在应用中的密钥),攻击者可能能够提取该密钥并使用它来克隆标记。
< / LI>您可以使用包含秘密非对称密钥的标记/智能卡,并提供使用该密钥对加密质询进行签名的命令。在这种情况下,为了验证标签是否是正版,您可以从标签请求此类签名以进行随机质询,并根据对应公钥的标签验证签名。这肯定是最安全的解决方案,因为您不需要在应用程序中存储任何共享密钥。目前唯一提供这种功能的现成NFC标签解决方案似乎是Inside Secure&lt; VaultIC。虽然您可以根据非接触式智能卡(例如Java卡)的非对称加密功能自行创建一个。
请注意,对于上述所有克隆保护方案,您必须创建一个应用程序,以检查标记是真实的还是克隆的。默认情况下,NFC电话仅使用(1)中的信息,因此不执行任何此类检查。
答案 1 :(得分:2)
是的,同时可以防止克隆标签。
有一个名为NTAG 413的新标签 - 每次点击它都可以生成新的NDEF消息。 (使用AES krypto)这样就不需要在智能手机上安装单独的应用程序了。例如,您可以将加密合并到NDEF的URL中,并且主机服务器可以使用相同的密钥对其进行加密。如果是复制,服务器将识别它。
一些公司已经提供不同形式的钥匙卡(酒店或访问)。更多信息可以在这个链接中找到,但它是德国..
https://www.variuscard.com/plastikkarten/chipkarten/nfc-ntag-413-dna/
答案 2 :(得分:1)
虽然原始答案是正确的,但有些过时了。 Michael的加入(10月10日,17日)增加了NTAG413。现在还有另外一个NTAG424 DNA authentication NFC chip,其工作方式相同。 HID的“受信任的标签”以类似的方式工作,并且越来越多的其他方式。
从本质上讲,芯片会根据每次轻击/扫描的存储键创建一个新的唯一代码。可以从服务器验证代码。
答案 3 :(得分:0)
无法保证限制nfc标记获取克隆,因为默认情况下所有nfc标记都是如此。其他应用程序在nfc标记中使用密钥,但也可以破解。