基于web 技術(shù)的多應(yīng)用智能卡的研究
文章出處:http://bookmouse.cn 作者:苗壯,鄧中亮 人氣: 發(fā)表時間:2011年10月08日
1 引言
隨著芯片技術(shù)日新月異的發(fā)展,智能卡作為一種新興的應(yīng)用平臺,在諸多領(lǐng)域都有非常廣泛的應(yīng)用。智能卡的出現(xiàn)是微電子、計(jì)算機(jī)和信息安全等多學(xué)科技術(shù)綜合的復(fù)合技術(shù)成果。作為一種相對成熟的高技術(shù)產(chǎn)品,智能卡的廣泛應(yīng)用將會從多方面提高行業(yè)應(yīng)用水平。當(dāng)前,智能卡主要分為單應(yīng)用智能卡,靜態(tài)多應(yīng)用智能卡和動態(tài)多應(yīng)用智能卡三種類型。單應(yīng)用智能卡卡內(nèi)只有一個應(yīng)用,它的應(yīng)用是固化在智能卡內(nèi)的,不可改變的,靜態(tài)多應(yīng)用智能卡在
發(fā)卡前將多個應(yīng)用固化在卡內(nèi),卡上的應(yīng)用不能增加,也不能刪除的。動態(tài)多應(yīng)用智能卡內(nèi)有多個應(yīng)用,能夠在發(fā)卡后在卡上動態(tài)的刪除,安裝,更新應(yīng)用。與前兩種智能卡相比,動態(tài)多應(yīng)用智能卡無論是在技術(shù)上,還是在商業(yè)上都有著較大的優(yōu)勢。
動態(tài)多應(yīng)用智能卡以其平臺移植性好,安全性高,動態(tài)多應(yīng)用等技術(shù)特點(diǎn),以及能提高智能卡應(yīng)用系統(tǒng)效率,降低發(fā)卡成本等市場潛在優(yōu)勢成為了智能卡技術(shù)發(fā)展的熱門。本文以多應(yīng)用智能卡為依托,web 技術(shù)為導(dǎo)向,結(jié)合了智能卡與互聯(lián)網(wǎng)技術(shù),提出了以web 服務(wù)器技術(shù)實(shí)現(xiàn)動態(tài)多應(yīng)用智能卡的方案,并研究了基于web 技術(shù)的動態(tài)多應(yīng)用智能卡需要解決的一些技術(shù)問題,給出了基本理論方案。
2 web 技術(shù)分析及智能卡實(shí)現(xiàn)的可行性
2.1 web 服務(wù)器技術(shù)分析
web 服務(wù)器的主要功能是提供互聯(lián)網(wǎng)上的應(yīng)用服務(wù)。它起源于二十世紀(jì)八十年代,由歐洲量子物理實(shí)驗(yàn)室所發(fā)展出來的主從結(jié)構(gòu)分布式超媒體系統(tǒng)。通過互聯(lián)網(wǎng)的web 服務(wù)器,使用者只需簡單的通過瀏覽器的點(diǎn)擊,就可以很迅速方便運(yùn)行遠(yuǎn)程應(yīng)用,獲得相關(guān)服務(wù)和信息。
web 服務(wù)器采用的是客戶/服務(wù)器結(jié)構(gòu)。服務(wù)器整理和儲存各種應(yīng)用信息和數(shù)據(jù),通過響應(yīng)客戶端軟件的請求,執(zhí)行應(yīng)用邏輯流程或者是把客戶所需的資源從服務(wù)器傳送到客戶端的平臺上。
web 服務(wù)器通過和客戶瀏覽器間的交互就可以運(yùn)行商業(yè)邏輯,并且傳送頁面到客戶瀏覽器可以瀏覽。web 服務(wù)器同瀏覽器交互使用http 協(xié)議,服務(wù)器具有解析http 協(xié)議的功能。當(dāng)用戶通過遠(yuǎn)程瀏覽器鏈接到服務(wù)器時會發(fā)送http 請求,web 服務(wù)器接收到這個請求時,根據(jù)請求的內(nèi)容進(jìn)行相應(yīng)的處理后會返回一個http 響應(yīng),比如送回一個HTML 頁面。其中服務(wù)器對請求的處理分為很多種,可能是讀取返回一個靜態(tài)頁面或圖片,也可能需要更多的處理,服務(wù)器一般包含各種處理模塊處理各種動態(tài)情況,比如處理ASP 腳本,CGI 腳本,servlets,JSP 腳本等,這些模塊通過對請求的實(shí)時處理生產(chǎn)動態(tài)的結(jié)果再提交各web 服務(wù)器返回。最終web 服務(wù)器將產(chǎn)生一個HTML 的響應(yīng)發(fā)回供瀏覽器瀏覽。
2.2 智能卡實(shí)現(xiàn)web 服務(wù)器分析
根據(jù)傳統(tǒng)web 服務(wù)器的協(xié)議棧結(jié)構(gòu)及對應(yīng)功能,在協(xié)議的最上層為應(yīng)用層協(xié)議HTTP協(xié)議,智能卡的客戶端與傳統(tǒng)web 應(yīng)用的客戶端相同,即為標(biāo)準(zhǔn)瀏覽器,完全支持HTTP協(xié)議,服務(wù)器端即智能卡本身的處理能力也完全可以支撐HTTP 協(xié)議的解析;傳輸層方面,由于智能卡結(jié)構(gòu)限制,它不能作為一個獨(dú)立的通信端連接到網(wǎng)絡(luò),需要依附于終端共同作為為網(wǎng)絡(luò)上的一個節(jié)點(diǎn),終端與網(wǎng)絡(luò)直接的連接等同于傳統(tǒng)web 服務(wù)器的連接,終端通過智能卡CAT 相關(guān)協(xié)議與智能卡連接,兩部分都滿足傳輸層的可靠連接要求;網(wǎng)絡(luò)層方面,終端與智能卡作為一個整體使用終端在網(wǎng)絡(luò)上的IP 地址,作為一個網(wǎng)絡(luò)節(jié)點(diǎn)與傳統(tǒng)網(wǎng)絡(luò)使用相同的IP 協(xié)議;數(shù)據(jù)鏈路層方面,終端和網(wǎng)絡(luò)間使用傳統(tǒng)網(wǎng)絡(luò)協(xié)議,終端與卡之間通過ISO7816-4 協(xié)議交互數(shù)據(jù);物理層方面,終端與網(wǎng)絡(luò)間使用無線或雙絞線連接,終端與智能卡之間使用ISO7816-3 中定義的接口連接。綜上,在web 服務(wù)器協(xié)議棧的各個層次上均能有效的解決數(shù)據(jù)傳輸與處理功能,故智能卡上實(shí)現(xiàn)web 服務(wù)器是可行的。
3 智能卡web 服務(wù)器架構(gòu)設(shè)計(jì)及實(shí)現(xiàn)
3.1 總體設(shè)計(jì)
根據(jù)傳統(tǒng)web 服務(wù)器的組成結(jié)構(gòu), web 服務(wù)器需與網(wǎng)絡(luò)具有有效連接,即需要有網(wǎng)卡設(shè)備,這點(diǎn)智能卡本身的物理結(jié)構(gòu)是無法具備的,即智能卡本身無法獨(dú)立作為網(wǎng)絡(luò)上的節(jié)點(diǎn)連接網(wǎng)絡(luò)。所以需要為智能卡提供一個宿主設(shè)備,借用宿主設(shè)備的能力連接到網(wǎng)絡(luò)中,宿主設(shè)備可以使PC,POS,手機(jī)或者其他嵌入式設(shè)備。連接結(jié)構(gòu)為智能卡與宿主設(shè)備連接,設(shè)備與外部網(wǎng)絡(luò)連接,智能卡和終端設(shè)備作為整體的一個網(wǎng)絡(luò)節(jié)點(diǎn),終端提供數(shù)據(jù)轉(zhuǎn)發(fā),協(xié)議轉(zhuǎn)換等功能,智能卡提供實(shí)際的web 服務(wù)器功能。終端與網(wǎng)絡(luò)的連接跟傳統(tǒng)互聯(lián)網(wǎng)連接相同,這里不再贅述;智能卡與終端的連接根據(jù)智能卡相關(guān)協(xié)議設(shè)計(jì)協(xié)議棧,具體見圖1。
3.2 代理設(shè)計(jì)
終端作為網(wǎng)絡(luò)上的節(jié)點(diǎn),首先需要具有網(wǎng)卡設(shè)備連接網(wǎng)絡(luò),如果需要本地訪問服務(wù)器還需內(nèi)嵌標(biāo)準(zhǔn)或剪裁的瀏覽器,作為連接智能卡設(shè)備需要安裝有PCSC 相關(guān)驅(qū)動,最后,由于智能卡結(jié)構(gòu)限制,智能卡采用的協(xié)議棧跟傳統(tǒng)網(wǎng)絡(luò)協(xié)議棧不同,這樣終端需要安裝代理軟件。代理服務(wù)器英文全稱是Proxy Server,其功能就是代理網(wǎng)絡(luò)用戶去取得網(wǎng)絡(luò)信息。形象的說:它是網(wǎng)絡(luò)信息的中轉(zhuǎn)站。在一般情況下,我們使用網(wǎng)絡(luò)瀏覽器直接去連接其他Internet站點(diǎn)取得網(wǎng)絡(luò)信息時,須送出Request 信號來得到回答,然后對方再把信息以bit 方式傳送回來。代理服務(wù)器是介于瀏覽器和Web 服務(wù)器之間的一臺服務(wù)器,有了它之后,瀏覽器不是直接到Web 服務(wù)器去取回網(wǎng)頁而是向代理服務(wù)器發(fā)出請求,Request 信號會先送到代理服務(wù)器,由代理服務(wù)器來取回瀏覽器所需要的信息并傳送給你的瀏覽器[5]。
通用的代理服務(wù)器主要實(shí)現(xiàn)的是緩沖和存儲功能,而這里的智能卡代理服務(wù)器跟通用的代理服務(wù)器有一些區(qū)別,主要是應(yīng)用了代理服務(wù)器的基本定義,及智能卡服務(wù)器所需要的一些附加功能。作為實(shí)際的服務(wù)器智能卡和瀏覽器中間的橋梁,代理服務(wù)器轉(zhuǎn)接了兩邊傳遞的有效信息,這就需要代理服務(wù)器既能有效的和瀏覽器交互,也能有效的和智能卡進(jìn)行交互,此外,根據(jù)智能卡web 服務(wù)器的一些特點(diǎn),需要給終端的代理服務(wù)器添加一些特定的功能。
3.3 卡端服務(wù)器設(shè)計(jì)
首先從層次結(jié)構(gòu)上來講,智能卡的最低層就是其硬件構(gòu)成,處理器,存儲器等,然后是硬件及接口的驅(qū)動程序[6];接下來就是智能卡的操作系統(tǒng),即COS,COS 向上層屏蔽了底層的硬件實(shí)現(xiàn),支撐了智能卡的文件系統(tǒng)調(diào)度,上層協(xié)議和應(yīng)用等;再上層,就分為傳統(tǒng)的智能卡應(yīng)用和本文中的web 服務(wù)器應(yīng)用兩個分支,對于要研究web 服務(wù)器這一分支,智能卡COS 上實(shí)現(xiàn)了一個web server,通過web server 支持上層的具體智能卡web 應(yīng)用,整體層次如圖2 所示:
對于智能卡web 服務(wù)器功能,首先需要設(shè)計(jì)智能卡操作系統(tǒng)對web server 的支撐研究及智能卡web server 的模塊組成,實(shí)現(xiàn)模式,數(shù)據(jù)收發(fā)等內(nèi)容。首先需要實(shí)現(xiàn)跟外界交互,這就需要有通信協(xié)議棧。通過通信接口收發(fā)進(jìn)來的數(shù)據(jù)通過狀態(tài)機(jī)分發(fā)給http 引擎處理http層的數(shù)據(jù),http 引擎對應(yīng)的支撐部分由http 請求解析器,處理機(jī),CGI 解析器,配置器,數(shù)據(jù)庫支撐等,各部分根據(jù)職責(zé)分別處理不同方面的內(nèi)容,并統(tǒng)一的由智能卡操作系統(tǒng)和文件系統(tǒng)共同支撐。
4 web 智能卡動態(tài)多應(yīng)用技術(shù)實(shí)現(xiàn)
4.1 多應(yīng)用技術(shù)實(shí)現(xiàn)
web 服務(wù)器的應(yīng)用是通過應(yīng)用層的網(wǎng)頁和程序資源靜態(tài)或動態(tài)調(diào)用實(shí)現(xiàn)的,通過不同的邏輯調(diào)用和分離具有先天的多應(yīng)用性,一系列資源文件的組合就可以構(gòu)成一個應(yīng)用,服務(wù)器只需完成不同應(yīng)用間的邏輯和安全性隔離以及開發(fā)對應(yīng)的應(yīng)用入口即可實(shí)現(xiàn)。
在智能卡中實(shí)現(xiàn)設(shè)計(jì)如下。每個ADF 對應(yīng)一個web 應(yīng)用,ADF 下包含了該應(yīng)用所擁有的所有DF 和EF。任何情況下,通過使用ADF 的AID 訪問一個ADF 馬上能將該ADF 選為當(dāng)前應(yīng)用,ADF 的根目錄為當(dāng)前目錄。這樣通過ADF 實(shí)現(xiàn)對不同應(yīng)用資源序列的邏輯隔離,通過ADF 在MF 索引文件中的注冊提供應(yīng)用的邏輯入口。在安全方面,ADF 是應(yīng)用的根目錄,這樣它能利用智能卡文件系統(tǒng)的上的PIN 索引指定了該應(yīng)用的安全屬性, 存取該ADF下的目錄DF 和普通文件EF 需要驗(yàn)證這個PIN,利于同一應(yīng)用的安全管理和不同應(yīng)用間的安全隔離。主目錄通過應(yīng)用管理文件管理卡上web 應(yīng)用,每個web 應(yīng)用對應(yīng)一個ADF 結(jié)構(gòu)存儲,擁有相對獨(dú)立的文件結(jié)構(gòu)和安全屬性等[7]。
4.2 動態(tài)技術(shù)實(shí)現(xiàn)
動態(tài)應(yīng)用智能卡是指能夠在發(fā)卡后在卡上動態(tài)的刪除,安裝,更新應(yīng)用。傳統(tǒng)的單應(yīng)用智能卡不具備動態(tài)技術(shù)是因?yàn)槠鋺?yīng)用是以底層的c 語言程序的形式同智能卡COS 綁定到一起共同下載到智能卡上的,這種下載時下載轉(zhuǎn)換后的二進(jìn)制碼實(shí)現(xiàn)的,直接由智能卡處理器解析,這種應(yīng)用不具備動態(tài)性。要實(shí)現(xiàn)動態(tài)的智能卡應(yīng)用,就需要使應(yīng)用邏輯動態(tài)執(zhí)行,把有處理器執(zhí)行應(yīng)用邏輯的功能剝離出來由上層框架模塊實(shí)現(xiàn)。直接的解決辦法就是設(shè)計(jì)智能卡能夠支持的服務(wù)器腳本,并設(shè)計(jì)開發(fā)相應(yīng)的腳本解析器,通過解析器對腳本的動態(tài)解析實(shí)現(xiàn)隨時加入的應(yīng)用邏輯運(yùn)行。這就實(shí)現(xiàn)了動態(tài)應(yīng)用的最基本的問題,此外,動態(tài)技術(shù)能夠在發(fā)卡后動態(tài)的刪除,安裝,更新web 應(yīng)用,這部分功能可以借助APDU 指令,直接把上層的web 應(yīng)用資源文件轉(zhuǎn)化為APDU 指令序列,寫入智能卡文件系統(tǒng)實(shí)現(xiàn)動態(tài)安裝,刪除和更新也可類似實(shí)現(xiàn)[8]。
5 總結(jié)
本文通過對動態(tài)多應(yīng)用智能卡和web 技術(shù)的研究,提出了以web 技術(shù)實(shí)現(xiàn)動態(tài)多應(yīng)用智能卡的技術(shù)方案。通過在智能卡上實(shí)現(xiàn)輕量級的web 服務(wù)器,借助web 服務(wù)器的概念和功能,提供web 應(yīng)用層的多應(yīng)用,并提出了基于web 技術(shù)的動態(tài)多應(yīng)用智能卡的重要技術(shù)問題的解決辦法。對多應(yīng)用智能卡研究的新方法有一定指導(dǎo)意義,并且擴(kuò)充了智能卡應(yīng)用的廣度與實(shí)現(xiàn)形式。但本框架目前仍存在著不足之處, 智能卡應(yīng)用的層次被提升到web 應(yīng)用層,直接的影響會帶來應(yīng)用數(shù)據(jù)量的加大,一方面原因是由于協(xié)議層次增加造成附加數(shù)據(jù),另一方面是web 應(yīng)用本身就需要各種大容量資源,這會對智能卡的存儲能力提出一定挑戰(zhàn),需要進(jìn)一步的研究以待解決;另外現(xiàn)有的智能卡接口傳輸速度還相對較低,在面對web 應(yīng)用的大數(shù)據(jù)量傳輸會造成應(yīng)用響應(yīng)時間較長,發(fā)展到可接受的范圍之內(nèi)尚需硬件技術(shù)上的進(jìn)一步提高。但這一定程度上也會加速智能卡技術(shù)的進(jìn)一步發(fā)展。