首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何防止NFC标签克隆?

如何防止NFC标签克隆?
EN

Stack Overflow用户
提问于 2014-04-05 16:43:25
回答 4查看 11.8K关注 0票数 13

我正在制作一个使用NFC标签的应用程序,我必须防止NFC标签被克隆。我已经看到许多其他NFC标签,当尝试克隆时,显示弹出消息“克隆受到限制,标签由密钥保护”,我希望我的NFC标签具有相同的安全性。

EN

回答 4

Stack Overflow用户

发布于 2014-04-08 23:52:52

这取决于您使用哪种类型的标签,以及您想要的防止克隆的保护级别。

  1. NFC标签(由NFC Forum定义)不能防止克隆。这样的标签被用作可自由读取的数据(所谓的NDEF消息)的容器。任何人都可以从一个标签读取NDEF消息并将其复制到另一个标签。
  2. 许多近场通信标签还包含由标签制造商预先编程的唯一标识符,并且不能在普通标签上进行修改。您可以使用这个唯一的标识符来确定标签是由您发布的(即您知道它的id)还是伪造的(即您不知道它的id)。您还可以在标签的id及其数据上创建数字签名,而不是使用真正的id列表。通过THat方式,您可以发现数据和签名是否用于具有不同唯一标识符的标记。然而,所有的数据仍然可以从你的标签中提取。因此,你应该意识到,有专门的硬件(例如Proxmark等)和现成的标签可用,攻击者可以将唯一标识符更改为你的标签id的值。因此,这肯定不是完美的克隆protection.
  3. You可以使用非接触式智能卡/标签来提供通信加密和基于共享密钥的访问控制(例如MIFARE DESFire)。使用这种方法,您可以将不希望攻击者能够克隆的数据存储在受密钥保护的内存区域中。但是,如果您希望能够从应用程序中读取该数据(即,没有与卡直接通信的在线后端),则需要存储密钥以访问应用程序中的内存区。因此,在离线场景(即,存储在中的密钥)中,攻击者可能能够提取该密钥并使用它来克隆app,从而可以使用包含秘密非对称密钥的标签/智能卡,并提供用该密钥对加密质询进行签名的命令。在这种情况下,为了验证标签是否真实,您可以随机向标签请求签名,并根据标签对应的公钥验证签名。这肯定是最安全的解决方案,因为你不需要在你的应用中存储任何共享的秘密。唯一现成的提供此类功能的NFC标签解决方案(据我所知)似乎是在Secure的VaultIC中。尽管您可以基于非接触式智能卡(例如Java卡)的非对称加密功能自己创建一张智能卡。

请注意,对于上面所有的克隆保护场景,您必须创建一个应用程序来检查标签是真实的还是克隆的。默认情况下,NFC电话仅使用(1)中的信息,因此不执行任何此类检查。

票数 25
EN

Stack Overflow用户

发布于 2017-10-10 23:09:56

是的,同时防止克隆标签是可能的。

有一个名为NTAG 413的新标签-它可以在您每次点击时生成一个新的NDEF消息。(使用AES加密)这样就不需要在你的智能手机上安装单独的应用程序了。例如,您可以将加密合并到NDEF的URL中,主机服务器可以使用相同的密钥对其进行加密。在复制的情况下,服务器将识别它。

一些公司已经以不同的形式提供了它们,用于门卡(酒店或门禁)。更多信息可以在这个链接中找到,但它是德语的。

https://www.variuscard.com/plastikkarten/chipkarten/nfc-ntag-413-dna/

票数 5
EN

Stack Overflow用户

发布于 2018-10-23 20:56:08

虽然最初的答案是正确的,但它有点过时了。迈克尔的加入(10月10日,17日)增加了NTAG413。现在有了另一个额外的NTAG424 DNA authentication NFC chip,它以同样的方式工作。HID的Trusted标签以类似的方式工作,而且还有越来越多的其他方式。

本质上,芯片在每次点击/扫描时都会根据存储的密钥创建一个新的唯一代码。可以从服务器验证代码。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22878634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档