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