文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2012)05-0030-03
電子現(xiàn)金方案是基于《中國金融集成電路(IC)卡規(guī)范(V2.0)》實現(xiàn)的小額支付功能,支持圈存、消費、查詢等。安全的智能卡片內(nèi)操作系統(tǒng)的設(shè)計是其關(guān)鍵問題。
智能卡芯片因包含有片內(nèi)存儲器的自動偵測模塊,能保證在未來相當(dāng)長時間內(nèi)無法通過反剖析手段獲取芯片內(nèi)存儲的數(shù)據(jù)。
目前網(wǎng)上銀行使用的銀行卡加USB KEY的模式仍然存在安全漏洞[1],本電子現(xiàn)金方案功能模式如圖1所示,數(shù)據(jù)完全在卡片內(nèi)部加解密,提高了安全性;電子現(xiàn)金賬戶是授權(quán)消費的最大額度,分配給脫機交易使用,防止透支風(fēng)險。
1 智能卡硬件
SHC1302-N是一款基于ARM7的32 bit雙界面智能卡芯片,內(nèi)置256 KB的ROM、10 KB的RAM、144 KB的E2PROM、真隨機數(shù)發(fā)生器、CRC模塊等;符合ISO14443D的Type A/B通信協(xié)議和硬件自動識別通信協(xié)議;具有256 B的收發(fā)FIFO;Type A模式支持106 Kb/s、212 Kb/s,Type B模式支持106 Kb/s;符合ISO/IEE7816協(xié)議,支持T=0、T=1協(xié)議。
2 COS結(jié)構(gòu)模型
常見的片內(nèi)操作系統(tǒng)COS(Card Operating System)結(jié)構(gòu)模型有簡單結(jié)構(gòu)、層次結(jié)構(gòu)、微內(nèi)核結(jié)構(gòu)和外核結(jié)構(gòu)4種。COS的設(shè)計必須解決文件操作、鑒別與驗證、安全機制[2]三個問題。如圖2所示,選擇擴展性好、復(fù)雜度低、靈活性好的微內(nèi)核結(jié)構(gòu);使用Metrowerks CodeWarrior for ARM Developer Suite建立COS工程文件。
3 文件系統(tǒng)設(shè)計
3.1 文件結(jié)構(gòu)
如圖3所示,文件結(jié)構(gòu)是以主文件MF(Master File)為系統(tǒng)根文件、專用文件DF(Dedicated File)為枝葉和基本文件、EF(Elementary File)為葉的樹形結(jié)構(gòu)。MF在卡內(nèi)有且僅有一個,映射為一個目錄定義文件DDF(Directory Definition File),其應(yīng)用標(biāo)示符AID(Application Identifier)定義為0X3F00。根據(jù)DF以下是否包含子DF,將DF分為DDF和應(yīng)用定義文件ADF(Application Definition File)。EF分為二進(jìn)制文件、定長記錄文件、非定長記錄文件和循環(huán)定長記錄文件。每個DDF有一個目錄文件DIR(Directory File),且為變長記錄文件。每一條記錄對應(yīng)一個DF信息。ADF下沒有DIR文件。
3.2 文件系統(tǒng)邏輯和物理關(guān)系
文件系統(tǒng)在邏輯上的關(guān)系:文件結(jié)構(gòu)以二叉樹的形式存在,左兒子是根的第一個創(chuàng)建文件,右兒子是和根同一層次的文件。
文件系統(tǒng)的物理關(guān)系:先創(chuàng)建的文件在前面,后創(chuàng)建的文件在后面,一直保持這個次序不變。每個DF只有文件頭(即文件描述塊),包含對文件和應(yīng)用的描述,例如文件大小、文件類型、文件標(biāo)識等。每個EF包含文件頭和文件體,文件體保存文件的實際數(shù)據(jù)內(nèi)容。每個DF所占空間等于DF頭空間,每個EF所占空間等于EF頭空間加EF文件體所占空間。
3.3 文件API接口
文件API接口有:創(chuàng)建文件fs_create、刪除文件fs_del_all、按應(yīng)用標(biāo)識符查找文件aidfindnode、按全名查找文件fidfindnode、按短文件名查找文件sfifindnode、寫文件memory_write和讀文件memory_read。
4 應(yīng)用管理系統(tǒng)設(shè)計
4.1 命令解析
由于命令報文的指令字節(jié)INS(Instruction Byte of Command Message)大多不相同,因此采用switch語句,用INS區(qū)分命令入口地址。若多個命令的INS相同,則在函數(shù)體內(nèi),利用命令報文的類別字節(jié)CLA(Class Byte of the Command Message)、參數(shù)1 P1(Parameter 1)、參數(shù)2 P2(Parameter 2)來進(jìn)一步判斷。電子現(xiàn)金命令報文編碼及響應(yīng)報文編碼可參見JR/T 0025.5-2010附錄B。
X.509標(biāo)準(zhǔn)中將PKI(Public Key Infrastructure)定義為支持公開密鑰管理,并能支持認(rèn)證、加密、完整性和可追究性服務(wù)的基礎(chǔ)設(shè)施。PKI命令報文編碼及響應(yīng)報文編碼可參見參考文獻(xiàn)[3]。在switch語句中,添加PKI命令的入口,使其與電子現(xiàn)金命令并行存在,如圖4所示。
范圍,與僅支持離線或僅支持在線的電子現(xiàn)金方案[5-6]相比,更易于使用。
5 安全機制設(shè)計
建立完整的安全機制是保護信息系統(tǒng)安全的關(guān)鍵[7]。
5.1 文件訪問控制與防交叉
在創(chuàng)建文件時,設(shè)定文件的讀寫刪除等權(quán)限,只有滿足權(quán)限時,才能進(jìn)行相應(yīng)操作。在執(zhí)行命令時,判斷當(dāng)前目錄文件,不允許跨應(yīng)用訪問私有文件。
5.2 數(shù)據(jù)備份與防掉電
設(shè)置備份區(qū)標(biāo)志變量:在每次更新敏感數(shù)據(jù)前(如交易明細(xì)、余額),置位標(biāo)志變量,并將原有數(shù)據(jù)備份。數(shù)據(jù)更新完成后,復(fù)位標(biāo)志變量??ㄆ想姀?fù)位后,檢查標(biāo)志變量。如果備份區(qū)有效,則從備份區(qū)恢復(fù)上次交易數(shù)據(jù);如果備份區(qū)無效,則開始新的交易。
5.3 密鑰體系
密鑰體系分為對稱密鑰體系和非對稱密鑰體系。對稱密鑰體系采用三級密鑰,主要用于應(yīng)用請求密文的生成,發(fā)卡銀行驗證以及腳本信息的加解密等;發(fā)卡方保存主密鑰,主密鑰分散產(chǎn)生子密鑰;子密鑰存儲在智能中,子密鑰分散產(chǎn)生過程密鑰;采用DES及3-DES算法。非對稱密鑰體系主要用于脫機數(shù)據(jù)認(rèn)證,是一個二級認(rèn)證中心CA(Certificate Authority)架構(gòu),包括根CA和發(fā)卡行CA;使用非對稱加密算法RSA、哈希算法SHA-1(見GB/T 18238.3)。PKI系統(tǒng)可以為用戶建立一個安全的網(wǎng)絡(luò)運行環(huán)境,保證電子現(xiàn)金系統(tǒng)不可重復(fù)花費并具有防偽性[8]。
5.4 交易風(fēng)險控制
當(dāng)發(fā)生交易取消時,電子現(xiàn)金系統(tǒng)可以采用一些補償措施[9]。設(shè)置了電子現(xiàn)金余額上限、電子現(xiàn)金單筆交易限額等數(shù)據(jù)元來限制交易額度。當(dāng)交易金額大于電子現(xiàn)金單筆交易限額時,拒絕電子現(xiàn)金交易,轉(zhuǎn)而進(jìn)行標(biāo)準(zhǔn)借/貸記交易。當(dāng)圈存或現(xiàn)金充值超過電子現(xiàn)金余額上限時,拒絕該筆交易。
6 雙界面通信設(shè)計
雙界面通信設(shè)計是對讀寫設(shè)備發(fā)出的命令進(jìn)行接收,實現(xiàn)接觸式與非接觸式兩種通信方式。設(shè)有如下4個API接口:
(1)硬件時鐘頻率init_io:仿真模式時為7.5 MHz,正常模式為30 MHz。通信接口根據(jù)標(biāo)識變量,自動判斷是7816協(xié)議還是14443協(xié)議,并初始化和接收第一個指令。如果是7816協(xié)議,則發(fā)送ATR,其指令最大長度為256 B。
(2)接觸式接收os7816RxCommand:先接收5 B指令,然后判斷有無后續(xù)數(shù)據(jù),若有再接收剩余數(shù)據(jù)。
(3)接觸式返回os7816TxResponseRxCommand:如果只返回SW1(Status Word One)、SW2(Status Word Two)就直接發(fā)送,如果還有其他數(shù)據(jù),就要先發(fā)送INS,再發(fā)送數(shù)據(jù),最后發(fā)送SW1、SW2。
(4)非接觸模式命令的接收和發(fā)送os14443TxResponseRxCommand。
在接收命令時,不對報文的正確性做出判斷,命令解析和處理時再作判斷。當(dāng)發(fā)現(xiàn)命令接收有錯時,在響應(yīng)命令中回復(fù)錯誤代碼,留待后續(xù)功能模塊處理。
7 電子現(xiàn)金系統(tǒng)測試
COS測試分為硬件仿真器測試和智能卡測試兩個部分,硬件仿真系統(tǒng)測試通過后,進(jìn)行卡片測試。針對標(biāo)準(zhǔn)及具體需求設(shè)計測試用例,一般100%覆蓋需求,而對結(jié)構(gòu)的覆蓋率達(dá)到所要求的即可[10]。
2901Download工具支持Gemplus433ACR30S、ACR30U讀卡器(PCSC)。啟動2901Download工具,將COS的二進(jìn)制文件下載到智能卡內(nèi)。使用腳本命令在智能卡上創(chuàng)建文件系統(tǒng)和數(shù)據(jù)結(jié)構(gòu),并進(jìn)行卡片個人化。
SHC6210H 仿真器是集合了評估板和J-Link 仿真調(diào)試模塊的一體化仿真系統(tǒng),可以通過JTAG 方式對芯片的片上程序進(jìn)行開發(fā)和調(diào)試、裝載項目工程文件,進(jìn)入仿真模式。集成開發(fā)環(huán)境支持代碼的下載、全速運行、單步運行、跟蹤運行、運行到光標(biāo)處、斷點等調(diào)試功能,支持存儲器觀測、修改、填充、加載等功能。該系統(tǒng)完全在硬件內(nèi)部對數(shù)據(jù)進(jìn)行加密解密和數(shù)字簽名等操作,解決了U盾和銀行卡分離引起的安全漏洞;自動選擇在線與離線模式,降低了電子現(xiàn)金系統(tǒng)對網(wǎng)絡(luò)環(huán)境的要求;支持接觸式和非接觸式兩種通信模式,增強了系統(tǒng)靈活性;微內(nèi)核層次結(jié)構(gòu)設(shè)計,提高了系統(tǒng)可擴展性;防交叉文件訪問控制,保證了各應(yīng)用相互獨立;對稱密鑰體系和非對稱密鑰體系互補使用,提高了系統(tǒng)效率;引入交易限額等數(shù)據(jù)元并進(jìn)行敏感數(shù)據(jù)備份,控制了交易風(fēng)險。
參考文獻(xiàn)
[1] 張錕,顏學(xué)龍.USB KEY的體系結(jié)構(gòu)分析及安全策略研究[J].安全技術(shù)與管理,2009(2):40-42.
[2] 王愛英.智能卡技術(shù)IC卡與RFID標(biāo)簽[M].第三版.北京:清華大學(xué)出版社,2009:331-337.
[3] 李翔.求是科技,智能卡研發(fā)技術(shù)與工程實踐[M].北京:人民郵電出版社,2003:410-428.
[4] CHUN I F,VINCENT H.Provably secure integrated on/offline electronic cash for flexible and efficient payment [J]. IEEE Transactions on Systems, Man, and Cybernetics-part C: Applications and Reviews, 2010,40(5):567-579.
[5] Liu Feng,Li Xueyong,Gao Guohong.The design of an E cash system[C].2010 International Conference on Computer Design and Applications(ICCDA 2010).Qinhuangdao China:IEEE,2010:119-122.
[6] Zhou Fei,Deng Heping,Li Zhengyue,et al.The analysis of E-commerce online payment status in China[C].2010 International Conference on Networking and Digital Society. Wenzhou China:IEEE,2010:84-87.
[7] LEE J,JUN M.Security protocol design for electronic-cash transactions in a mobile-PKI environment[C].9th IEEE/ACIS International Conference on Computer and Information Science.Yamagata Japan:IEEE,2010:887-891.
[8] 張錕,顏學(xué)龍.USB KEY的體系結(jié)構(gòu)分析及安全策略研究[J].安全技術(shù)與管理,2009(2):40-42.
[9] Yang Xinsong,Li Zhao.Some improvements on recoverable E-cash[C].2010 International Conference on E-Business and E-Government.Guangzhou China:IEEE,2010:2126-2128.
[10] 謝晶晶,李代平,郭琨.智能卡操作系統(tǒng)的測試技術(shù)[J].計算機技術(shù)與發(fā)展,2010,20(8):21-28.