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