首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mifare在android上使用主密钥的对称认证

Mifare在android上使用主密钥的对称认证
EN

Security用户
提问于 2016-12-21 21:45:49
回答 1查看 1.5K关注 0票数 2

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

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

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

EN

回答 1

Security用户

回答已采纳

发布于 2016-12-21 23:10:50

密钥不需要驻留在应用程序上。

当您请求身份验证时,您将得到一个用密钥加密的随机数字。这个随机数,你可以用应用程序发送回服务器,让服务器用密钥进行身份验证。然后,服务器将向您发送一个新的加密数据包,其值为加密值,您只需转发到芯片。然后,您将从芯片得到一个响应,并将其发送回服务器。

在此之后,您使用的单元格可能包含一些产品信息,与MAC“签名”。此产品信息和MAC也作为最后阶段发送到服务器。只有在成功完成所有步骤之后,产品才是真正的。

如果使用任何库来进行NFC通信,则必须以手动模式运行这些库才能以这种方式进行身份验证。

可以创建一个流氓应用程序,它将读取结果数据并复制包含MAC的产品信息,然后将其插入到将接受任何身份验证的假DESFire EV1芯片中。这就是为什么服务器必须验证返回的随机值,该值成功解密到服务器最初选择的值,但移到左边。(请阅读有关如何进行身份验证的实现详细信息)。

通过使用无法写入芯片的密钥,还可以防止某人更新真正的芯片,以包含有关比芯片所在的产品更昂贵的产品的信息。

也要小心,有人可能会把芯片从一个真正的产品到一个假产品,然后保留真正的产品本身,并出售假产品。使用防篡改芯片,这将停止工作,一旦他们被从产品中移除。或者将产品绑定到需要验证应用程序的服务上,这样欺诈者拥有的真正产品没有芯片就毫无用处。

票数 3
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/146048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档