Mifare Plus 卡片使用詳細說明
摘要
Mifare Plus
1. MIFARE PLUS 卡片簡(jiǎn)介
MIFARE PLUS 卡片現在主要有如下幾個型号: PLUS SE(1KB), PLUS X(2KB/4KB), PLUS S(2KB/4KB), PLUS EV1(2KB/4KB), PLUS EV2(2KB/4KB)幾大類别。卡号也分别有4字節/7字節兩種。他們分爲4個安全等級: Security Level0(SL0), Security Level1(SL1), Security Level2(SL2), Security Level3(SL3), 初始出廠(chǎng)安全等級爲SL0, 支持ISOL3/L4指令, 明文非授權方式寫入初始密碼及其初始數據, 支持切換到更高層(céng)級指令。MIFARE PLUS 卡片支持從低的安全層(céng)級切換到更高的安全層(céng)級,且切換不可逆,不能從高的安全層(céng)級切換到較低的安全層(céng)級。每個型号的卡片會存在一定的差異, 例如:
MIFARE PLUS-X 和 MIFARE Plus-S(SE))的差異(yì)如下:

MIFARE Plus-S不支持SL2,因此寫入 Level2 switch Key (密鑰地址9002h)會失敗(bài)。根據這一點(diǎn),在個人化階段就可以判斷卡類型是Plus-X還是Plus-S。
MIFARE PLUS卡可以兼容MIFARE CLASSIC卡(S50/S70)。它的激活分爲兩種,一個是14443-3的激活(ISO_L3激活),一個是激活是14443-4激活(ISO_L4激活)。每個層級激活方式和具體操作有關,詳細信息需參(cān)考官方手冊(cè)。
MIFARE PLUS 卡片存儲(chǔ)結構(gòu)如下:


以容量1k 的mifare plus SE卡爲例,它有16個扇區,每個扇區4塊,每塊16字節,支持等級SL0,SL1,SL3, 所以初始化時候,需要寫入0x9003和0x9004的升級密鑰,以及從(cóng)0x40000到0x4001F的16個扇區的密鑰。然後調用提交初始化指令。需要注意的是,初始化前的激活方式ISO_L3和ISO_L4激活都可以。區别就是ISO_L3激活後,指令底層(céng)與MIFARE CLASSIC卡通信方式一樣。ISO_L4激活後,通信方式與CPU卡或者說智能卡一樣,用半雙工方式通信。提交初始化後,PLUS卡的等級爲SL1.
SL1兼容全部的MIFARE CLASSIC指令,包括讀寫值,讀寫塊,認證。但是需要注意的是,如果想要使用MIFARE CLASSIC卡的指令,那麽應該使用ISO_L3激活,否則就會報(bào)錯(cuò)。MIFARE CLASSIC卡就是經典的MIFARE 卡,指令比較簡單,
SL1升級到SL3,需要對塊0x9003 KEY進行認證。認證分爲第一次認證和後續認證,這裏使用第一次認證,一般對數據塊扇區讀(dú)寫前進行第一次認證,切換扇區重新認證,對非數據庫扇區讀(dú)寫需要進行後續認證,比如修改某個扇區的密鑰塊。認證流程可以參(cān)考NXP的資料,雙方對随機數進行加密和解密驗證。需要注意的是,在認證指令前的激活方式應該是ISO_L4激活。
升級到SL3後(hòu)就可以執行PLUS卡的加密讀(dú)寫指令。
2. MIFARE PLUS 卡片層(céng)級切換(huàn)和操作說明
以下操作以北京友我科技有限公司YW-607HC爲硬件及軟件基礎進行講解,且讀卡器軟件版本需要在V2.7或者以上。該軟件支持MIFARE PLUS S/X 層級切換和每個層級的讀寫卡操作, 支持MIFARE PLUS EV1/EV2 層級切換及 SL0/SL1對卡的操做,暫時不支持對SL2/SL3對卡片的讀寫操作。

