加密 NFC/RFID 标签?

7
这真的让我头疼... 我正在寻找一个NFC/RFID标签,它需要满足以下要求:
  1. 实现对发送到标签的数据进行加密和/或加密签名,以便读者可以验证标签。我不在意标签是否尝试验证读者,

  2. 被Android手机和标准的NFC库广泛支持,

  3. 以安全方式存储密码(在配置保险丝被烧断后,读取将是不可能的)。

我不在乎标签上存储的数据类型,也不需要使用NDEF消息。我不关心所使用的加密是对称的还是非对称的。我想做的只是向标签发送一些数据,并希望它使用共享密钥对该数据进行加密或签名,并将其发送回手机。然后我的代码将执行相同的功能,并将结果与标签的响应进行比较,以验证标签。

我拥有Atmel CryptoRF *标签的样品,虽然它们可能可以做到我需要的大部分功能,但它们无法被我唯一拥有的Android手机正确识别。使用适当的技术列表条目过滤“android.nfc.action.TECH_DISCOVERED”,手机会响铃,但没有任何反应。Atmel的技术支持不仅没用(因为我浪费了时间去问他们从未回答过的问题),而且还更糟糕。Logcat看起来像:

  • 09-04 21:03:53.474 1012-1012/? D/NativeNfcTag: Connect Failed - status = 146
  • 09-04 21:03:53.474 1012-1012/? E/NFCJNI: doDisconnect() - Target already disconnected

我没有看到任何先前的条目表明Android曾经识别过标签。

这似乎是一种非常简单,明显和必需的标签类型,它必须存在于某个地方。

NFCGuy或其他人有什么想法吗?

谢谢!

* Atmel CryptoRF数据表中提到以下内容,这可能对确定这些东西是否能够被Android手机读取有所帮助:

  • ISO/IEC 14443-2:2001 Type B符合
  • ISO/IEC 14443-3:2001 Type B Compliant防冲突协议

1
看起来你的设备不支持这个标签/卡。如果你有另一个支持NFC的设备,可以尝试测试一下。最好使用更广泛使用的标签,比如Mifare Ultralight-C或Desfire(AES版本)。 - Nikolay Elenkov
1个回答

3
Mifare Desfire可以满足您的需求,但有一点需要注意:
API级别上不支持加密。您需要编写代码来执行所有身份验证和加密操作,并直接与Desfire标签通信。Android API提供了通过低级访问函数进行操作的工具。加密功能本身可以在中找到。
与其他带有加密的标签不同,有关执行身份验证和加密所需步骤的文档可在互联网上找到。

1
太好了,谢谢。有时我觉得ISO的人在选择他们的编号方案时有点虐待狂...我已经拿到了DESFire EV1和MiFare Ultralight C的样品。希望可以让它们工作起来。加密方面没问题。一旦我有一张能与手机通信的卡片,这将很容易。很高兴NXP使用标准加密而不是Atmel选择的自制“安全性通过混淆”。 - Matt Redmond
1
NXP在他们自己的Crypto1加密算法被破解并且无法掩盖之后,才开始使用标准的加密算法。 - Nikolay Elenkov

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