卡仿真Mifare

时间:2013-07-11 13:20:22

标签: android nfc mifare apdu hce

基于this article,我试图在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命令来自哪里..

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

1 个答案:

答案 0 :(得分:2)

你想要做什么是不可能的...... @NikolayElenkov所做的是模仿ISO 7816-4兼容卡。 MIFARE Classic不符合ISO 7816-4标准(它不使用APDU命令和响应进行通信)。事实上,它甚至不符合ISO 14443-4标准:它在ISO 14443-3之上使用专有加密。

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