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