Mifare卡安全

问题描述 投票:0回答:2

几天前,我连接了一个USB非接触式智能卡读卡器,并通过USB Sniffer工具嗅探了该USB端口。之后,我在读卡器上放了一个1k Mifare卡并读取1个字节。

我看一下嗅探工具输出,并了解密钥(读取密钥和写密钥)传输到卡而不加密!

现在我想知道这个机制真的很安全??!如果我改变我的读者的API,使其表现得像一个Mifare卡,并将其移动到原始阅读器附近,并通过我的电脑嗅探两个读卡器之间的通信,我不能获得密钥?!

这是否有可能使读者在另一个非接触式读卡器领域表现得像一张mifare卡?


更新:据我所知,在发送authenticate命令之前必须在mifare卡上加载密钥!如下所示,我在卡上加载密钥! [默认情况下是FF FF FF FF FF FF]。

同时我嗅到了我的ACRA122U连接的USB端口!如下所示,密钥是简单发送的!

我做了什么错了?!

注:Hedayat小姐(我的学院)也证实了这一点! :))

smartcard rfid mifare smartcard-reader contactless-smartcard
2个回答
2
投票

您没有嗅探读卡器和MIFARE Classic卡之间的通信,而是在PC和读卡器之间(USB CCID)。

为了与MIFARE Classic卡通信,您必须将访问密钥加载到阅读器上。这就是“加载验证密钥”命令(在屏幕截图中)的作用。对于ACR122U,密钥存储在阅读器的易失性存储器中。其他读卡器也可能支持非易失性密钥插槽(请参阅读卡器文档和非接触式存储卡上的PC / SC规范部分)。

稍后,当您发出身份验证命令时,阅读器将执行MIFARE Classic相互身份验证,这基本上是质询响应身份验证和密钥协商协议。因此,读卡器不会将实际密钥发送到卡上,而是从卡中接收随机数,并使用密钥对随机数进行加密,并将该加密的随机数发送给卡。然后,卡将使用相同的密钥对随机数进行解密,从而验证读取器是否使用了正确的密钥。


2
投票

不,密钥不是简单传输的,因为在读取一个字节的情况下不需要传输任何密钥,具体取决于它们可能需要应用的配置。我不知道,你的嗅探器输出告诉你什么。

不,Mifare(经典)并不安全,但这是一个在SO上得到充分回答的单独问题。总结:密钥太短,因此使用的加密算法太弱。

不,读者不能伪装成卡片;即使它可以:你似乎认为,键是广播的,然后你可以简单地从空中抓住它们,这远远不是标记。

© www.soinside.com 2019 - 2024. All rights reserved.