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