RF-SIM卡的多應(yīng)用COS研究與設(shè)計(jì)
1前言
隨著芯片技術(shù)的發(fā)展以及運(yùn)營商之間的業(yè)務(wù)擴(kuò)展,手機(jī)智能卡將會突破個人身份識別的單應(yīng)用平臺向多應(yīng)用平臺方向發(fā)展,特別是移動支付平臺。如今芯片生產(chǎn)商已經(jīng)開發(fā)出了支持2.4GHz頻率的RF-SIM卡,它是接觸式智能卡與非接觸式智能卡的結(jié)合,在設(shè)計(jì)上,接觸式界面遵守ISO7816接口標(biāo)準(zhǔn),非接觸式界面采用2.4GISM頻段進(jìn)行通信。在硬件實(shí)現(xiàn)上,RF-SIM卡有三芯片、雙芯片和單芯片三種硬件實(shí)現(xiàn)架構(gòu)方式[1](如圖1)。在安全方面,數(shù)據(jù)采用自動TDES加密技術(shù)進(jìn)行空中傳輸,防止竊聽數(shù)據(jù),在刷卡時采用雙向認(rèn)證的安全機(jī)制,所以它是可靠的連接和安全的通信。另外,在不用更換手機(jī)的前提下,RF-SIM卡能夠完成更多手機(jī)終端無法完成的功能,所以基于RF-SIM卡的多行業(yè)多應(yīng)用服務(wù)平臺具有廣闊的前景。在這個平臺體系里,COS(ChipOperatingSystem)是非常重要的,它既要管理底層硬件高效地工作,又要保證上層應(yīng)用安全地運(yùn)行。所以本文的目的就是設(shè)計(jì)一種基于RF-SIM卡的多應(yīng)用COS結(jié)構(gòu)。
2COS結(jié)構(gòu)模型的選擇
雖然智能卡芯片的硬件資源有限,但是COS結(jié)構(gòu)設(shè)計(jì)的要求卻并不低,它需要綜合考慮功能、性能、可移植性、可擴(kuò)展性、靈活性和復(fù)雜度等諸多因素的要求:(1)功能上不但要求SIM卡端能夠?qū)崿F(xiàn)電信方面的應(yīng)用,而且還要求非接觸式界面端能夠?qū)崿F(xiàn)無線方面的應(yīng)用,如公交IC刷卡。(2)性能要求是指能在有效的時間內(nèi)利用有限的存儲空間完成系統(tǒng)要求的功能。(3)可移植性要求COS能夠方便地移植到其他環(huán)境中運(yùn)行。(4)可擴(kuò)展性是指多應(yīng)用平臺能夠方便地?cái)U(kuò)展上層業(yè)務(wù)功能,方便地增加、修改和刪除上層應(yīng)用的功能模塊。最后從實(shí)現(xiàn)環(huán)節(jié)上還需要考慮系統(tǒng)的靈活性和復(fù)雜性要求。如今常見的COS結(jié)構(gòu)模型有簡單結(jié)構(gòu)、層次結(jié)構(gòu)、微內(nèi)核結(jié)構(gòu)和外核結(jié)構(gòu)4種,其特性分析詳見表1。
顯然微內(nèi)核結(jié)構(gòu)的綜合特性較優(yōu),但時間性能和移植性卻是一般,所以,在微內(nèi)核結(jié)構(gòu)模型基礎(chǔ)上進(jìn)行改良設(shè)計(jì)(如圖2):在微內(nèi)核層增設(shè)虛擬硬件層增強(qiáng)系統(tǒng)的可移植性和簡化比較耗時的進(jìn)程機(jī)制與中斷處理機(jī)制提高系統(tǒng)時間性能。
3多應(yīng)用COS設(shè)計(jì)的關(guān)鍵技術(shù)
3.1多應(yīng)用文件系統(tǒng)的設(shè)計(jì)
多應(yīng)用平臺的設(shè)計(jì)本質(zhì)上就是設(shè)計(jì)多應(yīng)用文件系統(tǒng),并在此基礎(chǔ)上安全運(yùn)行多個應(yīng)用。所以文件系統(tǒng)是COS的核心,它不僅負(fù)責(zé)存儲、管理和維護(hù)卡內(nèi)存儲的數(shù)據(jù)而且為上層應(yīng)用提供統(tǒng)一的透明訪問機(jī)制。具體設(shè)計(jì)方案如下。
3.1.1多樣性存儲設(shè)計(jì)
SIM卡的文件結(jié)構(gòu)遵守GSM11.11規(guī)范,是以MF為根,DF為枝葉和EF為葉的樹形結(jié)構(gòu)(如圖3)[2],而RF端的文件結(jié)構(gòu)卻可能沒有統(tǒng)一的規(guī)范,它可能是某行業(yè)通用結(jié)構(gòu)也可能是運(yùn)營商的私有結(jié)構(gòu)。因此,文件格式具有多樣性,為方便管理和解決文件系統(tǒng)間格式混亂問題,把存儲空間分成基本文件區(qū)、應(yīng)用文件區(qū)(如GSM文件區(qū)和Mifare文件區(qū))和未分配存儲區(qū)三部分。其中不僅每部分區(qū)域連續(xù)分配,而且每個應(yīng)用文件系統(tǒng)也是連續(xù)分配存儲空間(如圖4)。基本文件區(qū)存儲各文件系統(tǒng)的公共信息和注冊信息,如空間分配情況表、GSM文件和Mifare文件注冊表、全局安全信息等。GSM文件結(jié)構(gòu)區(qū)以隱式鏈接方式存儲結(jié)構(gòu),用目錄項(xiàng)表示MF、DF、EF之間的邏輯結(jié)構(gòu),分配連續(xù)區(qū)域存放目錄項(xiàng);統(tǒng)一把DF、EF放在實(shí)體文件區(qū)。Mifare文件實(shí)際上就是一種結(jié)構(gòu)化的記錄塊文件,結(jié)構(gòu)規(guī)范、管理較簡單、存儲較方便,所以可以把該區(qū)域按記錄形式存儲操作。未分配存儲區(qū)的容量是該芯片的大小減去應(yīng)用文件區(qū)的大小,所以它是應(yīng)用文件區(qū)的空間補(bǔ)集。它的作用主要有兩方面:(1)為新應(yīng)用分配存儲空間:在卡片運(yùn)營過程中,如果需要安裝新的應(yīng)用軟件AppS1,那么從該區(qū)域劃分等于或微大于AppS1的存儲空間安裝它并且注冊在應(yīng)用文件區(qū)中,剩下的空間成為新的未存儲分配區(qū)。(2)作為掉電保護(hù)的備份區(qū)之一。
3.1.2文件API接口設(shè)計(jì)
為多個文件系統(tǒng)設(shè)置統(tǒng)一的文件API接口,使上層應(yīng)用能夠共享一套接口函數(shù)和存儲管理機(jī)制。對此具體設(shè)置了5個API訪問接口函數(shù):FS_SeleteFile(選擇文件),F(xiàn)S_CreateFile(創(chuàng)建文件),F(xiàn)S_DeleteFile(刪除文件),F(xiàn)S_ReadFile(讀文件),F(xiàn)S_WriteFile(寫文件)。
3.1.3文件安全性設(shè)計(jì)
智能卡的安全性就是對卡片內(nèi)數(shù)據(jù)對象訪問的安全控制能力,卡片安全體系的總體結(jié)構(gòu)分為安全屬性、安全狀態(tài)和安全機(jī)制[3]。對于文件對象而言,首先設(shè)置多個級別的安全屬性增強(qiáng)安全級別的靈活性和多樣性設(shè)置,然后采取先鑒權(quán)后操作的訪問機(jī)制,也就是說只有在鑒權(quán)通過時才能夠執(zhí)行后繼操作,若不通過,則拒絕訪問,例如選擇文件,創(chuàng)建文件都必須通過要SCB(SecureControlByte)字節(jié)的鑒權(quán)操作,如GSM11標(biāo)準(zhǔn)里的PIN碼、PUK碼和CDM碼的共同構(gòu)成SCB。
3.1.4環(huán)境的適應(yīng)性設(shè)計(jì)
一般來說,智能卡的應(yīng)用環(huán)境是比較惡劣的,特別是供電不穩(wěn)定和存儲介質(zhì)壽命約束問題。所以為保證系統(tǒng)的穩(wěn)定性和延長卡片壽命設(shè)計(jì)了掉電保護(hù)和均衡磨損機(jī)制[4]。掉電保護(hù)是指在寫數(shù)據(jù)塊時,先把更新區(qū)數(shù)據(jù)備份到其他區(qū)域,防止在寫數(shù)據(jù)過程中系統(tǒng)掉電而破壞原數(shù)據(jù)區(qū)的數(shù)據(jù),可以從備份區(qū)把數(shù)據(jù)重新寫回。具體算法如圖5所示(例如數(shù)據(jù)B要寫到數(shù)據(jù)A區(qū)域)。
由上述算法可知,每完成一次掉電保護(hù)操作至少要寫一次備份區(qū)C,因此從整體來說備份區(qū)C的讀寫是頻繁的,但是對存儲介質(zhì)的讀寫次數(shù)有嚴(yán)格限制(如flash的擦寫次數(shù)為100000~1000000次),所以備份區(qū)C不能靜態(tài)分配,需要動態(tài)選擇。更本質(zhì)上說,由于對存儲塊的讀寫訪問不均勻,導(dǎo)致出現(xiàn)了“冷”“熱”數(shù)據(jù)塊,因此有必要協(xié)調(diào)好兩者之間的關(guān)系,也就是盡量使數(shù)據(jù)塊擦寫趨于均衡,即均衡磨損機(jī)制。綜合考慮芯片的硬件環(huán)境及算法實(shí)現(xiàn)的難易程度,本系統(tǒng)采用“冷熱置換”策略:首先把當(dāng)前應(yīng)用的數(shù)據(jù)塊擦除次數(shù)表(Data-blockEraseTable,DET)調(diào)入RAM,對數(shù)據(jù)塊的擦除都要更新DET,當(dāng)某塊S的擦除次數(shù)大于某一閾值時(如256次),選擇一擦除次數(shù)最少的數(shù)據(jù)塊置換。當(dāng)DET表所有記錄的擦除項(xiàng)為“滿”(所有都為256次)或者DET總更新次數(shù)大于或等于某臨界值時(如1000次),DET記錄的擦除次數(shù)項(xiàng)全部清零,并且把DET從RAM中保存至flash存儲器。顯然,這種“冷熱置換”方式能夠很好地保證應(yīng)用系統(tǒng)內(nèi)部數(shù)據(jù)塊的均衡磨損,但是在掉電保護(hù)算法中,因?yàn)閭浞輩^(qū)C不需要置換,只是覆蓋即可,所以對于備份區(qū)C的選擇采用“循環(huán)寫空閑塊”的方式:從未分配區(qū)域和系統(tǒng)文件區(qū)(如GSM文件區(qū))中通過循環(huán)查找的方式選擇空閑塊充當(dāng)備份區(qū)。
3.2多應(yīng)用安全機(jī)制的設(shè)計(jì)
具體的單應(yīng)用系統(tǒng)平臺中,一般都設(shè)計(jì)了規(guī)范的或者行業(yè)間私有的安全機(jī)制,所以本部分重點(diǎn)討論多文件系統(tǒng)環(huán)境下的安全問題。
3.2.1數(shù)據(jù)內(nèi)容安全管理:對文件中的數(shù)據(jù)進(jìn)行加密來保證內(nèi)容的安全,因?yàn)榧词箶?shù)據(jù)被非法讀取,竊取的也只是密文,破解難度大。
3.2.2非法越界管理:多應(yīng)用文件系統(tǒng)的最大威脅就是非法越界訪問其他文件系統(tǒng)數(shù)據(jù),所以必須設(shè)計(jì)防止多應(yīng)用文件間非法越界訪問的安全機(jī)制[5]:因?yàn)楦魑募到y(tǒng)的存儲空間是連續(xù)分配的,物理地址的范圍可表述為Addr[上界,下界],所以可以通過Addr中的上界和下界進(jìn)行匹配隔離方式防止越界訪問,這樣就如同在文件系統(tǒng)的上界和下界處設(shè)置了一道堅(jiān)固的隔離墻。
3.2.3交互行為安全:某些事務(wù)邏輯中,需要在一次原子性操作過程中訪問兩個或以上的文件系統(tǒng),如用手機(jī)銀行為公交IC卡充值。在交互過程中,設(shè)置日志管理機(jī)制來保證事務(wù)邏輯的原子性。為保證多個應(yīng)用系統(tǒng)間交互操作的行為安全,建立信任機(jī)制,采用雙向鑒權(quán)方式來增強(qiáng)行為安全的可信度,同時使用數(shù)字簽名認(rèn)證方式來界定安全責(zé)任,因?yàn)檫@種方式具有不可抵賴性。
3.3雙通道通信設(shè)計(jì)
RF-SIM卡具有接觸和非接觸兩個界面,因此它存在SCD(接觸式7816接口)和SCR(非接觸式RF接口)兩個邏輯傳輸通道。兩個通道既能夠獨(dú)立地進(jìn)行數(shù)據(jù)傳輸又需要相互協(xié)調(diào)工作,當(dāng)然也跟智能卡芯片內(nèi)核密切聯(lián)系,它們之間的調(diào)用關(guān)系如圖6所示。
為方便移植和其他模塊對SCD與SCR通道進(jìn)行透明調(diào)用,分別設(shè)置如下通道命令處理接口[6]:Scd_RecvByte(7816接口接收一個字節(jié)數(shù)據(jù)),Scd_SendByte(7816接口發(fā)送一個字節(jié)數(shù)據(jù)),Scd_Mode(SCD通道收發(fā)模式轉(zhuǎn)換),Scd_Close(SCD通道關(guān)閉),Scd_Reset(SCD通道重設(shè)),Set_Timer(SCD通道發(fā)送60函數(shù))Scr_Send(RF發(fā)數(shù)據(jù)),Scr_Recv(RF收數(shù)據(jù)),Scr_Data(RF數(shù)據(jù)緩存),Scr_param(RF的參數(shù)),Scr_Star(啟動射頻功能)。
4實(shí)驗(yàn)測試
經(jīng)過對各功能模塊進(jìn)行認(rèn)真研究、仔細(xì)分析和逐步細(xì)化的過程,最后設(shè)計(jì)出基于RF-SIM卡的多應(yīng)用COS結(jié)構(gòu)圖(圖7)。隨后在此COS結(jié)構(gòu)基礎(chǔ)上設(shè)計(jì)實(shí)驗(yàn)方案:硬件平臺是以AT90SC320288RCT安全芯片為基礎(chǔ)的RF-SIM芯片卡,編譯工具使用的是IAREWAVR4.3A開發(fā)平臺,應(yīng)用層設(shè)計(jì)了GSM應(yīng)用和RF應(yīng)用。GSM應(yīng)用是以電信EVDO卡為例設(shè)計(jì),RF應(yīng)用則以公交IC卡為例,在EVDO卡部分,文件模塊、安全模塊、命令模塊和通信模塊遵守GSM11.11系列規(guī)范和ISO7816規(guī)范。RF應(yīng)用方面,射頻通信符合ISO/IEC14443系列標(biāo)準(zhǔn),文件系統(tǒng)采用MAFIREI格式結(jié)構(gòu)。同時設(shè)計(jì)了STK菜單,支撐GSM應(yīng)用和公交IC卡的數(shù)據(jù)交互。最后經(jīng)過編碼、內(nèi)部測試、仿真、卡片下載流程之后,基本實(shí)現(xiàn)了電信EVDO卡和公交IC卡的功能與性能等方面的要求,從而驗(yàn)證了本設(shè)計(jì)方案的可行性。但是本方案只是在結(jié)構(gòu)上預(yù)留了其他應(yīng)用接口,而對應(yīng)用的動態(tài)更新還有待研究。
5總結(jié)
在多應(yīng)用環(huán)境下,重點(diǎn)對文件系統(tǒng)、安全機(jī)制和雙通道通信管理進(jìn)行了研究與設(shè)計(jì),最后基于RF-SIM卡設(shè)計(jì)了一種多應(yīng)用COS結(jié)構(gòu)和實(shí)現(xiàn)了一個簡單原型,具有較高的穩(wěn)定性和安全性,對其他研究人員設(shè)計(jì)多應(yīng)用COS有一定的借簽價值。
評論