繁体   English   中英

在Android上使用主密钥进行Mifare Desfire对称身份验证

[英]Mifare Desfire symmetric authentication with master key on android

我想使用Mifare Desfire芯片进行产品认证,芯片将嵌入到产品中。 因此,我正在寻找一种NFC解决方案,使得克隆芯片几乎不可能(或尽可能地难以实现)。

我使用Desfire时想到的当前解决方案是使用支持的对称身份验证来拥有芯片的内存锁定部分,我们将存储产品信息。 然后我们将创建多样化的密钥,使用主密钥,芯片的UID和一些元数据,并使用该多样化的密钥进行对称认证(有关它的更多信息可以在这里找到。

现在,问题在于对称身份验证必须在Android应用程序上完成,这意味着我们必须将主密钥存储在Android应用程序上,或通过网络将其发送到应用程序的潜在恶意版本。 所以我想知道是否有人建议如何保护主密钥或完全不同的身份验证解决方案,以防止使用Mifare Desfire或其他类似的NFC芯片进行芯片克隆。

主密钥在应用程序中绝对没有办法安全。

相反,仅使用您的应用程序将使用密钥加密的已接收随机数发送到您的服务器,并使用您的服务器中的主密钥实施该过程以解码此信息,以便您可以将带有新随机数的响应加密回您的应用程序。

通过身份验证后,您还可以发送和接收要写入的信息。

这样您就可以确保您的密钥和您处理的信息不会暴露给任何人。

UPDATE

既然你使用的是android,那么请相信我,你需要这个库,这样你就可以在服务器上进行验证而不会出现0x1C错误(ILLEGAL COMMAND)。 当身份验证中的步骤2延迟超过100毫秒时,会发生此错误。

https://gist.github.com/Thorbear/f7c48e90d3e71bde13cb

希望这可以帮助任何人解决这个问题

您需要访问安全元素。 根据您的使用情况,您可以使用外部(如在USB中)安全元件加密狗。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM