Android NFC标签、密码保护和唯一标识符

Android NFC标签、密码保护和唯一标识符,android,encryption,nfc,Android,Encryption,Nfc,我想把数据写入NFC标签,这样我就知道当我读到它时,它实际上来自我。我可以使标记永久只读,但这只会阻止写入特定的标记。坏的参与者可能复制数据并模拟标记。我怎样才能防止这种情况 我可以用我的私钥加密数据,然后用我的公钥签名,这意味着它肯定来自我,只有我才能读取它。但是是什么阻止了人们简单地复制数据和模拟标签呢 是否每个标签都有唯一的东西可以读取和记录,并且不能更改,并且对所有标签和所有时间都是唯一的?我可以记录下来,以确保标签是我写的 大多数NFC标签都有一个标签特有的硬件UID。例如,Mifar

我想把数据写入NFC标签,这样我就知道当我读到它时,它实际上来自我。我可以使标记永久只读,但这只会阻止写入特定的标记。坏的参与者可能复制数据并模拟标记。我怎样才能防止这种情况

我可以用我的私钥加密数据,然后用我的公钥签名,这意味着它肯定来自我,只有我才能读取它。但是是什么阻止了人们简单地复制数据和模拟标签呢


是否每个标签都有唯一的东西可以读取和记录,并且不能更改,并且对所有标签和所有时间都是唯一的?我可以记录下来,以确保标签是我写的

大多数NFC标签都有一个标签特有的硬件UID。例如,Mifare Ultralight标记有一个7字节的UID,唯一地标识该标记。可以将其视为类似于网卡的MAC地址

此UID为只读,制造后无法更改。如果阅读特定标记的规范,可以看到它的位置。对于Mifare Ultralight,这7个字节位于前几页。请参见此处的规范:

有一个名为NFC Tag Info的免费android应用程序,我用它浏览标签的页面结构,并查找标签的UID:

仍有人可以在自定义卡上模拟UID。如果您制作了自己的自定义卡,您可以包括某种验证算法,您可以向其发送随机数据,并从中获得预期的响应。但是标准标签很容易被冒充

嗨,本,谢谢。当你说“制作你自己的定制卡”时。你的意思是实际创建硬件标签吗?或者简单地向卡中写入自定义算法。如果是后者,什么会阻止人们阅读算法并在他们的标签上复制它?不,我的意思是实际上自己创建硬件标签。它确实使事情变得更复杂。我所看到的大多数(如果不是全部的话)标记只是保存数据,并且可以被复制。如果有人要准确复制标签,他们需要自己的自定义可编程标签。如果您希望Android设备本身就是标签,此解决方案将无法工作,因为每次读取时UID都会发生变化。您指向NXP页面的链接不再有效。你能更新一下吗?