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