引 言
隨著非接觸邏輯加密卡的不斷應(yīng)用,,其技術(shù)的不足之處也日益暴露,難以滿足更高的安全性和更復(fù)雜的多應(yīng)用的需求,。2008年,,互聯(lián)網(wǎng)上公布了破解Mifare Classic IC芯片(即M1芯片)密碼的方法;德國研究員亨里克·普洛茨(Henryk Plotz)和弗吉尼亞大學(xué)計(jì)算機(jī)科學(xué)在讀博士卡爾斯滕·諾爾(Karsten Noh1)成功地破解了恩智浦半導(dǎo)體的Mirare經(jīng)典芯片的安全算法,;德國Virginia大學(xué)和荷蘭Radboud大學(xué)兩個獨(dú)立研究小組分別證實(shí)了Mi-fare芯片的易受攻擊性,,并發(fā)表了破解芯片加密算法的論文以及演示了實(shí)際操作芯片的破解過程。
破解事件公開后,,荷蘭內(nèi)務(wù)部大臣特霍斯特在接受媒體采訪時表示,,全球多達(dá)10億張IC卡中所使用的一項(xiàng)技術(shù)可輕易破解,。此次破解風(fēng)波經(jīng)過國內(nèi)媒體的轉(zhuǎn)載報道后,在我國引起了軒然大波,,城市公用事業(yè)IC卡應(yīng)用作為非接觸式邏輯加密卡的應(yīng)用大戶,,不得不讓我們靜下心來認(rèn)真思考城市公用事業(yè)IC卡系統(tǒng)的安全問題及未來走向。如果掌握了破解技術(shù),,不法分子可以很低的經(jīng)濟(jì)成本對采用該芯片的各類“一卡通”,、門禁卡進(jìn)行非法充值或復(fù)制,這將帶來很大的社會安全隱患,。因此,,非接觸CPU智能卡技術(shù)正成為一種技術(shù)上更新?lián)Q代的選擇,用CPU卡替換邏輯加密卡的時代已到來,。
1 非接觸邏輯加密卡Mifare卡的安全性問題
Philips公司(現(xiàn)NXP)的Mifare 1卡片,,在非接觸卡應(yīng)用領(lǐng)域占有全球80%的市場份額,是目前非接觸智能卡的工業(yè)標(biāo)準(zhǔn),,也成為ISO14443-A的工作草案,。
Mifare的安全認(rèn)證依賴于每個扇區(qū)獨(dú)立的KEYA和KEYB的校驗(yàn),可以通過扇區(qū)控制字對KEYA和KEYB的不同安全組合,,實(shí)現(xiàn)扇區(qū)數(shù)據(jù)的讀寫安全控制,。其個人化也比較簡單,主要包括數(shù)據(jù)和各扇區(qū)KEYA,、KEYB的更新,,在其間所有敏感數(shù)據(jù)(包括KEYA和KEYB)都是直接以明文的形式更新的。
KEYA和KEYB的校驗(yàn)機(jī)制只能解決卡片對終端的認(rèn)證,,而無法解決終端對卡片的認(rèn)證,,即存在俗稱為“偽卡”的風(fēng)險。
Mifare的密鑰就是一個預(yù)先設(shè)定的固定密碼,,無論用什么方法計(jì)算密鑰,,最后一定要和原先寫入的固定密碼一致,就可以對被保護(hù)的數(shù)據(jù)進(jìn)行讀寫操作,。因此無論是一卡一密的系統(tǒng)還是統(tǒng)一密碼的系統(tǒng),,經(jīng)過破解都可以實(shí)現(xiàn)對非接觸邏輯加密卡的解密。有種觀點(diǎn)認(rèn)為,,只要是采用了一卡一密,、實(shí)時在線系統(tǒng),或非接觸邏輯加密卡的ID號,,就能避免密鑰被解密,。其實(shí),非接觸邏輯加密卡被解密就意味著M1卡可以被復(fù)制,,使用在線系統(tǒng)盡管可以避免被非法充值,,但是不能保證非法消費(fèi),,即復(fù)制一張一樣ID號的M1卡,就可以進(jìn)行非法消費(fèi)?,F(xiàn)在的技術(shù)使用FPGA就可以完全復(fù)制,。基于這個原理,,Mifare的門禁卡也是不安全的,。
2 非接觸CPU卡的特點(diǎn)與優(yōu)勢
非接觸CPU卡,也稱智能卡,,卡內(nèi)的集成電路中帶有微處理器CPU,、存儲單元(包括隨機(jī)存儲器RAM、程序存儲器ROM(Flash),、用戶數(shù)據(jù)存儲器EEPROM)以及芯片操作系統(tǒng)COS,。裝有COS的CPU卡相當(dāng)于一臺微型計(jì)算機(jī),不僅具有數(shù)據(jù)存儲功能,,同時具有命令處理和數(shù)據(jù)安全保護(hù)等功能,。
非接觸CPU智能卡與非接觸邏輯加密卡相比,有以下特點(diǎn):
①芯片和COS的安全技術(shù)為CPU卡提供了雙重的安全保證,;
②擁有獨(dú)立的CPU處理器和芯片操作系統(tǒng),;
③對計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)要求較低,可實(shí)現(xiàn)脫機(jī)操作,,可實(shí)現(xiàn)真正意義上的一卡多用,,每個應(yīng)用之間相互獨(dú)立,并受控于各自的密鑰管理系統(tǒng),;
④交易中自動保證數(shù)據(jù)的完整性(防拔),;
⑤可以更靈活地支持各種不同的應(yīng)用需求,更安全的設(shè)計(jì)交易流程,;
⑥獨(dú)立的保密模塊——使用相應(yīng)的實(shí)體SAM卡密鑰實(shí)現(xiàn)加密,、解密以及交易處理,從而完成與用戶卡之間的安全認(rèn)證,。
非接觸CPU智能卡的優(yōu)勢是:
①先進(jìn)性,。CPU卡可以作為銀行的金融卡使用,代表當(dāng)前IC卡應(yīng)用的最高安全等級,,正成為IC卡應(yīng)用中的主流產(chǎn)品,。
②規(guī)范性。支持符合ISO7816-3標(biāo)準(zhǔn)的T=0,、T=1通信協(xié)議,符合《中國金融集成電路(IC)卡規(guī)范》,、《中國金融集成電路(IC)卡應(yīng)用規(guī)范》,,支持符合銀行規(guī)范的電子錢包,、電子存折功能。
③兼容性,。由于有中國人民銀行的統(tǒng)一規(guī)范及嚴(yán)格檢測,,CPU卡具有很好的兼容性、安全性,。芯片和COS的安全技術(shù)為CPU卡提供了雙重的安全保證,;支持DES、TripleDES等加密算法,,支持線路加密,、線路保密功能,防止通信數(shù)據(jù)被非法竊取或篡改,,使用過程密鑰實(shí)現(xiàn)加密,、解密。
④可擴(kuò)展性,??ㄆС侄喾N容量選擇,如2 KB,、4 KB,、8 KB、16KB,、32KB的EEPROM空間,。CPU卡從卡結(jié)構(gòu)到卡容量可以很容易擴(kuò)展到多種應(yīng)用,可以與銀行聯(lián)合,,實(shí)現(xiàn)真正意義上的一卡多用,。
⑤安全性。與邏輯加密卡相比,,由于智能卡內(nèi)部具有CPU芯片,,在具有數(shù)據(jù)判斷能力的同時,也具備了數(shù)據(jù)分析處理能力,,因此智能卡可以隨時區(qū)分合法和非法讀寫設(shè)備,,并且由于有了CPU芯片,具備數(shù)據(jù)運(yùn)算能力,,還可以對數(shù)據(jù)進(jìn)行加密解密處理,,因此具有非常高的安全性。CPU卡是在將EEPROM芯片封裝在卡片上的同時,,將微處理器芯片(CPU)也封裝在里面,。這樣,EEPROM的數(shù)據(jù)接口在任何情況下都不會與IC卡的對外數(shù)據(jù)線相連接,。外部讀寫設(shè)備只能通過CPU與IC卡內(nèi)的EEP-ROM進(jìn)行數(shù)據(jù)交換,,在任何情況下都不能再訪問到EEP-ROM中的任何一個單元,。
外部讀寫設(shè)備在與智能卡進(jìn)行數(shù)據(jù)交換時,首先必須發(fā)指令給CPU,,由CPU根據(jù)其內(nèi)部的ROM中存儲的卡片操作系統(tǒng)(COS)對指令進(jìn)行解釋,,并進(jìn)行分析判斷。在確認(rèn)讀寫設(shè)備的合法性后,,允許外部讀寫設(shè)備與智能卡建立連接,,之后的數(shù)據(jù)操作仍然要由外部讀寫設(shè)備發(fā)出相應(yīng)的指令,并用CPU對指令進(jìn)行正確解釋,,允許外部讀寫設(shè)備和智能卡中的數(shù)據(jù)存儲區(qū)(RAM)進(jìn)行數(shù)據(jù)交換,。數(shù)據(jù)交換成功后,在CPU的控制下,,利用智能卡中的內(nèi)部數(shù)據(jù)總線,,再將內(nèi)部RAM中的數(shù)據(jù)與EEPROM中的數(shù)據(jù)進(jìn)行交換。這樣就實(shí)現(xiàn)了對智能卡EEPROM中數(shù)據(jù)的安全保護(hù),,因此具有非常高的安全性,。
3 非接觸CPU卡FM1208的特點(diǎn)與性能
FM1208是復(fù)旦微電子股份有限公司設(shè)計(jì)的單界面非接觸CPU卡芯片,產(chǎn)品支持,。ISO14443-A協(xié)議,,硬件DES協(xié)處理器,內(nèi)置8 KB的EEPROM,。FM1208的特色是能夠兼容現(xiàn)有廣泛使用的非接觸邏輯加密卡,,將非接觸邏輯加密卡(Mirare算法)和符合銀行標(biāo)準(zhǔn)的接觸式CPU卡的功能合二為一。
特點(diǎn):通信協(xié)議為ISO14443-A,;MCU指令兼容8051,;支持106 kbps數(shù)據(jù)傳輸速率;Triple-DES協(xié)處理器,;程序存儲器32K×8位ROM,;數(shù)據(jù)存儲器8K×8位EEPROM;256×8位iRAM,;384×8位xRAM,;低壓檢測復(fù)位;高低頻檢測復(fù)位,;EEPROM滿足10萬次擦寫指標(biāo)和10年數(shù)據(jù)保存指標(biāo),。
FM1208典型處理時間:
◆識別一張卡時間為3 ms(包括復(fù)位應(yīng)答和防沖突);
◆EEPROM擦寫時間為2.4 ms,;
◆典型交易過程<350 ms,。
FM1208的安全機(jī)制:
◆有反電源分析模塊;
◆有高低頻檢測復(fù)位模塊,芯片工作頻率超出檢測范圍自動復(fù)位,;
◆ROM反逆向提取,,存儲器數(shù)據(jù)加密。FM1208功能框圖如圖1所示,。
4 非接觸CPU卡FM1208的COS
由于CPU卡具有很高的安全性及一張卡支持多種應(yīng)用的特點(diǎn),所以IC卡家族中CPU卡的使用范圍正日益擴(kuò)大,。類似一臺計(jì)算機(jī),,CPU卡內(nèi)也有CPU、存儲器和輸入輸出接口,,所以在應(yīng)用中CPU卡也必然需要操作系統(tǒng),。上海復(fù)旦微電子股份有限公司成功地開發(fā)了自主版權(quán)的CPU卡操作系統(tǒng)——FMCOS(FMSH Card Operating System)。該操作系統(tǒng)符合ISO7816系列標(biāo)準(zhǔn)及《中國金融集成電路(IC)卡規(guī)范》,,適用于保險,、醫(yī)療保健、社會保障,、公共事業(yè)收費(fèi),、安全控制、證件,、交通運(yùn)輸?shù)戎T多應(yīng)用領(lǐng)域,,特別是在金融領(lǐng)域。
FMCOS詳細(xì)規(guī)定了電子錢包,、電子存折和磁條卡功能(Easy Entry)3種基本應(yīng)用,。
FMCOS特點(diǎn)如下:
①支持Single DES、Triple DES算法,,且可自動根據(jù)密鑰的長度選擇Single DES,、Triple DES算法。
②支持線路加密,、線路保護(hù)功能,,防止通信數(shù)據(jù)被非法竊取或篡改。
③支持在一張卡上實(shí)現(xiàn)多個不同的應(yīng)用:可建立三級目錄,。
④支持電子錢包功能,,錢包大小可由用戶自行設(shè)定。
⑤支持多種文件類型,,包括二進(jìn)制文件,、定長記錄文件、變長記錄文件,、循環(huán)文件,、錢包文件。
⑥支持ISO7816-3:T=0(字符傳送)通信協(xié)議。
⑦滿足銀行標(biāo)準(zhǔn):符合《中國金融集成電路(IC)卡規(guī)范》,。
⑧防插拔功能:交易處理過程中非正常拔出的卡片自動恢復(fù),。
FMCOS由傳輸管理、文件管理,、安全體系,、命令解釋4個功能模塊組成。
①傳輸管理:按ISO7816-3標(biāo)準(zhǔn)監(jiān)督卡與終端之間的通信,,保證數(shù)據(jù)正確地傳輸,,防止卡與終端之間通信數(shù)據(jù)被非法竊取和篡改。
②文件管理:將用戶數(shù)據(jù)以文件形式存儲在EEP-ROM中,,保證訪問文件時的快速性和數(shù)據(jù)安全性,。
③安全體系:安全體系是FMCOS的核心部分,它涉及對卡的鑒別與核實(shí),,以及對文件訪問時的權(quán)限控制機(jī)制,。
④命令解釋:根據(jù)接收到的命令檢查各項(xiàng)參數(shù)是否正確,執(zhí)行相應(yīng)的操作,。
5 系統(tǒng)開發(fā)基礎(chǔ)及芯片選型
(1)射頻基站芯片的選擇和使用
基站芯片用于非接觸射頻卡與中央處理器之間的信息通信,。以下芯片均可以實(shí)現(xiàn)對FM1208等符合ISO14443 TYPA標(biāo)準(zhǔn)的CPU卡的讀寫,可以參考相關(guān)文檔,。本設(shè)計(jì)主要以卡片為主,,所以對于基站芯片的具體應(yīng)用,可以參考相關(guān)文檔,。
◆Philips系列芯片:RC500,、RC522、RC531,、RC632,。
◆復(fù)旦系列芯片:FM1702N、FM1702SL,,,、FM1715N、FM1725N,。
◆TI公司的基站芯片:RI-R6C-001A,、TRF7960。
◆EM公司基站芯片:EM4094,、EM4294,。
(2)單片機(jī)的選擇和使用
對于非接觸射頻卡的信息處理,根據(jù)功能和速度的要求,,可以選擇不同的方案,。各種CPU芯片各有優(yōu)缺點(diǎn),。
◆8051單片機(jī):價格低廉,入門簡單,,貨源充足,。
◆AVR單片機(jī):價格適中,速度快,,外設(shè)豐富,。
◆ARM:功能強(qiáng)大,速度快,,可運(yùn)行RTOS,。
(3)ISO14443-3、ISO14443-4
這兩部分是學(xué)習(xí)和操作非接觸CPU卡的核心,。
①ISO/IEC14443-3規(guī)定了鄰近卡(PICCs)進(jìn)入鄰近耦合設(shè)備(PCDs)時的輪尋,通信初始化階段的字符格式,,幀結(jié)構(gòu),,時序信息。REQ和ATQ命令內(nèi)容,,從多卡中選取其中一張的方法,,初始化階段其他必需的參數(shù)。這部分規(guī)定同時適用于A型PICCs和B型PICCs,。
②ISO/IEC14443-4規(guī)定了非接觸半雙功塊的傳輸協(xié)議,,并定義了激活和停止協(xié)議的步驟。這部分傳輸協(xié)議同時適用于A型卡和B型卡,。
(4)IS07816-4
這一部分是學(xué)習(xí)和操作,,SAM的基礎(chǔ),其中規(guī)定了:由接口設(shè)備至卡以及相反方向所發(fā)送的報文,、命令和響應(yīng)的內(nèi)容,;在復(fù)位應(yīng)答期間卡所發(fā)送的歷史字節(jié)的結(jié)構(gòu)及內(nèi)容;當(dāng)處理交換用的行業(yè)間命令時,,在接口處所看到的文件和數(shù)據(jù)的結(jié)構(gòu),;訪問卡內(nèi)文件和數(shù)據(jù)的方法;定義訪問卡內(nèi)文件和數(shù)據(jù)的權(quán)利的安全體系結(jié)構(gòu),;安全報文交換的方法,;訪問卡所處理算法的方法(本標(biāo)準(zhǔn)不描述這些算法)。
6 SAM卡在系統(tǒng)中的應(yīng)用
根據(jù)應(yīng)用方式,,SAM卡在系統(tǒng)中的應(yīng)用可分為:
①硬密鑰,,即在終端機(jī)具中安裝SAM卡座,所有的認(rèn)證都是由安裝在SAM卡座中的SAM卡進(jìn)行運(yùn)算的,。這樣在終端機(jī)具維修時,,只要取出SAM卡座中的SAM卡,,這臺終端機(jī)具就是空的了。所以,,所有的銀行設(shè)備都采用SAM卡的認(rèn)證模式,。
②軟密鑰,即終端機(jī)具中沒有SAM卡座,,這個密鑰的運(yùn)算實(shí)際上是由終端機(jī)具完成的,,這樣客戶的密鑰就等于存在終端機(jī)具中,廠家拿回終端機(jī)具維修時,,極易造成密鑰流失,。
結(jié) 語
Mifare算法的破解,給城市公用事業(yè)IC卡系統(tǒng)安全敲響了警鐘,。在科技化,、信息化飛速發(fā)展的當(dāng)今時代,只有不斷創(chuàng)新,、不斷提高城市公用事業(yè)IC卡系統(tǒng)的安全系數(shù)及技術(shù)水平,,才能有更高、更遠(yuǎn)的發(fā)展,,也才能為國家的信息發(fā)展作出貢獻(xiàn),。非接觸CPU卡智能卡技術(shù)正成為一種技術(shù)上更新?lián)Q代的選擇,用CPU卡替換邏輯加密卡的時代已到來,。