几天前,我连接了一个USB非接触式智能卡读卡器,并通过USB嗅探器工具嗅探到了USB端口。之后,我在读取器上放了一张1k的Mifare卡,读取1字节。
我看看嗅探器工具的输出,并了解到密钥(读密钥和写密钥)转移到卡没有任何加密!
现在我想知道这个机制真的安全吗?!如果我改变我的阅读器API,使它的行为像一个Mifare卡,并移动它接近原来的读卡器,并嗅探两个读卡器之间的通讯通过我的电脑,我不能得到钥匙吗?!
这是否可能使阅读器在另一个非接触式读取器领域中表现得像一张mifare卡?
更新:据我所知,在发送身份验证命令之前,必须在卡上加载密钥!如你所见,我把钥匙装在卡片上!默认情况下,它是FF FF FF FF FF FF。

同时,我嗅探了我的ACRA122U连接到的USB端口!正如你在下面看到的,钥匙是以普通的方式发送的!

我的所作所为有什么问题吗?!
注: Hedayat小姐(我的学院)也证实了这一点!:)
发布于 2014-09-21 20:27:48
您不是在嗅探读取器和MIFARE经典卡之间的通信,而是在PC和读取器之间(USB CCID)之间的通信。
为了与MIFARE经典卡通信,您必须将访问密钥加载到读取器上。这就是“加载身份验证密钥”命令(在屏幕截图中)所做的。在ACR122U的情况下,密钥被存储到读取器上的易失性内存中。其他读取器也可能支持非易失性密钥插槽(请参阅读取器文档和PC/SC规范中关于非接触式存储卡的部分)。
稍后,当您发出身份验证命令时,读取器将执行MIFARE经典相互身份验证,这基本上是一种挑战响应身份验证和密钥协商协议。因此,读取器将收到来自卡片的随机数,用密钥加密随机数,并将加密后的随机数返回给卡,而不是向卡发送实际密钥。然后,卡将用相同的密钥解密随机数,从而验证读取器是否使用了正确的密钥。
发布于 2014-08-16 21:43:16
不,键不是普通的传输,因为在读取一个字节的场景中不需要传输任何键,这取决于它们可能需要被应用的的配置。我不知道,你的嗅探器输出告诉你什么。
不,Mifare (经典)是不安全的,但这是一个单独的问题得到了充分的回答。总结:密钥太短,因此使用的密码算法太弱。
不,一个读者不能伪装成卡片;即使它可以:你似乎认为,钥匙是广播的,然后你可以简单地从空气中抓取它们,这离标记很远。
https://stackoverflow.com/questions/25340198
复制相似问题