智能卡3G COS軟件的設(shè)計(jì)與實(shí)現(xiàn)
文章出處:http://www.luckydriving.com 作者:覃毅 陳榮征 黃健 人氣: 發(fā)表時(shí)間:2011年09月29日
1 引言
3G系統(tǒng)能提供多類(lèi)型高質(zhì)量多媒體業(yè)務(wù),能實(shí)現(xiàn)全球無(wú)縫覆蓋,并具有全球漫游能力與固定網(wǎng)絡(luò)兼容。
COS(Chip Operation System)是智能卡芯片操作系統(tǒng)。是駐留智能卡內(nèi)的操作系統(tǒng)軟件,使智能卡實(shí)現(xiàn)“智能”的重要支撐平臺(tái)。優(yōu)秀的智能卡COS系統(tǒng)將使智能卡實(shí)現(xiàn)“安全可靠的應(yīng)用智能”。目前,3GCOS主要存在體系結(jié)構(gòu)模型、關(guān)鍵技術(shù)的選擇以及覆蓋模型的建立等三個(gè)問(wèn)題。體系結(jié)構(gòu)模型和關(guān)鍵技術(shù)的選擇主要體現(xiàn)的是COS系統(tǒng)的效率和擴(kuò)展性問(wèn)題,覆蓋模型的建立主要是為了適應(yīng)不同硬件UICC的需要。為了解決系統(tǒng)的效率和擴(kuò)展問(wèn)題,本文采用一種將層次結(jié)構(gòu)和微內(nèi)核結(jié)構(gòu)優(yōu)點(diǎn)相結(jié)合的半層次結(jié)構(gòu)模型;為了解決COS系統(tǒng)在不同硬件上的適應(yīng)性問(wèn)題,而又不增加COS系統(tǒng)的代碼量,系統(tǒng)決定采用從覆蓋模型到特殊模型相映射的方法,當(dāng)掩模罐裝到具體UICC硬件時(shí),由覆蓋模型根據(jù)具體要掩模的UICC硬件特征抽象出特殊模型,而不直接將覆蓋模型掩模到UICC中,這樣既可以減少COS系統(tǒng)的代碼量,又可以相對(duì)增加用戶(hù)數(shù)據(jù)可存儲(chǔ)量。
2 體系結(jié)構(gòu)設(shè)計(jì)
當(dāng)前,比較主流的系統(tǒng)模型主要有四種 J:?jiǎn)螇K式結(jié)構(gòu)模型、層次結(jié)構(gòu)模型、客戶(hù)/服務(wù)模型、REO模型,通過(guò)對(duì)四種模型各自的優(yōu)缺點(diǎn)、適用場(chǎng)景進(jìn)行詳細(xì)分析,本文根據(jù)3GCOS系統(tǒng)的設(shè)計(jì)目標(biāo)和設(shè)計(jì)原則,提出適合系統(tǒng)實(shí)際開(kāi)發(fā)的半層次結(jié)構(gòu)模型,如圖1所示。
2.1 各模塊功能劃分
COS結(jié)構(gòu)模型從整體上可劃分為兩大層次:功能模塊層和微內(nèi)核層。其中,功能層主要實(shí)現(xiàn)COS的應(yīng)用邏輯處理功能,主要包含通信管理模塊、安全管理模塊、命令解釋模塊、文件管理模塊。
(1)功能模塊層
通信管理模塊:對(duì)I/O輸入緩沖區(qū)中接收到的數(shù)據(jù)采取奇偶校驗(yàn)、累加和及分組長(zhǎng)度檢驗(yàn)等到手段進(jìn)行正確性判斷,不進(jìn)行信息內(nèi)容的判斷,判斷的標(biāo)準(zhǔn)參見(jiàn)ISO 7816—4 APDU指令結(jié)構(gòu);接收經(jīng)過(guò)安全管理、命令處理、文件管理處理后的信息,并按照ISO 7816 APDU指令結(jié)構(gòu)要求打包成完整的數(shù)據(jù)幀,發(fā)送到I/O的輸出緩沖區(qū)。
安全管理模塊:接受通信管理模塊的調(diào)度,并向通信管理模塊返回處理后的數(shù)據(jù)信息;將由通信管理模塊接收到的進(jìn)行安全驗(yàn)證;不做數(shù)據(jù)內(nèi)容的驗(yàn)證;當(dāng)安全驗(yàn)證不通過(guò)時(shí),直接向通信管理模塊返回?cái)?shù)據(jù)。
命令解釋模塊:接受安全管理模塊的調(diào)度,并向安全管理模塊返回處理后的數(shù)據(jù)信息,即返回與命令相對(duì)應(yīng)的響應(yīng)代碼;需要作數(shù)據(jù)內(nèi)容上的鑒別;當(dāng)數(shù)據(jù)內(nèi)容鑒別不通過(guò)時(shí),直接向通信模塊返回?cái)?shù)據(jù)。
文件管理模塊:接受命令管理模塊的調(diào)度,并執(zhí)行命令,向命令解釋模塊返回?cái)?shù)據(jù)。
(2)微內(nèi)核層
微內(nèi)核整體功能:對(duì)功能層的邏輯處理提供硬件支持,實(shí)現(xiàn)卡與終端的通信。微內(nèi)核分為轉(zhuǎn)換層、硬件接口層、硬件三個(gè)部分。轉(zhuǎn)換層接受功能層的調(diào)度,并將功能層的調(diào)度轉(zhuǎn)換為對(duì)底層驅(qū)動(dòng)接口的調(diào)用,向功能層提供統(tǒng)一的向上接口,實(shí)現(xiàn)對(duì)覆蓋模型各種底層硬件驅(qū)動(dòng)的管理,當(dāng)由覆蓋模型轉(zhuǎn)換為特殊模型時(shí),實(shí)現(xiàn)對(duì)底層驅(qū)動(dòng)的具體硬件配置,剝離覆蓋模型中冗余的底層驅(qū)動(dòng),在特殊模型中使功能層實(shí)現(xiàn)對(duì)底層驅(qū)動(dòng)的透明調(diào)用;硬件接口層主要實(shí)現(xiàn)對(duì)底層硬件的驅(qū)動(dòng)調(diào)度。
2.2 功能模塊之間的狀態(tài)轉(zhuǎn)換及調(diào)度關(guān)系
功能層各模塊之問(wèn)的關(guān)系表現(xiàn)為程序調(diào)度請(qǐng)求和數(shù)據(jù)響應(yīng)關(guān)系,模塊的輸出為程序調(diào)度請(qǐng)求,輸入為調(diào)度后得到的數(shù)據(jù)響應(yīng),調(diào)度和相應(yīng)均以事務(wù)來(lái)表示,而事務(wù)表示一組數(shù)據(jù)以及在數(shù)據(jù)上的一組操作。3GCOS功能層各模塊之間的狀態(tài)轉(zhuǎn)換與調(diào)度關(guān)系如圖2所示。
圖2 模塊狀態(tài)轉(zhuǎn)換及調(diào)度關(guān)系圖
其中,上圖中的事務(wù)2、事務(wù)3表示卡與終端之間的一種通信關(guān)系。
3 關(guān)鍵技術(shù)
3.1 系統(tǒng)主調(diào)度流程的設(shè)計(jì)
3.1.1 主調(diào)度流程
COS系統(tǒng)的調(diào)度流程,分主調(diào)度流程和功能子流程 。主流程對(duì)終端輸入指令的接收可以采用輪詢(xún)方式或中斷方式,由于采用輪詢(xún)方式系統(tǒng)開(kāi)銷(xiāo)較大,故在本文的3GCOS系統(tǒng)中采用了中斷調(diào)度方式。3GCOS主調(diào)度流程的執(zhí)行步驟如下:
(1)卡上電復(fù)位;
(2)發(fā)送ATR復(fù)位應(yīng)答指令的第一字節(jié);
(3)初始化系統(tǒng)運(yùn)行環(huán)境:初始化安全環(huán)境,清空I/O輸入輸出緩沖區(qū)APDU—IN—buffer、AP.DU— OUT— buffer;
(4)發(fā)送ATR剩余字節(jié);
(5)等待中斷指令信號(hào);
(6)調(diào)度中斷處理程序,獲取與中斷源相對(duì)應(yīng)的中斷服務(wù)程序入口地址;
(7)根據(jù)中斷服務(wù)程序入口地址,調(diào)度執(zhí)行中斷服務(wù)程序;
(8)判斷輸入緩沖區(qū)APDU指令的完整性;
(9)APDU指令不完整則返回⑤繼續(xù)等待中斷指令信號(hào);
(10)APDU指令完整,則系統(tǒng)關(guān)中斷,調(diào)度功能執(zhí)行子流程進(jìn)行命令處理,返回處理結(jié)果到輸出緩沖區(qū)APDU—OUT—buffer:
(11)調(diào)用輸出I/O輸出驅(qū)動(dòng),將APDU響應(yīng)指令發(fā)給終端;
(12)清空輸輸入輸出,緩沖區(qū);
(13)開(kāi)中斷,返回。
主層序執(zhí)行流程圖,如圖3所示。
3.1.2 算法描述
方案,現(xiàn)已完成軟件整體測(cè)試,系統(tǒng)運(yùn)行穩(wěn)定、可靠,符合ISO/IEC 7816和ISO/IECI443 TYPE B標(biāo)準(zhǔn)以及《中國(guó)金融集成電路(IC)卡規(guī)范》、《中國(guó)金融集成電路(IC)卡應(yīng)用規(guī)范》等標(biāo)準(zhǔn),現(xiàn)正進(jìn)行用戶(hù)測(cè)試。
(文/仲愷農(nóng)業(yè)技術(shù)學(xué)院現(xiàn)代教育技術(shù)中心 廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院 覃毅 陳榮征 黃健)