一種跨行業(yè)多應用智能卡系統模型及實(shí)現
文章出處:http://psychicreadingswithdeb.com 作者:董威 楊義先 人氣: 發(fā)表時(shí)間:2011年09月22日
[文章內容簡(jiǎn)介]:在分析單應用智能卡和多應用智能卡關(guān)鍵技術(shù)的基礎上,提出了一種跨行業(yè)多應用智能卡系統模型,對模型各模塊關(guān)鍵技術(shù)及模型安全性進(jìn)行了研究,采用Java Card技術(shù)對模型予以實(shí)現,并對該實(shí)現進(jìn)行了評估,討論了下一步的研究重點(diǎn)。
智能卡可以安全地存儲個(gè)人私密信息并便于攜帶,逐漸成為身份鑒別和提供認證服務(wù)的關(guān)鍵模塊,現被廣泛應用于不同領(lǐng)域,被稱(chēng)為信息時(shí)代的通行證。
隨著(zhù)微電子技術(shù)的發(fā)展,智能卡硬件資源越來(lái)越豐富,使智能卡上實(shí)現通用操作系統、開(kāi)發(fā)復雜應用以及存儲更多行業(yè)數據成為可能。同時(shí),利用智能卡技術(shù)提供服務(wù)或進(jìn)行增值業(yè)務(wù)推廣的行業(yè)逐漸增多,使跨行業(yè)多應用智能卡技術(shù)成為智能卡技術(shù)的發(fā)展方向。
通過(guò)研究智能卡工作原理和特點(diǎn),分析了單應用卡的缺點(diǎn),提出了一個(gè)支持跨行業(yè)多應用的智能卡軟件系統模型,分析了模型中各模塊關(guān)鍵技術(shù)及模型安全性,采用Java Card技術(shù)進(jìn)行了實(shí)現,證明模型的可行性,最后討論了下一步的研究方向。
1單應用智能卡技術(shù)分析
1.1智能卡技術(shù)分析
ISO78l6系列規范對智能卡(Smart Card)的物理電氣特性、文件系統結構、通信協(xié)議進(jìn)行了規定。智能卡不能單獨提供服務(wù),必須配合終端(如帶卡讀寫(xiě)器的電腦、手機等)工作,智能卡和終端之間采用應用協(xié)議數據單元(Application Protocol Data Unit,APDU)進(jìn)行通信。其中智能卡主要負責安全的數據訪(fǎng)問(wèn)和數據存儲。對智能卡中敏感數據的操作由卡上的CPU完成,不需傳出卡外,只是由終端發(fā)出命令,卡內部進(jìn)行處理之后再給出相應的應答數據并表明處理過(guò)程成功或失敗,保證了信息的安全保密性。
文件系統整體結構為樹(shù)狀目錄結構,其中目錄文件MF(Master File)是所有文件的根節點(diǎn),MF包含其它目錄文件DF(Dedicated File)和數據文件EF(Elementary File)。目錄文件DF可包含其它目錄文件和數據文件,不能用來(lái)存儲數據,所有的數據都存儲在不同目錄下的數據文件EF中,數據文件EF不能作為其它文件的目錄,是末節點(diǎn)。
通過(guò)設置文件訪(fǎng)問(wèn)操作的安全機制,可以實(shí)現數據的安全訪(fǎng)問(wèn)。安全機制包括基于PIN 碼(Personal Identification Number)的身份鑒別、基于密鑰的身份鑒別、數據冗余校驗和數據加密。PIN 碼和密鑰由特殊的數據文件保存,用于進(jìn)行文件訪(fǎng)問(wèn)時(shí)的安全校驗。外部實(shí)體必須具有特殊的權限,才允許讀取和修改密鑰和密碼文件數據。
根據分析,智能卡應用主要體現為按照終端的APDU命令在智能卡上執行相應的處理邏輯,用來(lái)完成安全認證、對卡上數據的讀寫(xiě)操作以及進(jìn)行操作的安全檢查等功能。
1.2單應用卡技術(shù)分析
單應用智能卡是只能與同一類(lèi)終端配合、提供單一行業(yè)服務(wù)的智能卡。單應用智能卡的應用由單個(gè)服務(wù)提供商開(kāi)發(fā),只有針對特定APDU命令的處理邏輯,只有一套文件系統來(lái)維護數據,用同一套PIN碼和密鑰保證文件數據的安全讀寫(xiě)。單應用卡的應用和卡操作系統往往綁定在一起,優(yōu)點(diǎn)是結構緊湊、系統簡(jiǎn)單,但卡的升級和增加APDU處理邏輯困難。
由于當前應用于各行業(yè)的智能卡主要是單應用智能卡,用戶(hù)需要使用多張智能卡才能得到不同行業(yè)的智能卡服務(wù)。由此產(chǎn)生如下問(wèn)題:
(1)用戶(hù)需保管多張智能卡,增加了用戶(hù)攜帶和管理卡的難度。
(2)多張卡往往會(huì )保存很多相同的數據信息,造成數據的重復存儲。
(3)單張智能卡數據存儲空間和數據處理能力未能得到充分利用,造成硬件資源的浪費。
(4)不同行業(yè)在開(kāi)發(fā)自己服務(wù)的時(shí)候,需要各自開(kāi)發(fā)操作系統和數據服務(wù),造成操作系統、同類(lèi)指令處理邏 的重復開(kāi)發(fā)。
(5)發(fā)卡后,無(wú)法動(dòng)態(tài)添加應用,尤其是不同行業(yè)的應用添加困難、增值服務(wù)開(kāi)發(fā)部署的困難。
(6)不同行業(yè)約定的具體APDU命令指令內容不同,不利于終端的標準化和終端多應用的實(shí)現。多應用智能卡技術(shù)可以充分利用智能卡的硬件資源,減少持卡人攜卡數量,降低卡的使用成本。
2多應用智能卡模型
當前智能卡提供的服務(wù)主要可分為3類(lèi):
(1)安全的個(gè)人數據存儲:如身份證卡。
(2)認證:如SIM卡。
(3)電子支付:如信用卡。
通過(guò)合理的系統設計,完全可以將以上的服務(wù)集成到同一張卡上。
2.1多應用技術(shù)問(wèn)題分析
多應用智能卡技術(shù)將多個(gè)應用提供商提供的應用發(fā)布在一張智能卡上而互不影響,在為用戶(hù)提供多種服務(wù)的同時(shí),減少數據冗余,降低使用成本,提高新應用發(fā)布效互苤,為用戶(hù)攜帶、使用和管理智能卡提供便利。一張卡上開(kāi)發(fā)多個(gè)應用尤其是不同行業(yè)間的應用,核心問(wèn)題如下:
(1)不同的應用之IhI~1何做到互不干擾,防止應用問(wèn)惡意訪(fǎng)問(wèn)。包括實(shí)現數據文件相互隔離和APDU命令處理邏輯隔離。
(2)如何在保證安全的基礎上實(shí)現基本數據和處理邏輯的共享。
(3)終端如何識別和啟動(dòng)智能卡上的不同應用。
(4)不同應用如何認證卡外實(shí)體(如終端、持卡人.卡工作所在的網(wǎng)絡(luò )等)??ㄍ鈱?shí)體如何認證卡。
(5)如何為不同的應用與終端建立安全通信通道。
(6)如何添加和刪除應用。
(7)發(fā)卡商和服務(wù)提供商如何分別管理控制自己的卡上應用。
針對上述問(wèn)題,下文給出了一個(gè)多應用智能卡軟件系統模型。
2.2模型整體結構
模型的設計原則遵從ISO7816相關(guān)規范,以便提高系統行業(yè)兼容性。系統結構如圖2所示。
(1)卡操作系統模塊:卡操作系統主要負責存儲器的管理、I/0通信等硬件相關(guān)的功能,同時(shí)完成對上層程序的管理??ú僮飨到y為上層程序提供標準API(Application Programm—ing Interface),上層的程序不需要直接操作硬件,實(shí)現應用和硬件的隔離、應用和系統的分離。
(2)多文件系統模塊:目前的智能卡主要以文件系統的邏輯形式維護數據,基于兼容性考慮,本模型的數據存儲采用文件系統結構,并將單文件系統改造為多文件系統。多文件系統邏輯結構由不同行業(yè)的專(zhuān)有文件系統和基本文件系統組成,每個(gè)文件系統的結構與單文件系統的結構相同。不同文件系統有各自的根節點(diǎn),互不隸屬?;疚募到y主要包含卡的公共信息、基本文件系統自身的PIN 碼和密鑰,同時(shí)保存卡上應用的注冊信息。注冊信息在創(chuàng )建應用時(shí)寫(xiě)入基本文件系統的注冊文件,用來(lái)為終端提供應用選擇的入口。行業(yè)專(zhuān)有文件系統保存各自的行業(yè)數據、密鑰和PIN 碼信息。為了安全,多文件系統需要滿(mǎn)足:所有的文件系統均可以共享基本文件系統內容,但不同的文件系統嚴格透明,不能相互訪(fǎng)問(wèn);文件系統的安全訪(fǎng)問(wèn)策略一致,但PIN碼和密鑰獨立。
(3)基本處理邏輯模塊:基于文件系統結構一致性,將文件系統訪(fǎng)問(wèn)APDU命令接口規范化,進(jìn)而實(shí)現統一的基本處理邏輯模塊?;咎幚磉壿嬆K由3個(gè)子模塊組成。其中文件服務(wù)子模塊完成不同行業(yè)通過(guò)標準APDU命令申請的文件服務(wù)。PIN 管理邏輯子模塊提供基本的PIN服務(wù),完成基于密碼的用戶(hù)身份認證邏輯。密碼服務(wù)邏輯子模塊主要負責密鑰管理、基本加密算法服務(wù)、基于密碼的基本認證協(xié)議(外部實(shí)體認證卡內應用,卡內應用認證卡外實(shí)體)和通信信道數據加密服務(wù)。PIN 碼管理和密碼服務(wù)子模塊是智能卡安全的核心。密碼算法的選取需要考慮智能卡的硬件資源限制。不同應用共享文件處理邏輯模塊不會(huì )降低系統的安全性,系統安全性依賴(lài)于文件系統的獨立和PIN密碼、密鑰的獨立保密性,也就是安全不取決于處理流程的保密,而是取決于數據的獨立和密碼的保密性。
(4)行業(yè)專(zhuān)有處理邏輯模塊(可選項):不同行業(yè)服務(wù)會(huì )要求處理特殊APDU命令,因此能在卡上動(dòng)態(tài)添加行業(yè)專(zhuān)有邏輯可提高系統通用性。為了保證不同行業(yè)處理邏輯的獨立和安全,需要設置安全隔離機制對行業(yè)專(zhuān)有邏輯實(shí)施隔離。
(5)模型總結:本模型將應用和系統分離,使得應用的動(dòng)態(tài)部署成為可能。模型中的應用由行業(yè)專(zhuān)有處理邏輯、基本處理邏輯,專(zhuān)有文件系統和基本文件系統組成。通過(guò)基本處理邏輯模塊和基本文件系統的共享,克服了資源的浪費,充分降低了卡的開(kāi)發(fā)成本。不同應用的白有處理邏輯問(wèn)通過(guò)隔離機制阻隔,行業(yè)文件系統間的互不隸屬、PIN 碼和密鑰的獨立存儲保證了數據和密碼的安全性。密碼服務(wù)子模塊提供卡與卡外實(shí)體的相互認證、數據通信的加密,基于密碼服務(wù)子模塊可實(shí)現高層的安全協(xié)議。
2.3.1應用的添加和刪除流程
在卡上添加行業(yè)應用,首先終端和卡通過(guò)密碼服務(wù)子模塊進(jìn)行身份認證,建立信任關(guān)系、協(xié)商信道會(huì )話(huà)密鑰、建立安全信道。然后獲得特權的終端用密文申請文件系統服務(wù),卡通過(guò)密碼服務(wù)子模塊解密命令、檢查卡的安全狀態(tài),在安全條件滿(mǎn)足的情況下,通過(guò)文件服務(wù)子模塊創(chuàng )建行業(yè)文件系統結構,根據終端的命令,將文件系統內容初始化。最后在基本文件系統的注冊記錄文件中添加新應用的注冊信息。根據需要,可下載專(zhuān)有的處理邏輯到卡上,卡操作系統負責處理邏輯的注冊和管理。刪除卡上行業(yè)應用,其安全機制與添加過(guò)程一致。在安全狀態(tài)滿(mǎn)足的情況下,刪除這個(gè)應用(包括行業(yè)專(zhuān)有處理邏輯、專(zhuān)有文件系統)。最后在基本文件系統的注冊記錄文件中刪除本應用的注冊信息??ú僮飨到y負責處理邏輯注冊信息的刪除。
2.3.2應用的工作流程
終端通過(guò)選擇并讀取基本文件系統的注冊記錄文件,獲得應用的注冊信息,根據注冊信息訪(fǎng)問(wèn)某行業(yè)文件系統、激活行業(yè)專(zhuān)有邏輯。終端調用卡上不同服務(wù)時(shí),發(fā)生應用切換,即:當前提供服務(wù)的文件系統發(fā)生切換,同時(shí)卡所能調用的行業(yè)專(zhuān)有邏輯也會(huì )發(fā)生切換,原來(lái)的行業(yè)專(zhuān)有邏輯不能被調用,卡的安全狀態(tài)復位。通過(guò)行業(yè)文件系統與專(zhuān)有邏輯的一致性切換和安全狀態(tài)復位機制,可保證應用的整體切換,阻止應用間惡意攻擊。
2.4安全分析
安全是智能卡系統的核心,本多應用系統模型安全性并未降低,分析如下:
(1)多行業(yè)專(zhuān)有處理邏輯共存不會(huì )降低系統安全性。各行業(yè)處理邏輯間有隔離機制防護,只能在卡操作系統規定的程序空問(wèn)內運行,無(wú)法入侵系統和其它處理邏輯。各處理邏輯相互透明,卡操作系統通過(guò)隔離機制為每個(gè)邏輯模擬了一個(gè)單應用系統環(huán)境。如某處理邏輯模塊在功能設計和實(shí)現中存在問(wèn)題,其缺陷僅能影響本行業(yè)服務(wù),而不會(huì )影響其它正常服務(wù),所以行業(yè)專(zhuān)有操作邏輯的失誤在多應用卡上造成的后果與單應用卡上相同。
(2)多個(gè)文件系統共存和基本處理邏輯的共享不會(huì )降低系統安全性。除基本文件系統為不同的應用共享外,其它文件系統相互獨立和透明,彼此之間互不影響。支撐文件系統安全機制的密碼和密鑰相互獨立,為文件系統提供獨立的安全空間,安全空間內的文件系統安全性等同于單文件系統卡。
基本處理邏輯的設計不基于具體的文件系統內容,而是對抽象的文件系統結構進(jìn)行處理,不同的文件系統對基本處理邏輯來(lái)說(shuō)是同一個(gè)對象。因而從文件系統的角度來(lái)看,共享的基本處理邏輯與單文件系統中的獨享處理邏輯沒(méi)有區別;從基本處理邏輯的角度來(lái)看,多文件系統結構與單文件系統結構不存在差別。
(3)發(fā)卡商和服務(wù)提供商共同管理卡和應用不會(huì )降低卡和應用的安全性。通過(guò)設計合理的密碼協(xié)議,可以保證多應用卡的安全管理而不降低應用的安全性。一個(gè)安全管理協(xié)議如下。首先定義兩類(lèi)密鑰,卡管理密鑰和服務(wù)密鑰??ü芾砻荑€負責對卡的管理權限進(jìn)行認證;服務(wù)密鑰負責實(shí)現應用的安全機制。管理協(xié)議的框架如下:
1)由發(fā)卡商定義所有卡的管理操作(如卡的生命周期的管理,應用的添加、刪除等)。
2)發(fā)卡商按不同服務(wù)商的需要將卡管理操作分組,每組操作指定一個(gè)卡管理密鑰。
3)發(fā)卡商將不同的卡管理密鑰分配給各服務(wù)提供商。
4)發(fā)卡商通過(guò)和服務(wù)提供商分享卡管理密鑰共同管理卡,服務(wù)提供商用得到的卡管理密鑰進(jìn)行身份認證,就可以執行密鑰對應的某些卡管理操作。而發(fā)卡商擁有對卡的最高管理權限密鑰 不同服務(wù)商的卡管理密鑰不同,因而對卡的管理權不同,且無(wú)法互相偽裝。
5)服務(wù)提供商在卡上獨立創(chuàng )建各自的服務(wù)密鑰,負責實(shí)施服務(wù)的安全機制。由于服務(wù)密鑰獨立于卡管理密鑰和其它的服務(wù)密鑰,因此無(wú)法用卡管理密鑰和其它服務(wù)密鑰替代本服務(wù)密鑰申請服務(wù)。
6)服務(wù)商在卡管理上對卡商的依賴(lài)性保護了卡商管理卡的地位,同時(shí)其對自己應用的安全機制獨立負責。
3模型實(shí)現及評估
模型實(shí)現的硬件平臺采用三星公司S3FS9QB智能卡芯片,系統軟件設計采用Java Card技術(shù)。Java Card技術(shù)是目前主流的卡操作系統技術(shù),可提供用Java語(yǔ)言進(jìn)行上層處理邏輯開(kāi)發(fā)的運行環(huán)境,上層處理邏輯可以動(dòng)態(tài)下載到卡上,系統為不同的處理邏輯提供防火墻隔離。
Java Card技術(shù)的防火墻和數據共享機制 可以有效完成處理邏輯的隔離和數據共享,但難以實(shí)現靈活的行業(yè)問(wèn)數據共享。本模型中將行業(yè)數據以多文件系統的形式進(jìn)行維護,克服了Java Card技術(shù)的缺點(diǎn)。
多文件系統模塊在實(shí)現中遵循了3GPP 電信組織(3rd Generation Partnership Project)定義的相關(guān)規范 J,使得模型實(shí)現具有通用性。密碼服務(wù)子模塊在實(shí)現中采用了GlobalPlatform技術(shù)的安全策略,可以實(shí)現發(fā)卡商和服務(wù)提供商對卡上各自應用的管理。
基于本多應用系統模型的實(shí)現,通過(guò)部署電信服務(wù)處理邏輯和電信業(yè)文件系統實(shí)現了SIM 卡服務(wù)功能,通過(guò)下載電子錢(qián)包處理邏輯和創(chuàng )建電子錢(qián)包文件系統,實(shí)現了電子錢(qián)包服務(wù),在一張卡上實(shí)現了多應用,證明了方案的可行性。
基于本模型,系統在部署新行業(yè)服務(wù)時(shí),既要在卡上提供新APDU命令的處理邏輯,又要在卡讀寫(xiě)終端上添加同樣的ADPU命令發(fā)送邏輯,為多應用部署和終端的標準化造成了障礙。本模型進(jìn)一步的El標是在滿(mǎn)足兼容性前提下,研究非文件系統結構的數據存儲形式和設計基于A(yíng)PDU的卡與終端的高層通信協(xié)議。
本文關(guān)鍵詞:智能卡,系統模型,JavaCard技術(shù),,能卡,系統模型,JavaCard技術(shù),多,卡,系統模型,JavaCard技術(shù),多應,,系統模型,JavaCard技術(shù),多應用
上一篇:MF1卡常見(jiàn)問(wèn)題及處理建議[ 09-22 ]
下一篇:非接觸式智能IC卡在井下人員定位系統中的應用[ 09-22 ]