Mifare1的安全性主要指卡中數(shù)據(jù)的安全性,要求卡中的數(shù)據(jù)不能被非法修改或竊聽。數(shù)據(jù)的安全性主要使用加密技術(shù)來保證,加密技術(shù)有兩個(gè)關(guān)鍵因素:加密算法和密鑰。現(xiàn)代加密技術(shù)的一大特點(diǎn)是加密算法公開,如果加密密鑰和解密密鑰相同,則稱為對(duì)稱加密,密鑰不能公開;如果加密和解密密鑰不同,則可以公開其中一個(gè)密鑰(公鑰),另一個(gè)不公開(私鑰)。加密破解的實(shí)質(zhì)就是如何獲得不公開的密鑰。
Mifare1中使用了一種稱為“crypto1”的加密算法。遺憾的是,這是一種不公開的私有算法。就本人目前所知,這種算法先在卡片與讀寫器之間進(jìn)行三次相互認(rèn)證,認(rèn)證成功才能進(jìn)行對(duì)卡片的讀、寫、加值、減值等后續(xù)操作,這些操作使用“crypto1”加密流。三次認(rèn)證的原理與步驟我們是清楚的,但具體采用了什么算法卻不得而知,可以確定的是,認(rèn)證過程中使用了4字節(jié)卡序列號(hào)、6字節(jié)密碼和1字節(jié)數(shù)據(jù)塊號(hào)。
不公開的好處是卡片市場(chǎng)的排他性,而且過去的事實(shí)已經(jīng)證明,NXP的這種做法在市場(chǎng)上取得了巨大的成功。不公開算法的潛在危害也同樣顯而易見,這種沒有經(jīng)過黑客們攻擊考驗(yàn)的加密算法,它的市場(chǎng)應(yīng)用是如此的大,一旦算法被破解,所有使用這種卡片的應(yīng)用都將受到威脅。
不幸的是,自2007年以來,Mifare Classic芯片逐步被破解。國外已經(jīng)有高手,即使在不需要使用合法讀卡器的情況下,一種新的攻擊能夠在300次查詢內(nèi)獲得任意扇區(qū)的密鑰;如果使用合法讀卡器,另外一種攻擊獲得密鑰僅需要40毫秒。而且網(wǎng)上已經(jīng)有“crypto1”的原理圖及相關(guān)破解源代碼。
面對(duì)M1卡片這些現(xiàn)實(shí)的風(fēng)險(xiǎn),作為用戶應(yīng)該怎么辦呢?其實(shí)也大可不必驚慌。任何一種安全算法都不會(huì)是100%安全的,任何一種算法都有一種叫做“窮舉”的方法可以破解它。一方面“crypto1”雖然被破解,但通常需要一定的破解硬件設(shè)備,并要求破解者有一定的專業(yè)水平;另一方面對(duì)于多數(shù)小金額應(yīng)用的卡片來說,破解的風(fēng)險(xiǎn)與收益也是破解者必須考慮的因素;更重要的是,我們不能一棵樹上吊死,可以采取其他的方法協(xié)助“crypto1”算法用于防破解,比如一卡一密、對(duì)M1卡進(jìn)行升級(jí)、將M1卡聯(lián)網(wǎng)使用等。
Mifare1的應(yīng)用如此廣泛,而當(dāng)初設(shè)計(jì)時(shí)它的序列號(hào)只有4個(gè)字節(jié),為了保證卡序列號(hào)的全球唯一性,所有的卡號(hào)都占滿了也就能生產(chǎn)40多億張,這樣的容量很難滿足日益增長的對(duì)Mifare1的龐大需求,于是市場(chǎng)上開始出現(xiàn)7字節(jié)序列號(hào)的M1卡。用戶在使用這些7字節(jié)M1卡片時(shí)會(huì)經(jīng)常會(huì)遇到一種現(xiàn)象,就是各個(gè)廠家生產(chǎn)的7字節(jié)M1卡片有時(shí)差異巨大,讀寫器無法兼容。
出現(xiàn)這種情況主要有兩個(gè)原因。一是經(jīng)典M1卡片只有4字節(jié)卡序列號(hào),只需要一個(gè)層次(cascade)的防沖突循環(huán)就可以選中卡片;而7字節(jié)序列號(hào)的M1卡片需要兩個(gè)層次的防沖突循環(huán)才能選中卡片。但是有些卡片并不需要第二層的防沖突循環(huán),如果進(jìn)行了第二層的防沖突循環(huán)反而會(huì)出錯(cuò)。
另一個(gè)問題出在卡認(rèn)證階段。前面說了,卡認(rèn)證需要4字節(jié)卡序列號(hào)、6字節(jié)密碼和1字節(jié)數(shù)據(jù)塊號(hào)參加。但是新卡片有7字節(jié)卡序列號(hào),到底讓哪4個(gè)字節(jié)參加認(rèn)證呢?目前主要有3種情況,一是使用88H和卡號(hào)的前3個(gè)字節(jié)(也就是第一層防沖突得到的卡序列號(hào)數(shù)據(jù))參加認(rèn)證,第二種情況是使用卡號(hào)前4個(gè)字節(jié)參加認(rèn)證,最后一種情況是使用卡號(hào)的后4個(gè)字節(jié)(也就是第二層防沖突得到的卡序列號(hào)數(shù)據(jù))參加認(rèn)證。
所以對(duì)于讀寫器的開發(fā)者來說如果你的讀寫器不能讀取7字節(jié)卡序列號(hào)的M1卡片,可以從是否需要第二層防沖突選擇和到底哪4個(gè)字節(jié)的序列號(hào)參加認(rèn)證兩個(gè)方面考慮。
審核編輯 黃宇
-
RFID
+關(guān)注
關(guān)注
391文章
6421瀏覽量
241964 -
射頻識(shí)別
+關(guān)注
關(guān)注
8文章
592瀏覽量
39454
發(fā)布評(píng)論請(qǐng)先 登錄
cy7c65211A多路通信錯(cuò)誤的原因?
IDENTA加入恩智浦MIFARE合作伙伴計(jì)劃
用于 Cat M1/1/NTN 和 WCDMA HSDPA/HSUPA/HSPA(頻段 1、2、4、5、8)和 CDMA(頻段類別 0、1、6、15)的多模式、多頻段功率放大器模塊 skyworksinc

DS28E16 1-Wire SHA-3安全認(rèn)證器技術(shù)手冊(cè)

用于LEGIC Advant UID/序列號(hào)的NFC讀卡器,為什么無法讀取這些卡的UID/序列號(hào)?
如何使用PN7制作具有5180字節(jié)UID的身份驗(yàn)證mifare plus?
DS2411硅序列號(hào)技術(shù)手冊(cè)

具有128位序列號(hào)和增強(qiáng)型寫保護(hù)的4Mb SPI串行EEPROM

評(píng)論