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