【问题标题】:Cryptographic NFC/RFID Tag?加密 NFC/RFID 标签?
【发布时间】:2013-09-05 03:19:33
【问题描述】:

这可要了我的命...我正在尝试找到一个 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:连接失败 - 状态 = 146
  • 09-04 21:03:53.474 1012-1012/? E/NFCJNI: doDisconnect() - 目标已经断开

我没有看到任何以前的条目表明该标签曾被 Android 识别。

这似乎是一种如此简单、明显和需要的标记类型,它必须存在于某个地方。

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

谢谢!

*Atmel CryptoRF 数据表说明以下内容,这可能有助于确定这些内容是否可以被 Android 手机读取:

  • 符合 ISO/IEC 14443-2:2001 B 类标准
  • 符合 ISO/IEC 14443-3:2001 类型 B 的防冲突协议

【问题讨论】:

  • 您的设备似乎不支持此标签/卡。如果您有另一台支持 NFC 的设备进行测试,可能会更好地获得更广泛使用的标签,例如 Mifare Ultralight-C 或 Desfire(AES 版本)。

标签: android nfc rfid


【解决方案1】:

Mifare Desfire 会按照您的要求做,除了一件事:

API 级别不提供加密支持。

您必须编写执行所有身份验证和加密的代码,并直接与 Desfire 标签对话。 Android API 通过低级访问函数IsoDep.transceive 提供了执行此操作的工具。加密函数本身可以在javax.crypto.spec

中找到

与其他带有加密文档的标签不同,在 Internet 上提供了进行身份验证和加密所需的步骤。

【讨论】:

  • 太好了,谢谢。有时我认为 ISO 的人在选择编号方案时有点虐待狂……我已经收到了 DESFire EV1 和 MiFare Ultralight C 的样品。希望可以使这项工作。得到它的加密。一旦我得到一张可以与电话交谈的卡,那将很容易。很高兴 NXP 使用标准加密而不是 Atmel 选择的本土“通过默默无闻的安全”。
  • NXP 是在他们自己的 Crypto1 被破解并且未能掩盖它之后才开始使用标准加密货币。
猜你喜欢
  • 1970-01-01
  • 2015-12-25
  • 1970-01-01
  • 1970-01-01
  • 2016-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多