基于this article,我试图在android上模拟管理APDU的mifare卡。根据APDU接收,我的应用程序应该回答正确的APDU,从而模拟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命令来自哪里..
有人可以帮我解决这个“错误”吗?
答案 0 :(得分:2)
你想要做什么是不可能的...... @NikolayElenkov所做的是模仿ISO 7816-4兼容卡。 MIFARE Classic不符合ISO 7816-4标准(它不使用APDU命令和响应进行通信)。事实上,它甚至不符合ISO 14443-4标准:它在ISO 14443-3之上使用专有加密。
通信看起来像读者端的APDU这一事实是因为您的读取器在传递数据之前剥离所有加密并将该数据包装在“虚拟”APDU中。这样,MIFARE卡可以与只能处理ISO 7816-4兼容卡的软件一起使用。