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