Mifare DESFire(MF3 IC D40/D41,本文以D40為例)遵守14443 TypeA協議,卡內的數據以文件形式存儲,所以有人認為它是準CPU卡,主要用于安全性要求較高的非接觸式領域。
與普通MF1 S50不同,DESFire的數據傳輸速率不僅支持最基本的106Kbps,還支持212Kbps和424Kbps;其數據傳送的加密方法也不再使用已經被破解的Crypto1加密流,而是使用更為安全的DES/3DES、AES加密,至少DES/3DES和AES已經經過了多年的公開檢驗,至今還沒有被破解。
DESFire的全球唯一序列號是7字節,支持ISO14443-4和ISO7816的部分協議。7字節的序列號要使用兩個防沖突循環才能讀出,第一輪防沖突循環卡片返回層級代碼0x88, UID的前3個字節SN0-SN2和校驗碼BCC0,第二輪防沖突循環返回UID的后4個字節SN3-SN6和校驗碼BCC1,SN0為制造商的ID號,NXP產品固定為16進制的04H.
DESFire有4K字節的非易失存儲空間,典型的寫時間為2ms(1ms擦除,1ms編程)。存儲空間的組織采用柔性文件系統,D40卡上可同時最多支持28種應用,每種應用用一個3字節的應用標識符(AID)表示,每種應用可以設置序號為0-13的最多14組不同的密碼,每種應用下可建立最多16個文件.
卡片支持5種不同的文件類型,每種類型使用一個字節的類型編碼來表示。文件類型及其編碼如下:
每種應用應用與讀寫器之間的通訊加密等級根據安全性不同分為3類,使用一個字節的通訊設置碼來表示。通訊設置碼的各個bit代表的意義如下表所示:
明文模式最簡單,就是直接傳送沒有加密的真值,一旦被截獲,黑客看到的就是真實信息;
帶有MAC校驗的明文傳輸也好不到哪里去,它是把要傳送的明文用CBC模式進行DES/3DES加密,把最后一步的8字節加密輸出結果中的前4字節稱為MAC校驗,加在要傳送的明文后面,前面的明文還是明文,只不過加了個校驗防止出錯而已;
只有第三種完全DES/3DES密文通訊才對得起“DESFire”這個名字,這是真正的加密通訊。所有要傳送的密文先用CRC16進行校驗,然后明文連同CRC16校驗作為一個整體使用CBC模式的DES/3DES加密,傳送的是加密后的密文。黑客即使截獲了也看不懂,前提是不知道DES密碼。
前面敘述時經常用DES/3DES這個組合,那到底是DES還是3DES呢,二者的運算量和加密強度可是有天壤之別啊!這一點DESFire卡片采用了自動識別的方法。DES和3DES密鑰的長度都是16字節,如果前8字節與后8字節相同,則自動被作為DES運算;反之,如果前8字節與后8字節不同,則自動被作為3DES運算。
D40卡片的默認出廠設置為密鑰全0,單DES操作。
DESFire卡片可以為應用中的文件設置不同的讀寫權限,讀寫權限的意思就是讀或寫文件時是否需要驗證密碼,以及驗證哪一組密碼。讀寫權限使用2個字節的編碼來表示,2個字節共16個bit,每4個bit表示一種權限類型:
前面說了,每種應用可以有編號為0-13的最多14組不同的密碼,而4位二進制數可以表示0-15共16種組合。當4位權限碼的值為0-13時,表示執行相應的讀寫操作要驗證權限碼的值指向的一組密碼;當權限碼的值為14時,表示不用驗證任何密碼可直接讀寫;權限碼的值為15時表示凍結,就是不論什么條件也不讓讀寫了。
DESFire的卡片命令可以分為6大類:
(1)ISO14443-3 命令
(2)ISO14443-4 命令
(3)安全相關命令
(4)卡片級命令
(5)應用層命令
(6)數據操作命令
這些命令的理解并不難,DESFire卡片的真正難點在于3次握手認證并生成段密碼的過程,這部分內容我將用專門的一篇博文敘述。
審核編輯 黃宇
-
RFID
+關注
關注
390文章
6374瀏覽量
240992 -
射頻識別
+關注
關注
8文章
588瀏覽量
39376
發布評論請先 登錄
評論