2

根据这篇文章,我正在尝试在 android 上模拟管理 APDU 的 mifare 卡。根据 APDU 接收,我的应用程序应该回答正确的 APDU,从而模拟 mifare 行为。

使用 rfidiot.py,阅读 mifare 卡给我:

>  FF CA 00 00 00
<  CD EA 7D 2B 90 0 
    Tag ID: CDEA7D2B
    ATR: 3B8F8001804F0CA000000306030001000000006A

  Setting Mifare Key A: FFFFFFFFFFFF

  Authenticating to sector 00 with Mifare Key A (FFFFFFFFFFFF)

>  FF 82 20 00 06 FF FF FF FF FF FF
<  []  90 0 
>  FF 88 00 00 60 00
<  []  90 0 
    OK

  Dumping data blocks 01 to 01:

>  FF 88 00 01 60 00
<  []  90 0 
>  FF B0 00 01 01
<  []  6C 10
>  FF B0 00 01 10
<  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 0 
    01: 00000000000000000000000000000000 ................

通过我的应用程序模拟卡片,我得到了一个错误的说法:

>  FF CA 00 00 00
<  08 F0 82 65 90 0 
    Tag ID: 08F08265
    ATR: 3B80800101

  Setting Mifare Key A: FFFFFFFFFFFF

  Authenticating to sector 00 with Mifare Key A (FFFFFFFFFFFF)

>  FF 82 20 00 06 FF FF FF FF FF FF
<  []  90 0 
>  FF 88 00 00 60 00
<  []  90 0 
    OK

  Dumping data blocks 01 to 01:

>  FF 88 00 01 60 00
<  []  90 0 
>  FF B0 00 01 01
<  []  69 81
    Failed: Command incompatible with file structure

FF B0 00 01 01 APDU 命令出现错误。而且我不知道6981 APDU命令来自哪里..

有人可以帮助我解决这个“错误”吗?

4

1 回答 1

2

您尝试做的事情是不可能的……@NikolayElenkov 所做的是模拟符合 ISO 7816-4 的卡。MIFARE Classic 不符合 ISO 7816-4(它不使用 APDU 命令和响应进行通信)。事实上,它甚至不符合 ISO 14443-4:它在 ISO 14443-3 之上使用专有加密。

通信从阅读器端看起来像 APDU 的事实是,因为您的阅读器在传递数据并将该数据包装在“虚拟”APDU 中之前剥离了所有加密。这样,MIFARE 卡可以与只能处理 ISO 7816-4 兼容卡的软件一起使用。

于 2013-07-12T21:15:56.920 回答