Connect Reader: 連(lián)接讀(dú)卡器,操作卡片前需要連(lián)接讀(dú)卡器.
Disconnect: 斷(duàn)開讀(dú)卡器連接
SearchCard: ISO_L3激活卡片,可以獲(huò)取卡片卡号信息
ResetActiveCard:ISO_L4激活卡片,可以獲(huò)取卡号及複(fù)位信息
2.1 Security Level0 操作
Level 0 是 Plus CPU 卡的出廠(chǎng)模式,用戶不能直接使用,必須經過升級操作升級到相應 等級才允許用戶使用。 點(diǎn)擊界面切換按鈕Level 0,将操作界面切換到Plus CPU卡的Level 0操作界面。界面 如圖 下所示:

列表中列出瞭(le)待寫入的默認(rèn)密鑰.
Modify All Keys For: 修改列表中所有的密鑰爲該按鈕後面框裏面的密鑰,也可以單(dān)獨到列表框中單(dān)獨修改某個密鑰,密鑰長(zhǎng)度爲16字節.
Write All Default Key: 将列表框中的密鑰寫入到卡片中,列表框Status欄位顯示綠色,表示該地址密鑰寫入成功,若爲紅色表示該列表框密鑰寫入失敗(bài),失敗(bài)原因可能是該卡不支持該地址密鑰,假如所有密鑰都寫 入失敗(bài)則可能是該卡不是MIFARE PLUS卡片,或者MIFARE PLUS 卡片已經不在LEVEL0層(céng)級,在我們執行SWITCH之前必須先執行完該按鈕功能.
Switch TO Level1: 将卡片切換(huàn)到LEVEL1, 在執行該(gāi)功能前,需先寫入默認密鑰
Switch To Level3: 一鍵将卡片從(cóng)LEVEL0切換到LEVEL3,實際裏面包括多安全層(céng)級轉換.
以PLUS S 2K卡爲(wèi)列:

2.2 Security Level1 操作
Level 1 卡片兼容MIFARE S50/S70 卡片,執行 ISO_L3激活卡片,可以完全兼容MIFARE CLASSIC 卡片讀(dú)寫(xiě)操作. 界面如下:

在執(zhí)行ISO_L3 激活後(hòu),可以執(zhí)行如下操作:
Read Sector: 讀(dú)扇區(qū)操作
Write Sector: 寫(xiě)扇區(qū)操作
當(dāng)讓兼容S50/S70的所有操作,包括錢包值塊(kuài)操作,這裏軟件未列出.
在執(zhí)行ISO_L4激活卡後(hòu),可以執(zhí)行如下操作:
SwitchToLevel2: 切換(huàn)到Level2
SwitchToLevel3: 切換到Level3,假如卡片在Level2層(céng)級,也通過這個按鈕切換到Level3,在Level3就沒單(dān)獨列出按鈕切換.
切換之前要保證切換到每個層(céng)級的密鑰正確(què).
2.3 Security Level2 操作
Level2層級是介於(yú)Level1和Level3的安全層級,在ISO_L3激活卡片後,除瞭(le)卡片授權不同外,其他兼容MIFARE CLASSIC 卡片操作(S50/S70),ISO_L3激活卡片後,需要先進行AES授權,然後才能用MIFARE CLASSIC 中扇區授權指令,然後才能兼容指令讀寫卡,值塊操作,且MIFARE PLUS 在該層級增加2個指令是:扇區讀和扇區寫.界面如下:

若有從(cóng)LEVEL2切換到LEVEL3, 請用Level1層(céng)級中SwitchToLevel3按鈕切換.
2.4 Security Level3 操作
Level3 層(céng)級是PLUS 最高安全層(céng)級,該層(céng)級所卡片操作都需要ISO_L4激活卡片,所有讀(dú)寫操作都需要AES Key執行授權,操作界面如下:

2.5 修改卡片相關配置
主要用於(yú)修改各個(gè)密鑰塊,主要包括Master Key, configuration Key,Level3 switch key, 各個(gè)扇區的AES key,操作界面如下圖:


