我想将数据写入NFC标签,以便我知道当我读到它时它实际上来自我。我可以使标签永久读取,但这只能阻止写入该特定标签。坏演员可以复制数据并模拟标签。我该如何防止这种情况?
我可以用我的私钥加密数据然后用我的公钥签名,这意味着它肯定来自我,只有我能读懂它。但是什么阻止某人简单地复制数据并冒充该标签。
每个标签都有独特的内容,可以读取和记录,无法更改,并且所有标签都是唯一的吗?我可以记录下来,以确保标签是我写的标签。
答案 0 :(得分:3)
大多数NFC标签都有一个标签特有的硬件UID。例如,Mifare Ultralight标签具有7字节UID,可唯一标识标签。可以认为它类似于网卡的MAC地址。
此UID是只读的,制造后无法更改。如果您阅读特定标记的规范,则可以看到它的位置。对于Mifare Ultralight,这7个字节位于前几页。请参阅此处的规范:
http://www.nxp.com/acrobat_download2/other/identification/M028634_MF0ICU1_Functional_Spec_V3.4.pdf
我有一个名为NFC标签信息的免费安卓应用程序,用于浏览标签的页面结构,以及查找标签的UID: https://market.android.com/details?id=at.mroland.android.apps.nfctaginfo
答案 1 :(得分:1)
有人仍然可以在自定义卡上冒充UID。如果您制作了自己的自定义卡,则可以包含某种验证算法,您可以将随机数据发送到并获得预期的响应。但标准标签非常容易被冒充。