由Mifare 1卡破解帶來的危險以及應對方法
文章出處:http://xianjuhong.com 作者:同方股份有限公司 袁育博 人氣: 發(fā)表時間:2011年09月29日
今年年初以來,一個消息的傳出震驚了整個IC卡行業(yè)。最近,德國和美國的研究人員成功地破解了NXP的Mifare1芯片的安全算法。Mifare1芯片主要用于門禁系統(tǒng)訪問控制卡,以及一些小額支付卡,應用范圍已覆蓋全球。因此這項“成果”引起了不小的恐慌,因為一個掌握該破解技術的小偷可以克隆任何一個門禁卡,從而自由進出政府機關大樓或公司辦公室;可以批量的克隆或偽造各種儲值卡大肆購物而不被發(fā)現(xiàn)。國內(nèi)發(fā)行的這種卡,估計有幾億張在投入使用,它的安全性涉及到眾多的運營單位和持卡人的利益。
近日,有研究人員宣布MIFARE 系列產(chǎn)品的安全性存在薄弱環(huán)節(jié),在他的研究室里,通過研究讀寫器和卡之間的通信數(shù)據(jù),找到了這種卡的加密算法和認證通信的協(xié)議,并有兩種方法可以得到MIFARE class邏輯加密卡的分區(qū)密碼。通過這種方法,破壞者可以使用非常廉價的設備在40ms內(nèi)就可以輕易獲得一張M1卡的密碼。面對這種災難性的事實,有些公司宣稱他們有辦法彌補這一漏洞,用戶可以繼續(xù)使用這種卡片而不必擔心。那么,M1卡的破解真的有那么大的破壞力么,目前的一些“安全”手段真的有效么。回答這一問題,我們需要先從了解Mifare1系列卡片的結構和安全認證機制開始。
Mifare系列非接觸IC卡是荷蘭Philips公司的經(jīng)典IC卡產(chǎn)品(現(xiàn)在Philips公司IC卡部門獨立為NXP公司,產(chǎn)品知識產(chǎn)權歸NXP所有)。它主要包括在門禁和校園、公交領域廣泛使用的Mifare one S50(1K字節(jié))、S70(4K字節(jié)),以及簡化版Mifare Light和升級版MifarePro 4種芯片型號。這幾種芯片中,除Mifare Pro外都屬于邏輯加密卡,即內(nèi)部沒有獨立的CPU和操作系統(tǒng),完全依靠內(nèi)置硬件邏輯電路實現(xiàn)安全認證和保護的IC卡。其主要結構如圖所示:
在Mifare 1芯片結構中,Authentication & Access Control 認證與訪問控制單元用于完成卡片的密碼認證,控制各個數(shù)據(jù)扇區(qū)的讀寫權限;Crypto Unit數(shù)據(jù)加密單元就是其認證和加解密運算的算法引擎。Mifare系列IC卡是NXP公司的專利產(chǎn)品,它采用了一種NXP特有的加密算法來完成認證和加解密運算。由于這種算法是NXP特有且不公開的算法,Mifare系列IC卡采用了一種特殊的手段來實現(xiàn)在不公開算法的前提下完成認證,即將同樣的算法引擎放置在NXP出產(chǎn)的專用Mifare讀寫基站芯片中(如常用的RC500和RC531),認證過程由基站芯片“代替”用戶系統(tǒng)與Mifare芯片之間完成。這一認證過程就是常常被Mifare系列芯片宣傳的“三重認證”,其實質(zhì)就是基站芯片與Mifare芯片之間相互傳遞隨機數(shù)以及隨機數(shù)的密文,通過對隨機數(shù)密文的解密比對實現(xiàn)對卡片的認證。Mifare芯片所引以為豪的“數(shù)據(jù)加密傳輸”也是由基站芯片加密后傳送給Mifare芯片的。這個過程可以簡化為下圖所示:
如圖所示,M1卡所宣稱的三次認證及輸入加密傳輸?shù)劝踩匦灾傅氖荕1卡與RC500等NXP基站芯片(或兼容芯片)之間的認證和加密。由于NXP對M1卡與基站芯片間的通訊協(xié)議和加密認證機制嚴格保密,因此從這里進行破解難度很大。然而不幸的是,最終這個算法和機制還是被破解了。研究人員找出了算法和通訊協(xié)議中的漏洞,可以輕易地通過幾十次試探攻擊(約40ms)就能夠獲得一張卡片的所有密鑰。事實上,在Mifare芯片的兼容產(chǎn)品出現(xiàn)的那一天起,這個秘密就已經(jīng)不是秘密了,因為完全兼容,實際就意味著已經(jīng)掌握了這個算法。
在Mifare1卡片安全問題暴露后,一些公司公開宣稱已經(jīng)有了解決的辦法,其中的法寶就是所謂“一卡一密”,也就是每一張卡片的每一個扇區(qū)的密鑰都不相同,使用CPU卡裝載系統(tǒng)根密鑰,根據(jù)Mifare1卡的唯一序列號計算子密鑰,防止一張卡片被破解而影響整個系統(tǒng)。其實這種解決方案在Mifare1卡破解之前就已經(jīng)出現(xiàn)。那么,一卡一密真的能解決Mifare1的安全問題么,我們還是要從Mifare1卡的認證機制著手進行分析。
我們已經(jīng)知道,Mifare1卡的認證實質(zhì)上是卡與基站芯片之間的認證。常用的RC500等基站芯片已經(jīng)為業(yè)界廣為熟知,它的接口和通訊協(xié)議都是公開的。在基站與Mifare1卡認證前,需要通過LoadKey命令將Mifare1卡的密碼裝載到基站芯片中。這一過程是一個明文寫入的過程,是由終端設備(如讀卡器)主控單片機傳送給RC500的,并且單片機對RC500的命令傳輸是非加密的。如下圖所示:
這樣就可以通過截獲單片機與RC500之間的通訊來獲取M1卡的密鑰。而要做到這一點,一個使用過RC500的對單片機技術稍微了解的技術人員都能夠輕而易舉的實現(xiàn)。
那么,在讀卡器中安裝SAM卡,通過SAM卡計算卡片密鑰實現(xiàn)一卡一密是否就安全了呢。想法非常美好,然而結果卻非人所愿,這樣的做法不但沒有增加安全,反而更加加大了安全漏洞。如下圖所示:
如圖所示,M1卡通過SAM卡實現(xiàn)一卡一密本質(zhì)上是將SAM卡內(nèi)的主密鑰通過對M1卡的卡號分散后得到M1卡的子密鑰,但是這個子密鑰仍然要通過終端單片機明文傳送給RC500芯片完成對M1卡的認證。更為嚴重的是SAM卡送出的是Mifare1卡的明文密碼,黑客只要獲得一張SAM卡,就能夠通過它獲得所有卡片的密碼,連破解手段都不用。
此外,在M1卡消費密碼被泄露的情況下,即使采用了聯(lián)機充值的方法,也無法保障運營商的利益,因為在此情況下,盜竊者使用偽造的M1卡,完全可以不用系統(tǒng)的充值密碼,而直接采用M1卡的缺省密碼對卡片進行“充值”,然后用真實的消費密碼在終端上消費。在此情況下,即使采用了黑名單機制也難以避免運營商和授卡商戶遭受損失,因為黑名單機制是一種事后防范機制,防止的是再次發(fā)生同一偽卡的交易,而在M1卡小額消費日益普及的今天,盜竊者只需將偽卡使用一次,就足以獲得比一張偽卡成本高得多的收益。
這樣,我們可以假設一下幾種情況:
外部人員作案:
作案人盜取一個正式使用的終端設備,通過線路截獲方式獲取單片機發(fā)送給RC500的密鑰,從而破解M1卡的密鑰。
作案人盜取終端內(nèi)的PSAM卡,通過向PSAM卡發(fā)送密鑰分散指令的方式得到每一張M1卡的子密鑰。
內(nèi)部人員作案:
終端設備的開發(fā)人員利用工作之便盜取終端內(nèi)的M1卡密鑰明文或經(jīng)過單片機發(fā)送給RC500的M1卡密鑰明文。
發(fā)卡機構工作人員利用工作之便截取PC機通過M1卡讀卡器發(fā)送給M1卡的密鑰明文?;蛑苯硬僮鱌SAM卡盜取密鑰明文。
系統(tǒng)開發(fā)人員利用工作之便盜取PSAM卡密鑰明文。
無論哪種可能,都會對整個系統(tǒng)的安全造成致命的影響。實質(zhì)上,這種一卡一密的做法是借用了CPU卡認證機制中的一卡一密概念,然而它在有意無意間忽略了一個非常重要的事實,即CPU卡和邏輯加密卡是完全不同的兩種卡片,它們的認證機制完全不同。CPU卡由于內(nèi)部具有CPU處理器和操作系統(tǒng)COS,認證的過程完全是在用戶卡與SAM卡之間進行的,認證過程中傳送的是隨機數(shù)和密文,讀卡器基站芯片只是一個通訊通道;認證過程不能復制;使用的算法是公開算法,其安全性是基于CPU卡對密鑰的保護而非對算法的保護。密鑰在用戶卡和SAM卡內(nèi)都不能讀出,而且密鑰的安裝是通過密文進行,系統(tǒng)上線后即使是發(fā)卡人員和開發(fā)人員也無法得到密鑰明文,從根本上保證了系統(tǒng)的安全性。正是由于意識到了M1卡潛在的安全性問題,建設部才多次開會推廣使用CPU卡。雙界面CPU卡更是由于其應用的靈活性和對金融規(guī)范的支持得到了各方的贊賞。
當然,一個系統(tǒng)的安全性不僅僅取決于采用了哪種卡片和哪種安全機制,而且通過系統(tǒng)設計上的安全手段也能夠彌補一些卡片安全上的不足。一個產(chǎn)品的安全性不能依賴于某一個方面的單個安全,更多的應從一個系統(tǒng)的整體的邏輯上去完善安全、把可能出現(xiàn)的不安全特征通過整體的系統(tǒng)完善起來.針對原有不安全的系統(tǒng)進行改造。例如在建設部的IC卡規(guī)范中對于M1卡的一卡一密就規(guī)定了在SAM中計算卡片密碼前必須校驗卡中的MAC認證碼,這在很大程度上降低了盜用SAM卡的可能性。然而遺憾的是大部分M1卡應用系統(tǒng)并沒有采用類似的補救手段,而且這種手段也不能完全杜絕克隆卡、偽造卡的使用。黑名單等防范手段雖然有效,但畢竟屬于事后防范,難以從根本上解決問題。特別是在當前Mifare1卡片被破解的背景下,簡單的采用打補丁的方法更是一種掩耳盜鈴的行為。
對于一個IC卡應用系統(tǒng)而言,卡片的安全性好比一座摩天大廈的基礎,針對一種卡片的安全機制必定制定相應的保護措施以保護這個基礎。而當卡片的安全性發(fā)生了根本的變化時,原有的保護措施已經(jīng)失去了效果,整個大廈的基礎發(fā)生了動搖,此時再采取補丁措施,無異于給大廈地面上的結構進行加固,措施再好也難以改變基礎動搖這一事實。根本的解決之道就是重新打牢基礎,從根基上完善系統(tǒng)的安全保護體系。
同MIFARE1卡相比,非接觸CPU卡是一種真正意義上的“智能卡”。CPU卡內(nèi)集成電路中包括中央處理器(CPU)、只讀存儲器(ROM)、隨機存取存儲器(RAM)、電可擦除可編程只讀存儲器(EEPROM)等主要部分,猶如一臺超小型電腦。具有信息量大、防偽安全性高、可脫機作業(yè),可多功能開發(fā)等優(yōu)點。CPU卡采用強大而穩(wěn)定的安全控制器,增強了卡片的安全性,而非接觸傳輸接口又能滿足快速交易的要求(如公交的快速通過)。CPU卡采用了多種芯片級防攻擊手段,基本上不可偽造;CPU卡所特有的內(nèi)外部認證機制以及以金融IC卡規(guī)范為代表的專用認證機制,能夠完全保證交易的合法性;在認證和交易過程中,CPU密鑰是不在線路上以明文出現(xiàn)的,它每次的送出都是經(jīng)過隨機數(shù)加密的,而且因為有隨機數(shù)的參加,確保每次傳輸?shù)膬?nèi)容不同,保證了交易的安全性。在認證和交易過程中所使用的密鑰都是在安全的發(fā)卡環(huán)境中產(chǎn)生并密文安裝到SAM卡和用戶卡中,整個過程密鑰不外露。CPU卡的應用防火墻功能可以保障同一張卡中不同應用的安全獨立性。對安全性要求較高的金融行業(yè)都以CPU卡作為下一代銀行卡的標準。采用非接觸式CPU卡可以杜絕偽造卡、偽造終端、偽造交易,最終保證了系統(tǒng)的安全性。
同時,非接觸CPU卡的大容量存儲空間又可以滿足預期的大金額消費應用所要求的更多客戶信息的存儲。而這時安全就不僅僅是存儲在卡內(nèi)的電子貨幣的安全,還包括個人信息的安全,非接觸式CPU卡的安全機制可以為此提供良好的保障。
由于非接觸式CPU卡具有以上無可比擬的優(yōu)點,非常適用于電子錢包、電子存折、公路自動收費系統(tǒng)、公共汽車自動售票系統(tǒng)、社會保障系統(tǒng)、IC卡加油系統(tǒng)、安全門禁等等眾多的應用領域。非接觸CPU卡將逐步取代邏輯加密卡而成為IC卡的主要選型。在M1卡被破解的形勢下,采用非接觸CPU卡取代M1卡是解決M1卡危機的最終解決方案。
MIFARE卡被破解的消息在今年年初被披露以來,一石激起千層浪。眾多Mifare的用戶開始擔心自己系統(tǒng)的安全。通過系統(tǒng)的分析M1卡破解的原理及帶來的影響,我們可以得出結論:M1卡確實已經(jīng)不再安全,基于M1卡的系統(tǒng)的安全基礎已經(jīng)動搖,我們必須采取行動,選擇適當?shù)漠a(chǎn)品替換M1卡,重新加固即將倒塌的安全基石。
同MIFARE1卡相比,非接觸CPU卡是一種真正意義上的“智能卡”。CPU卡內(nèi)集成電路中包括中央處理器(CPU)、只讀存儲器(ROM)、隨機存取存儲器(RAM)、電可擦除可編程只讀存儲器(EEPROM)等主要部分,猶如一臺超小型電腦。CPU卡采用了多種芯片級防攻擊手段,基本上不可偽造;CPU卡所特有的內(nèi)外部認證機制以及以金融IC卡規(guī)范為代表的專用認證機制,能夠完全保證交易的合法性;在認證和交易過程中,CPU密鑰永遠不會外露,它每次送出的都是經(jīng)過加密的隨機數(shù)。在認證和交易過程中所使用的密鑰都是在安全的發(fā)卡環(huán)境中產(chǎn)生并密文安裝到SAM卡和用戶卡中,整個過程密鑰不外露。CPU卡的應用防火墻功能可以保障同一張卡中不同應用的安全獨立性。對安全性要求較高的金融行業(yè)都以CPU卡作為下一代銀行卡的標準。采用非接觸式CPU卡可以杜絕偽造卡、偽造終端、偽造交易,最終保證了系統(tǒng)的安全性。
由于非接觸式CPU卡具有以上無可比擬的優(yōu)點,非常適用于電子錢包、電子存折、公路自動收費系統(tǒng)、公共汽車自動售票系統(tǒng)、社會保障系統(tǒng)、IC卡加油系統(tǒng)、安全門禁等等眾多的應用領域。非接觸CPU卡將逐步取代邏輯加密卡而成為IC卡的主要選型。
以Mifare1為代表的非接觸邏輯加密卡與CPU卡相比,非接觸邏輯加密卡與非接觸CPU卡同屬非接觸IC卡,但這兩種卡片是完全不同檔次的卡。
以下對MIFARE I卡與非接觸CPU卡做一比較:
通過分析,我們可以看出,使用CPU卡代替Mifare1卡是徹底解決Mifare卡危機的根本途徑。然而,對于數(shù)量眾多的Mifare1卡應用系統(tǒng),我們?nèi)绾文軌蛞宰钚〉耐度胱羁斓乃俣韧瓿蛇@一升級轉(zhuǎn)換呢,是否需要將系統(tǒng)推倒重來呢。其實大可不必。上文我們講到,一個系統(tǒng)的安全不僅僅依賴于采用了哪一種卡。一個卡系統(tǒng)往往由多個子系統(tǒng)構成,其中受到Mifare1卡破解影響的只是直接與卡相關的很少的幾個部分,我們只需要對這些部分進行改造升級就完全可以保障我們系統(tǒng)的安全穩(wěn)定運行。
以安防門禁系統(tǒng)為例,在一個門禁管理系統(tǒng)中,主要包括以下幾個部分
管理中心是一個軟件平臺,負責負責整個系統(tǒng)的協(xié)調(diào)、指揮工作,主要功能包括:規(guī)定和調(diào)整系統(tǒng)設置要求并實行;負責監(jiān)控主要的進入口和公共場所;負責處理門禁系統(tǒng)發(fā)生的警報;負責提供對事件記錄;負責發(fā)卡注冊。
門禁控制單元是硬件平臺,是類似于通道管理性質(zhì)的各類控制器,如:門鎖控制器、電梯控制器、停車場控制器和考勤終端等(可擴充功能),都屬于門禁控制單元。門禁控制單元是管理中心設置的各種管理手段的執(zhí)行設備。
門禁系統(tǒng)中門禁單元設備的標準配置如下圖。
讀卡器是門禁控制系統(tǒng)當中的卡識別設備,將用戶刷卡信息傳送給控制器和管理系統(tǒng),供控制系統(tǒng)進行判斷處理。
電門鎖、閘機等是門禁系統(tǒng)的執(zhí)行機構,執(zhí)行對門、通道的開關控制。
在整個門禁管理系統(tǒng)中,門禁IC卡是安全管理的基礎核心。此次M1卡被破解,正是將門禁系統(tǒng)的最核心的安全控制打破,使門禁卡的復制偽造成為可能。要解決門禁系統(tǒng)的安全問題,需將M1卡替換為CPU卡。而整個系統(tǒng)中與卡片有直接交互的只有兩個地方:后臺系統(tǒng)中的發(fā)卡子系統(tǒng)和最前端的識別系統(tǒng),即門禁讀卡頭。對于絕大多數(shù)門禁系統(tǒng)而言,門禁讀卡頭只是將卡片卡號讀取出來通過控制器送到后臺系統(tǒng),系統(tǒng)通過卡號及后臺授權情況進行控制。這樣我們在進行系統(tǒng)升級改造時,只需要改造門禁讀卡頭和發(fā)卡子系統(tǒng),使之能夠識別讀寫CPU卡,并對CPU卡完成認證,其他系統(tǒng)和軟件都無需改動,即可快速完成從M1卡到CPU卡的遷移。
具體方案如下:
1、更換門禁讀卡器,使用支持CPU卡的門禁讀卡器。由于門禁讀卡器與控制器之間的通訊接口有統(tǒng)一的規(guī)范,這種更換改造很容易實現(xiàn)。
2、對原系統(tǒng)中的發(fā)卡子系統(tǒng)進行改造,更換讀卡器,使之能夠發(fā)CPU卡。由于各個門禁廠商的軟件平臺都不同,因此這項改造需要原門禁系統(tǒng)廠商配合完成。
3、如果直接改造發(fā)卡系統(tǒng)軟件有困難,可以開發(fā)新的CPU卡發(fā)卡子系統(tǒng),與原系統(tǒng)后臺數(shù)據(jù)庫對接,實現(xiàn)CPU卡發(fā)卡。此種方式實現(xiàn)相對簡單,但需要了解原系統(tǒng)的數(shù)據(jù)庫接口,仍需要原廠商的一些支持。不過,許多門禁管理軟件支持直接輸入卡號的發(fā)卡方式,這就為系統(tǒng)改造創(chuàng)造了非常便利的條件。
與門禁系統(tǒng)相似,城市公交一卡通系統(tǒng)雖然更為復雜,但系統(tǒng)中的清分清算等主要部分都并不與IC卡直接關聯(lián)。如圖所示:
在一卡通系統(tǒng)中,與卡直接相關的子系統(tǒng)包括:發(fā)卡子系統(tǒng)、消費終端、卡務管理子系統(tǒng);對發(fā)卡子系統(tǒng)的改造主要是將初始化M1卡流程改造為初始化CPU卡;卡務管理子系統(tǒng)的改造也相對簡單,實現(xiàn)CPU卡讀寫操作即可;決定改造是否成功的關鍵是消費終端的升級改造,不僅需要能夠讀寫CPU卡,而且要將M1卡的交易流程升級為CPU卡標準交易流程,對系統(tǒng)開發(fā)商而言需要有足夠的對CPU卡應用的經(jīng)驗和理解。
同方股份有限公司是國內(nèi)知名的智能卡應用開發(fā)服務和產(chǎn)品提供商,是國內(nèi)最早從事CPU卡研制和應用開發(fā)的公司之一。早在1998年清華同方研發(fā)中心與清華大學計算機系共同成立的智能卡COS研究小組開發(fā)的《金融IC卡操作系統(tǒng)ZTCOS1.0》就獲得了中國人民銀行銀行卡檢測中心頒發(fā)的《中國金融集成電路卡PBOC1.0檢測證書》。公司緊跟世界最先進的IC卡技術,是國內(nèi)在ISO14443 TypeB非接觸標準產(chǎn)品和應用開拓者和領先者。公司承建的沈陽城市一卡通系統(tǒng)是國內(nèi)最早最大規(guī)模的城市CPU卡一卡通應用項目,至今雙界面CPU卡實際發(fā)卡量已經(jīng)突破350萬張,在國內(nèi)城市通卡領域有著巨大的影響力。同方股份有限公司依托在非接觸智能卡多年的開發(fā)和應用經(jīng)驗,致力于城市一卡通應用系統(tǒng)開發(fā)和相關產(chǎn)品研制,已形成了非接觸CPU卡、讀卡終端在內(nèi)的完整的非接觸CPU卡產(chǎn)品體系。公司開發(fā)的雙界面CPU卡已獲得了《中國金融集成電路卡PBOC2.0檢測證書》。面對非接觸智能卡應用蓬勃發(fā)展的機遇,同方股份有限公司正深入開拓市場,加速新產(chǎn)品的開發(fā)研制,助力于中國非接觸智能卡行業(yè)的騰飛。