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