2013-07-11 129 views
2

根據this article,我試圖仿效mifare卡管理android上的APDU。根據APDU接收,我的應用程序應該回答正確的APDU,從而模擬mifare的行爲。卡仿真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命令來自哪裏..

有人可以幫助我解決這個「bug」嗎?

回答

2

你試圖做什麼是不可能的...... @NikolayElenkov做了什麼是模仿ISO 7816-4兼容卡。 MIFARE Classic不符合ISO 7816-4標準(它不使用APDU命令和響應進行通信)。事實上,它甚至不符合ISO 14443-4標準:它使用ISO 14443-3之上的專有加密技術。

通訊看起來像來自讀卡器端的APDU這一事實,是因爲您的讀卡器在傳遞數據並在「虛擬」APDU中包裝數據之前剝去所有加密。這樣,MIFARE卡可以與只能處理ISO 7816-4兼容卡的軟件一起使用。

+0

只寫這個評論,希望你可能有一分鐘看看我關於NFCF的問題http://stackoverflow.com/q/17990618/2474385謝謝。 –

+0

親愛的@NFC傢伙,你可以看看我的問題:http://stackoverflow.com/questions/32842718/selecting-df-dedicated-file-in-s-mart-card-return-error-6981? –