摘 要: 智能卡應(yīng)用框架" title="智能卡應(yīng)用框架">智能卡應(yīng)用框架是智能卡軟件結(jié)構(gòu)中的重要環(huán)節(jié)。介紹了兩種智能卡應(yīng)用框架OCF與PC/SC" title="PC/SC">PC/SC,分析了它們各自的特點(diǎn),并對(duì)它們進(jìn)行了對(duì)比分析。
關(guān)鍵詞: 智能卡應(yīng)用框架 OCF PC/SC COS NC
?
由于Internet在電子商務(wù)和人類生活中占有越來(lái)越重要的地位,人們對(duì)認(rèn)證和安全交易的要求也就越來(lái)越高。智能卡具有體積小、輕便易攜帶、可以自行存儲(chǔ)和處理數(shù)據(jù)并能執(zhí)行加密解密操作等優(yōu)點(diǎn),與網(wǎng)絡(luò)服務(wù)相結(jié)合,使它成為一個(gè)可以方便地存儲(chǔ)用戶密鑰和下載保密數(shù)據(jù)的設(shè)備。智能卡中包含有CPU、RAM、EEPROM、ROM和I/O,就像一部規(guī)模較小的電腦。智能卡的軟件結(jié)構(gòu)[1]由COS(Chip Operating System)系統(tǒng)、智能卡應(yīng)用框架及具體應(yīng)用程序" title="應(yīng)用程序">應(yīng)用程序構(gòu)成,如圖1所示。在此結(jié)構(gòu)中,最底層的COS系統(tǒng)負(fù)責(zé)底層硬件的管理;智能卡應(yīng)用框架定義了一整套編程接口類,提供應(yīng)用程序所需要的統(tǒng)一的應(yīng)用環(huán)境;應(yīng)用程序提供具體的智能卡服務(wù)。
1 OCF與PC/SC概述
PC/SC[2] (Personal Computer/Smart Card)是Windows平臺(tái)上智能卡訪問(wèn)的標(biāo)準(zhǔn)框架,其目的是減輕智能卡應(yīng)用程序在PC機(jī)上的開(kāi)發(fā)難度。PC/SC的主要優(yōu)點(diǎn)是:應(yīng)用程序與智能卡進(jìn)行通信時(shí)不必考慮智能卡讀卡器" title="智能卡讀卡器">智能卡讀卡器的具體細(xì)節(jié),即只要智能卡讀卡器遵從PC/SC標(biāo)準(zhǔn),應(yīng)用程序就能通過(guò)智能卡讀卡器正常行使功能。PC/SC體系結(jié)構(gòu)如圖2所示。其中,智能卡就是Integrated Circuit Card,智能卡讀寫器" title="智能卡讀寫器">智能卡讀寫器就是Interface Devices。智能卡插入讀寫器后,通過(guò)智能卡讀寫器與驅(qū)動(dòng)程序的智能卡讀寫控制器(IFD Handler)通信。智能卡資源管理器(ICC Resource Manager)管理各種不同的智能卡讀寫器和智能卡資源。每一種智能卡讀寫器都通過(guò)各自的智能卡讀寫控制器接口函數(shù)與智能卡資源管理器通信,智能卡資源管理器根據(jù)上層軟件的要求,將上層軟件發(fā)來(lái)的命令分別發(fā)到相應(yīng)的智能卡讀寫控制器,再通過(guò)它發(fā)給智能卡讀寫器和智能卡。
OCF[3](Open Card Framework)是一個(gè)用于實(shí)現(xiàn)智能卡解決方案和智能卡服務(wù)的易于使用的標(biāo)準(zhǔn)框架。OCF充分利用Java跨平臺(tái)、多用途的特性,為實(shí)現(xiàn)智能卡解決方案和智能卡服務(wù)提供一個(gè)開(kāi)放的架構(gòu)和一套通用的應(yīng)用程序(APIs)。OCF的體系結(jié)構(gòu)如圖3所示。其中,智能卡服務(wù)(CardService)是一個(gè)抽象類,其意義是卡上的服務(wù),它的子類通過(guò)包裝一系列APDUs(Application Protocol Data Units)提供具體的服務(wù)內(nèi)容;智能卡服務(wù)標(biāo)識(shí)(CardServiceFactory)同智能卡終端標(biāo)識(shí)(CardTerminalFactory)功能相似,應(yīng)用服務(wù)商提供自己的智能卡服務(wù)標(biāo)識(shí)代表其自身,由智能卡服務(wù)標(biāo)識(shí)產(chǎn)生它們的各種服務(wù),即一些智能卡服務(wù)實(shí)例;智能卡服務(wù)管理(CardServiceRegistry)管理卡上的所有智能卡服務(wù)對(duì)象;智能卡服務(wù)通信管理器(CardServiceShcduler)為服務(wù)所需的通信安排通道,給智能卡服務(wù)對(duì)象提供一個(gè)邏輯通道以便發(fā)送接收命令完成任務(wù);智能卡終端(CardTerminal)從各種智能卡終端抽象出來(lái)可被繼承的類,由其對(duì)應(yīng)的智能卡終端標(biāo)識(shí)(CardTerminalFactory)生產(chǎn)得到;智能卡終端管理(CardTerminalRegistry)管理應(yīng)用系統(tǒng)中安裝的所有智能卡終端,可對(duì)智能卡終端進(jìn)行實(shí)例注冊(cè)、注銷等操作;智能卡終端標(biāo)識(shí)同特定的工廠生產(chǎn)的產(chǎn)品一樣,不同的智能卡終端制造商提供具體的智能卡終端標(biāo)識(shí)子類,由這些子類產(chǎn)生對(duì)應(yīng)的智能卡終端實(shí)例。
?
2 OCF與PC/SC的聯(lián)系
OCF與PC/SC均提供智能卡與各種計(jì)算機(jī)的訪問(wèn)標(biāo)準(zhǔn),它們?cè)诟拍钆c機(jī)制方面存在著共同點(diǎn)。通過(guò)對(duì)比它們的構(gòu)成,可發(fā)現(xiàn)它們之間的共同點(diǎn)與不同點(diǎn)。
(1)OCF與PC/SC結(jié)構(gòu)上的共同點(diǎn)
PC/SC中的智能卡服務(wù)提供者提供智能卡服務(wù),與其相對(duì)應(yīng)OCF中由智能卡服務(wù)來(lái)提供;OCF中的智能卡終端與PC/SC中的智能卡讀寫器系統(tǒng)(Interface Device Subsystem)相對(duì)應(yīng)。因此,OCF與PC/SC有很多共同點(diǎn)。具體如圖4所示。
(2)OCF與PC/SC的不同點(diǎn)
進(jìn)一步分析發(fā)現(xiàn),OCF與PC/SC在內(nèi)部結(jié)構(gòu)也有很多不同。例如,OCF對(duì)智能卡終端未提供更進(jìn)一步的結(jié)構(gòu)劃分,而PC/SC中的智能卡讀寫器系統(tǒng)由智能卡讀寫器和智能卡讀寫控制器組成。
OCF與PC/SC的密碼服務(wù)框架不同,PC/SC定義了一個(gè)密碼服務(wù)提供者(Crypto Service Provider),而OCF將其封裝在內(nèi)部,沒(méi)有定義專門的接口。
OCF與PC/SC最重要的區(qū)別是:OCF比PC/SC有更詳細(xì)的結(jié)構(gòu)劃分,OCF對(duì)智能卡服務(wù)與智能卡服務(wù)程序管理(ApplicationManagementCardService)有嚴(yán)格的區(qū)分。
整體對(duì)比如表1所示。
在Windows平臺(tái)Java語(yǔ)言環(huán)境下,OCF與PC/SC出現(xiàn)重疊。具體如表2所示。
?
3 OCF與PC/SC的共存
PC機(jī)上不同的應(yīng)用程序可能有的使用OCF,有的使用PC/SC,但它們之間不會(huì)出現(xiàn)沖突,因?yàn)镺CF協(xié)會(huì)與PC/SC協(xié)會(huì)對(duì)兩者共用有詳細(xì)的規(guī)定,以保證兩者共存而不產(chǎn)生沖突。例如:OCF支持現(xiàn)有的PC/SC接口設(shè)備,OCF還提供了一個(gè)到PC/SC的接口,使得開(kāi)發(fā)者可以使用現(xiàn)有Win32平臺(tái)的設(shè)備;OCF對(duì)智能卡操作系統(tǒng)(Card operating system)、特定的應(yīng)用程序所對(duì)應(yīng)的智能卡服務(wù)(Application-specific card services)和應(yīng)用程序管理(Application management)的詳細(xì)定義可以作為對(duì)PC/SC的擴(kuò)展。
智能卡應(yīng)用框架的提出給應(yīng)用程序開(kāi)發(fā)者、智能卡和智能卡終端投資商等帶來(lái)了極大的方便。使得智能卡的應(yīng)用實(shí)現(xiàn)了從“一對(duì)一” 到“多對(duì)多”的轉(zhuǎn)換,并為開(kāi)放式智能卡應(yīng)用構(gòu)造了一個(gè)統(tǒng)一標(biāo)準(zhǔn)框架。
(1)對(duì)于遵循智能卡應(yīng)用框架的應(yīng)用程序,可以適用于任何一張開(kāi)放式智能卡,應(yīng)用程序不需重復(fù)開(kāi)發(fā),開(kāi)發(fā)費(fèi)用大大減少。
(2)對(duì)于遵循智能卡應(yīng)用框架開(kāi)發(fā)的智能卡,不僅可裝載不同組織提供的多個(gè)應(yīng)用程序,而且一旦運(yùn)用環(huán)境變化,可方便地裝載和卸載來(lái)更換卡上的應(yīng)用程序。
像其他許多新技術(shù)一樣,智能卡有許多令人眼花繚亂的技術(shù)標(biāo)準(zhǔn)。本文僅簡(jiǎn)要介紹了兩種智能卡應(yīng)用框架OCF與PC/SC,并對(duì)他們進(jìn)行了對(duì)比分析。對(duì)于其他一些系統(tǒng)的特殊標(biāo)準(zhǔn)還須另外掌握。
參考文獻(xiàn)
[1] 邵華,王恒奎,王東琳.基于UML建模語(yǔ)言的開(kāi)放式智能卡應(yīng)用模型[J].計(jì)算機(jī)工程, 2004, 30(5):181-183.
[2] ?PC/SC Version 2.0 White Paper. http://www.pscsworkgroup.com/.1999.
[3] ?OpenCard Framework. http://www.opencard.org/.1997.
[4] ?李濤,楊斌. 用VC開(kāi)發(fā)智能卡動(dòng)態(tài)庫(kù)[J].計(jì)算機(jī)工程, 2004,30(15):166-168.
[5] ?王非,羅海勇. 網(wǎng)絡(luò)計(jì)算機(jī)中IC卡讀寫器子系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用. 2003,29(5):19-21.






