面向PBOC2.0的智能卡操作系統(tǒng)的設(shè)計(jì)
文章出處:http://www.mjagi.com 作者: 人氣: 發(fā)表時(shí)間:2013年05月02日
摘要:針對(duì)智能卡的市場(chǎng)需求,摒棄了存儲(chǔ)卡的設(shè)計(jì)思想,采用文件系統(tǒng)與安全訪問機(jī)制聯(lián)合設(shè)計(jì)及模塊化的設(shè)計(jì)方法,在文件結(jié)構(gòu)中加入二進(jìn)制和記錄文件的概念,進(jìn)行了可靠性存儲(chǔ)的設(shè)計(jì)。在智能卡操作系統(tǒng)的數(shù)據(jù)存取和文件管理模塊上,設(shè)計(jì)并實(shí)現(xiàn)了應(yīng)用防火墻和一卡多用的功能。該設(shè)計(jì)增加了智能卡的可靠性、適用性及靈活性。
隨著我國(guó)CPU卡技術(shù)的快速發(fā)展,在身份識(shí)別、安全認(rèn)證、金融消費(fèi)等領(lǐng)域得到了廣泛應(yīng)用,逐漸成為我國(guó)IC卡應(yīng)用的主流產(chǎn)品,市場(chǎng)需求量必將出現(xiàn)質(zhì)的飛躍。在廣闊的市場(chǎng)需求背景下,CPU卡會(huì)產(chǎn)生良好的社會(huì)和經(jīng)濟(jì)效益,因此系統(tǒng)的安全性就顯得更加重要。
近年來,國(guó)內(nèi)許多廠商都開展了智能卡芯片及COS的研制開發(fā),特別是在COS開發(fā)上,國(guó)內(nèi)已經(jīng)有幾家公司走在了市場(chǎng)前列,在國(guó)際國(guó)內(nèi)市場(chǎng)取得了一席之地,我國(guó)單純依賴進(jìn)口芯片、模塊的狀況已經(jīng)結(jié)束。目前國(guó)產(chǎn)COS所選用的芯片主要有Infineon、ST、HITACHI、SAMSUNG、Philips、明華、大唐電信、華虹等。
這些芯片價(jià)格不同,功能上也有很大差別,功能強(qiáng)大的芯片會(huì)支持內(nèi)置隨機(jī)數(shù)產(chǎn)生器、CRC校驗(yàn)?zāi)K、DES和EC2加速模塊等。
本設(shè)計(jì)與目前存在的COS設(shè)計(jì)相比,具有以下幾個(gè)特點(diǎn):(1)采用文件系統(tǒng)與安全訪問機(jī)制的聯(lián)合設(shè)計(jì);(2)摒棄了存儲(chǔ)卡的設(shè)計(jì)思想,在文件結(jié)構(gòu)中加入二進(jìn)制文件和記錄文件的概念;(3)在軟件設(shè)計(jì)上采用先進(jìn)的模塊化設(shè)計(jì)方法;(4)采用可靠性存儲(chǔ)的設(shè)計(jì)。
1 設(shè)計(jì)原則
本設(shè)計(jì)緊密結(jié)合智能卡的市場(chǎng)需求,嚴(yán)格遵循密碼產(chǎn)品設(shè)計(jì)的規(guī)范,力求從硬件和軟件兩個(gè)層面達(dá)到國(guó)家信息化安全的要求。在硬件設(shè)計(jì)上,選用通過國(guó)密認(rèn)證的智能卡芯片,內(nèi)部的微處理器采用8位字長(zhǎng)的中央處理器,卡片內(nèi)部邏輯結(jié)構(gòu)如圖1所示。
圖1 CPU模塊內(nèi)部邏輯結(jié)構(gòu)圖
在軟件設(shè)計(jì)上,針對(duì)當(dāng)前智能卡應(yīng)用的實(shí)際需求,量身定制了有特色的文件存儲(chǔ)結(jié)構(gòu)、安全訪問控制機(jī)制和存儲(chǔ)可靠性設(shè)計(jì)方案。采取可靠、先進(jìn)的模塊化設(shè)計(jì),使得操作系統(tǒng)能夠支持市場(chǎng)的主流應(yīng)用,并在需要的情況下迅速擴(kuò)展支持新的應(yīng)用需求,采用ISO14443 TypeA接口協(xié)議,可靠性高,適用性廣。本設(shè)計(jì)完全符合國(guó)際、國(guó)內(nèi)標(biāo)準(zhǔn),支持ISO/IEC 78 16協(xié)議標(biāo)準(zhǔn),支持ISO/IEC 14443 TypeA和TypeB標(biāo)準(zhǔn),符合《中國(guó)金融集成電路(IC)卡規(guī)范》,符合《建設(shè)事業(yè)非接觸式CPU卡COS技術(shù)要求》。
2 總體設(shè)計(jì)
在對(duì)以往各種智能卡操作系統(tǒng)的體系結(jié)構(gòu)進(jìn)行深入剖析的基礎(chǔ)上,針對(duì)其中數(shù)據(jù)獨(dú)立、密鑰獨(dú)立、數(shù)據(jù)在傳輸中完整性方面的不足,進(jìn)行了改進(jìn)和完善。將操作系統(tǒng)劃分為4個(gè)模塊,分別為傳輸管理、安全管理、應(yīng)用管理和文件管理,模塊工作原理如圖2所示。
接口設(shè)備(IFD)向Ic卡(ICC)發(fā)送一條命令的工作過程。在首先傳輸管理模塊按照ISO7816—3標(biāo)準(zhǔn)對(duì)物理層傳輸?shù)男盘?hào)進(jìn)行解碼并傳遞給安全模塊。若為加密傳輸,則安全模塊進(jìn)行加解密操作并將結(jié)果傳輸給應(yīng)用管理模塊;若不是加密傳輸則信息直接傳輸給應(yīng)用管理模塊。應(yīng)用管理模塊根據(jù)預(yù)先設(shè)計(jì)要求,解析檢查此命令的合法性及執(zhí)行條件,檢查通過則執(zhí)行此命令。如果此命令涉及信息存取,則文件管理模塊檢查其是否滿足預(yù)先設(shè)計(jì)的存取安全條件,若條件滿足則執(zhí)行有關(guān)數(shù)據(jù)存取操作并發(fā)送響應(yīng)到IFD。整個(gè)過程中任何檢查失敗將立即退出并返回相應(yīng)出錯(cuò)信息。
圖2 模塊工作原理圖
2.1 傳輸管理
傳輸管理器負(fù)責(zé)智能卡和接口設(shè)備之間的數(shù)據(jù)通信,接收過程中要處理對(duì)輸人數(shù)據(jù)的緩沖,響應(yīng)過程控制數(shù)據(jù)的發(fā)送。傳輸管理器在正確地接收到命令后交給下一個(gè)功能模塊進(jìn)行處理,最后還要把該命令的執(zhí)行結(jié)果返回給接口設(shè)備。
數(shù)據(jù)在傳輸方式上有4種類型:明文方式、明文校驗(yàn)方式、密文方式和密文校驗(yàn)方式。對(duì)以明文方式進(jìn)行傳輸?shù)臄?shù)據(jù)由傳輸管理器直接送給命令處理模塊。當(dāng)數(shù)據(jù)以校驗(yàn)或密文方式傳輸時(shí)需要加解密運(yùn)算器對(duì)數(shù)據(jù)進(jìn)行處理,并設(shè)定卡片的安全狀態(tài),即對(duì)數(shù)據(jù)進(jìn)行線路保護(hù)。對(duì)傳輸?shù)男畔⑦M(jìn)行保護(hù)是信息安全的最重要的方面,為防止對(duì)傳輸信息的非法截取,采用選定的加密算法對(duì)傳輸信息進(jìn)行加密保護(hù),使非法截取信息不可讀、不可知 ,具體過程如圖3所示。
圖3 數(shù)據(jù)的線路保護(hù)
2.2 安全管理
安全管理歸納為認(rèn)證操作、存取權(quán)限控制和數(shù)據(jù)加解密3個(gè)部分。
2.2.1 認(rèn)證操作
認(rèn)證操作包括口令認(rèn)證、內(nèi)部認(rèn)證和外部認(rèn)證3個(gè)方面。
(1)口令認(rèn)證:用戶通過命令Verify輸入口令,然后首先判斷密碼文件中指定密碼的錯(cuò)誤計(jì)數(shù)器的值是否已是最大。如否,則與密碼進(jìn)行比較,比較成功設(shè)置相關(guān)寄存器的值,下一步操作時(shí)需首先判斷此寄存器的值。否則,錯(cuò)誤計(jì)數(shù)器加1,需再次輸入口令比較。
(2)內(nèi)部認(rèn)證:提供了利用接口設(shè)備發(fā)來的隨機(jī)數(shù)和自身存儲(chǔ)的相關(guān)密鑰進(jìn)行數(shù)據(jù)認(rèn)證的功能,是設(shè)備對(duì)卡片的認(rèn)證。當(dāng)該相關(guān)密鑰位于MF文件時(shí),命令可以用來鑒別整個(gè)卡;當(dāng)該相關(guān)密鑰位于一個(gè)DF文件時(shí),命令可以用來鑒別該DF文件。
(3)外部認(rèn)證:用于對(duì)卡片外部的安全認(rèn)證。計(jì)算的方法是利用卡片中的外部認(rèn)證密鑰,對(duì)卡片產(chǎn)生的隨機(jī)數(shù)和接口設(shè)備傳輸進(jìn)來的認(rèn)證數(shù)據(jù)進(jìn)行驗(yàn)證,卡片將比較輸入的結(jié)果是否與卡片自己計(jì)算的結(jié)果一致,如果一致,則外部認(rèn)證成功。
2.2.2 存取權(quán)限控制
操作系統(tǒng)對(duì)特定存儲(chǔ)區(qū)進(jìn)行權(quán)限限制以進(jìn)行保護(hù),此類存儲(chǔ)區(qū)分別被設(shè)置了讀、寫、擦除的存儲(chǔ)權(quán)限值。當(dāng)對(duì)相應(yīng)存儲(chǔ)區(qū)進(jìn)行操作時(shí),操作系統(tǒng)首先檢測(cè)操作是否符合存儲(chǔ)權(quán)限。本設(shè)計(jì)使用的安全機(jī)制稱為狀態(tài)字(也稱AC字,16 bit)轉(zhuǎn)移機(jī)制,每一種安全狀態(tài)字都代表一種不同的安全級(jí),智能卡將保持其安全狀態(tài)字節(jié)中所代表的狀態(tài)。智能卡中有兩個(gè)安全狀態(tài)字,其中高字節(jié)表示當(dāng)前DF文件的父DF文件的安全狀態(tài),低字節(jié)表示當(dāng)前DF文件的安全狀態(tài)。當(dāng)通過查找命令從高應(yīng)用文件層進(jìn)入到它的子DF文件的時(shí)候,當(dāng)前DF文件的安全保護(hù)字節(jié)將被清空,高應(yīng)用文件層的DF文件的安全字節(jié)將被作為當(dāng)前文件的父DF文件的安全狀態(tài)字節(jié),使用CDF—AC來表示當(dāng)前DF文件的安全狀態(tài)字節(jié),PDF— AC來表示當(dāng)前文件的父DF文件的安全狀態(tài)字節(jié)。
安全屬性是指對(duì)某個(gè)文件進(jìn)行某種操作時(shí)所必須滿足的條件,也就是在進(jìn)行某種操作時(shí)要求安全狀態(tài)寄存器的值是什么。安全屬性又稱訪問權(quán)限,一種訪問權(quán)限在建立該文件時(shí)用一個(gè)字節(jié)指定¨ 。狀態(tài)字轉(zhuǎn)移機(jī)制遵循以下的規(guī)則:
復(fù)位后,MF文件將被自動(dòng)選擇為當(dāng)前的應(yīng)用文件。并且CDF_AC=0x00,PDF—Ac=0xO0。從當(dāng)前的應(yīng)用文件查找它的子DF文件:PDF_AC=CDF—AC,CDF_AC=0xO0。從當(dāng)前的應(yīng)用文件查找它的父DF文件:CDFAC =PDF_AC,PDF_ AC=0x00。如果當(dāng)前應(yīng)用文件的父DF文件時(shí)MF文件,那么:CDF_AC=PDF_AC。
只有“外部認(rèn)證”與“口令認(rèn)證”這兩種方式可以改變當(dāng)前安全狀態(tài)字節(jié),一旦安全狀態(tài)字節(jié)被改變了,該狀態(tài)將一直保持到進(jìn)入另一個(gè)應(yīng)用文件為止?;疚募拇嫒∫约皯?yīng)用命令的執(zhí)行都由定義的各自不同的安全狀態(tài)來決定。在安全狀態(tài)不滿足的情況下,智能卡將返回“6982”l15],即“安全狀態(tài)不滿足”。
2.2.3 數(shù)據(jù)加解密
本設(shè)計(jì)使用了對(duì)稱密碼算法(DES)與國(guó)密算法(SM1/SSF33)相結(jié)合的方法,可根據(jù)具體要求,選擇合適算法。其中對(duì)稱密碼算法,加密密鑰和解密密鑰是相同的,加解密速度快,可用來處理大量數(shù)據(jù)信息,是至今為止應(yīng)用最廣泛的算法,以目前的計(jì)算機(jī)技術(shù)和費(fèi)用還無法攻破,但是密鑰很容易在傳輸中被截獲 。在每次啟用密碼算法前,系統(tǒng)都臨時(shí)協(xié)商隨機(jī)產(chǎn)生一個(gè)真隨機(jī)數(shù)參與運(yùn)算,進(jìn)一步加強(qiáng)整個(gè)加密過程數(shù)據(jù)的隨機(jī)性,對(duì)防破解起到重要作用。密鑰存儲(chǔ)在卡內(nèi),密鑰只有在安全條件滿足的情況下使用,但是不能讀取,保證在任何情況下密鑰不會(huì)從卡片中泄露。
2.3 應(yīng)用管理
對(duì)外部輸入的每條命令做語法分析,分析和檢查命令參數(shù)是否正確,然后根據(jù)命令參數(shù)的含義執(zhí)行相應(yīng)的功能模塊,并返回響應(yīng)。如果執(zhí)行出錯(cuò),將從該模塊直接返回錯(cuò)誤信息。
2.4 文件管理
文件管理器控制文件的操作和訪問。在做數(shù)據(jù)操作前,文件管理器將根據(jù)文件的安全屬性檢查卡的安全狀態(tài),以確定是否允許當(dāng)前操作。
智能卡中文件系統(tǒng)由3種文件組成,即主文件(MF)、目錄文件(DF)和基本文件(EF),同數(shù)據(jù)塊一樣主要根據(jù)不同的應(yīng)用對(duì)數(shù)據(jù)信息進(jìn)行存儲(chǔ)。在整個(gè)文件架構(gòu)中,存在一個(gè)具有唯一標(biāo)識(shí)符“3F00”的特殊專有文件,稱為主文件(MF),任何其他的DF或者EF都必須在主文件下創(chuàng)建。每個(gè)DF下可以包含多個(gè)DF和EF,包含下級(jí)目錄的文件為DDF,不包含下級(jí)目錄的文件為ADF。當(dāng)智能卡復(fù)位后(上電復(fù)位或者熱復(fù)位)MF文件將自動(dòng)被選擇作為當(dāng)前文件,智能卡文件系統(tǒng)的具體結(jié)構(gòu)如圖4所示。
圖4 智能卡的文件系統(tǒng)
DF文件的存儲(chǔ)空間在“Create DF”的過程中定義,一旦DF文件被創(chuàng)建,那么之后它的存儲(chǔ)空間就不能再改變,因此MF文件的存儲(chǔ)空問將決定整個(gè)智能卡可使用的空間。每個(gè)DF文件有54個(gè)字節(jié)的文件頭,每個(gè)EF文件有39個(gè)字節(jié)的文件頭。與之相似,EF文件的存儲(chǔ)空間也是在“Create EF”的過程中定義,在ISF中每種密鑰都有16個(gè)字節(jié)的密鑰頭,在EF文件中每一個(gè)變長(zhǎng)記錄都有兩個(gè)字節(jié)的記錄頭。因此創(chuàng)建一個(gè)應(yīng)用時(shí),就可以根據(jù)以上的文件結(jié)構(gòu)定義精確計(jì)算出所需要的整個(gè)存儲(chǔ)空間的大小(包括文件體、每個(gè)文件頭和記錄頭的空間凈需求)。
本設(shè)計(jì)摒棄了存儲(chǔ)卡的設(shè)計(jì)思想_1 。在文件結(jié)構(gòu)中加入二進(jìn)制文件和記錄文件的概念,減少了對(duì)卡片做個(gè)人化時(shí)的不便,充分地進(jìn)行整體數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),最大化利用了CPU卡的強(qiáng)大的數(shù)據(jù)處理能力,給了用戶很大便利。采用文件系統(tǒng)與安全訪問機(jī)制的聯(lián)合設(shè)計(jì)。將文件存儲(chǔ)和應(yīng)用防火墻進(jìn)行統(tǒng)一設(shè)計(jì),使智能卡的文件系統(tǒng)可支持多層DF文件結(jié)構(gòu),用戶可以利用這種結(jié)構(gòu)在一張卡實(shí)現(xiàn)多應(yīng)用¨ 。不同DF文件的安全狀態(tài)由內(nèi)部的防火墻隔開,不同的應(yīng)用都有各自的安全機(jī)制而互不影響。對(duì)DF和ISF的文件采取固定的文件頭結(jié)構(gòu),簡(jiǎn)化文件系統(tǒng)空間的計(jì)算,提高卡片工作的可靠性??煽啃源鎯?chǔ)的設(shè)計(jì),保證了在任何情況下數(shù)據(jù)存儲(chǔ)的完整性,并定義了可靠的機(jī)制,保證數(shù)據(jù)在意外掉電的情況下能夠可靠恢復(fù)。
3 開發(fā)實(shí)現(xiàn)
本設(shè)計(jì)使用Keil uVision4作為開發(fā)平臺(tái),所有的程序開發(fā)都在平臺(tái)上完成。選擇8052單片機(jī)芯片,使用C語言作為開發(fā)語言,選擇TMC程序仿真器對(duì)程序進(jìn)行仿真測(cè)試,可以通過Keil uVision4的仿真按鈕將TOE程序下載到仿真器中,并在程序中設(shè)置相關(guān)斷點(diǎn)對(duì)程序進(jìn)行仿真測(cè)試。
4 結(jié)語
本設(shè)計(jì)硬件存儲(chǔ)容量大,軟件設(shè)計(jì)擴(kuò)展性好,能夠支持多應(yīng)用,符合智能卡產(chǎn)品的技術(shù)發(fā)展潮流,具有良好的應(yīng)用前景??▋?nèi)部防火墻可以進(jìn)行應(yīng)用隔離,把身份認(rèn)證、社保、銀行、醫(yī)療、商業(yè)、公路收費(fèi)、公園卡以及其他應(yīng)用集成到一個(gè)智能卡中,既可以提高服務(wù)效率、工作效率、服務(wù)質(zhì)量和管理水平,又能夠有效地利用卡資源,降低使用成本。今后,如何進(jìn)一步提高可靠性又不失其靈活性,是智能卡發(fā)展中需要長(zhǎng)期面對(duì)和解決的問題?!渡綎|科學(xué)》(濟(jì)南大學(xué)信息科學(xué)與工程學(xué)院,山東省網(wǎng)絡(luò)環(huán)境智能計(jì)算技術(shù)重點(diǎn)實(shí)驗(yàn)室 胡云肖,楊波,孫濤,郭延海)
參考文獻(xiàn):
[1]孫菁,傅德勝.序列密碼中密鑰流生成器的安全性研究與分析[J].信息安全與技術(shù),2010(7):65—68.
[2]鄧贊.智能卡操作系統(tǒng)(COS)安全管理研究[J].硅谷,2010(2):50—51.
[3]SAUVERON D.Multiapplication smart card:Towards an open smart card?[J].1nf Secur Tech Rep,2009,14(2):70—78.
[4]寧詠梅.智能卡操作系統(tǒng)(COS)的系統(tǒng)測(cè)試方法的設(shè)計(jì)與實(shí)現(xiàn)[D].上海:上海交通大學(xué),2011.
[5]車平躍.智能卡操作系統(tǒng)內(nèi)核的研究與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2010.
[6]MAYES K E,MARKANTONAKIS K.Smart CaMs,Tokens,Security and Applications[M].New York:Springer Science+Business Media,LLC ,2008.
[7]馬海峰.智能卡COS文件系統(tǒng)結(jié)構(gòu)模型的研究與應(yīng)用[D].廣州:廣東工業(yè)大學(xué),2011.
[8]董威.多應(yīng)用智能卡新技術(shù)研究[D].北京:北京郵電大學(xué),2008.
[9]劉玉珍,張煥國(guó).安全智能卡的結(jié)構(gòu)研究與應(yīng)用[J].中國(guó)防偽報(bào)道,2008(10):34—37.
[10]郭鴻志,李代平,尹偉,等.智能卡芯片操作系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(19):4186—4189.
[11]尹偉,李代平,王挺,等.基于Flash智能卡文件系統(tǒng)的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2009,25(11—2):97—99.
[12]許東亮.嵌入式USB主機(jī)文件系統(tǒng)設(shè)計(jì)與優(yōu)化[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(1O):42—43.
[13]劉文博,劉宏偉.動(dòng)態(tài)多應(yīng)用智能卡文件系統(tǒng)的研究與設(shè)計(jì)[J].微計(jì)算機(jī)信息,2009(29):204—206.
[14]許天亮,方勇.基于可信計(jì)算的Java智能卡的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2009(17):45—47.
[15]王高祖,李偉華,徐艷玲,等.基于Tms~one技術(shù)和p~CLinux的安全嵌入式系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2008,25(6):1793—1795.
[16]陳莉莉,劉正龍.以數(shù)據(jù)為中心的多用戶跨平臺(tái)的Web開發(fā)技術(shù)[J].計(jì)算機(jī)應(yīng)用與軟件,2012,29(2):237—239.
[17]吳開興,杜輝.智能卡實(shí)時(shí)監(jiān)控考勤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2008,24(2—2):302—303.
[18]彭彥,鞠磊,方勇.基于Java智能卡的可信度量模塊設(shè)計(jì)[J].微計(jì)算機(jī)信息,2009,25(6—3):40—42.
[19]胡鳴,張小兵,王艷.一種新的基于智能卡的身份認(rèn)證方案[J].微計(jì)算機(jī)信息,2010,26(1—3):41—42.
[20]徐平江,龐娜,付青琴.基于鏈表方式的智能卡文件系統(tǒng)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2011,27(11):40—50.