聯(lián)通興業(yè)通信技術(shù)有限公司 王俊清
金融USIM卡多應(yīng)用加載的安全性和互操作性研究
聯(lián)通興業(yè)通信技術(shù)有限公司 王俊清
在USIM卡上加載金融應(yīng)用是當(dāng)前的熱門(mén)話題,但由于電信卡本身因?yàn)槎嘟巧珟?lái)的安全性管理問(wèn)題,聯(lián)通目前的USIM卡互操作性與理想狀態(tài)還有一定距離。無(wú)論是對(duì)前期的資源節(jié)約還是對(duì)后期的升級(jí)擴(kuò)展和管理都帶來(lái)了一定的困難和挑戰(zhàn)。本文從規(guī)范、技術(shù)和管理幾方面入手,分析聯(lián)通金融USIM卡多應(yīng)用加載的安全性和互操作性現(xiàn)狀,并針對(duì)存在的問(wèn)題提出了一些可供參考的解決辦法。
USIM;SWP;PBOC;JAVA;安全;互操作性
各種銀行卡、積分卡,在皮包中越積越多,購(gòu)物時(shí)拿出一摞卡來(lái)尋找,已經(jīng)不是陌生的場(chǎng)面。因此,支持多種移動(dòng)電子商務(wù)應(yīng)用(如多銀行卡手機(jī)錢(qián)包、一卡通等),使得應(yīng)用能夠靈活獲取和升級(jí),無(wú)需用戶換卡,降低業(yè)務(wù)營(yíng)銷(xiāo)成本,最終達(dá)到用手機(jī)吸納眾多卡,即USIM卡承擔(dān)包含金融卡功能在內(nèi)的多種卡片功能不僅是業(yè)務(wù)需求,也是移動(dòng)電子商務(wù)業(yè)務(wù)發(fā)展的目標(biāo)。
一卡多應(yīng)用的加載包含發(fā)卡時(shí)預(yù)置和后期加載兩種,由于商業(yè)利益分配和前期推廣及后期業(yè)務(wù)發(fā)展的需求,后期加載無(wú)疑是最有發(fā)展前景并符合市場(chǎng)的。需要解決的主要問(wèn)題有兩個(gè):安全問(wèn)題和互操作性問(wèn)題。
互操作性用來(lái)衡量一個(gè)系統(tǒng)信息共享和使用效率的能力,廣義講,互操作性是指不同的計(jì)算機(jī)系統(tǒng)、網(wǎng)絡(luò)、操作系統(tǒng)和應(yīng)用程序一起工作并共享信息的能力。而此處我們研究的金融應(yīng)用的互操作性是指同一個(gè)金融應(yīng)用可以在聯(lián)通所有同規(guī)格卡上運(yùn)行的能力。
目前,聯(lián)通3G卡是高性能的JAVA卡,但潛能還遠(yuǎn)未發(fā)揮出來(lái),沒(méi)有超越過(guò)去Native卡的功能。完成的任務(wù)依然是過(guò)去Native卡所能實(shí)現(xiàn)的STK菜單,具體應(yīng)用大都采用預(yù)置方式提前寫(xiě)入。
另外,聯(lián)通目前的USIM卡互操作性很差。聯(lián)通供卡商們要負(fù)責(zé)各自應(yīng)用的編寫(xiě),即本來(lái)是一個(gè)應(yīng)用,如果采用12家卡商的卡需要12家根據(jù)各自的卡編寫(xiě)12個(gè)應(yīng)用程序。這就是說(shuō)JAVA卡本身所具備的良好的擴(kuò)展性和互操作性?xún)?yōu)勢(shì)完全沒(méi)有發(fā)揮出來(lái),不僅浪費(fèi)卡商人力物力,而且為了下載準(zhǔn)確,手機(jī)端和系統(tǒng)端都要浪費(fèi)資源去管理和維護(hù),至于實(shí)現(xiàn)第三方應(yīng)用編程和統(tǒng)一管理就更不可能了。
聯(lián)通金融USIM卡是符合JAVA和GP平臺(tái)規(guī)范的含有USIM應(yīng)用和PBOC應(yīng)用的SWP卡。主要遵循七部分規(guī)范:UICC規(guī)范、USIM規(guī)范、JAVA卡規(guī)范、GP規(guī)范、SWP卡規(guī)范、HCI規(guī)范和PBOC2.0規(guī)范。
UICC規(guī)范、SWP卡規(guī)范和HCI規(guī)范都是由歐洲電信標(biāo)準(zhǔn)化協(xié)會(huì)ETSI的EP SCP小組制定。UICC規(guī)范主要描繪UICC平臺(tái)的物理和電氣特性、文件系統(tǒng)、命令、訪問(wèn)條件,PIN系統(tǒng)。SWP接口是一種UICC卡與非接前端之間面向比特流、點(diǎn)對(duì)點(diǎn)的通訊協(xié)議。定義了非接前端(CLF)與UICC卡在物理和數(shù)據(jù)鏈路層接口特性。HCI規(guī)范定義了非接前端(CLF)與UICC卡的主機(jī)控制接口。
USIM是UICC上的一個(gè)電信應(yīng)用,其標(biāo)準(zhǔn)是由3GPP制定的,主要描述UMTS文件列表、安全機(jī)制及流程、電話本和USIM應(yīng)用開(kāi)發(fā)包。
JAVA卡標(biāo)準(zhǔn)是由JCF組織制定的,是根據(jù)智能卡的特點(diǎn)在傳統(tǒng)JAVA基礎(chǔ)上精簡(jiǎn)和改造的。包括JCVM(java卡虛擬機(jī))、JCRE(java卡運(yùn)行環(huán)境)和JAVA卡API三部分。
GP規(guī)范是GP組織制定的,GP組織是一個(gè)由支付與商業(yè)領(lǐng)域的知名公司、政府部門(mén)以及相關(guān)團(tuán)體主導(dǎo)的組織,它是第一個(gè)促成跨不同行業(yè)的智能卡應(yīng)用規(guī)范的組織。它的目標(biāo)就是減少智能卡在跨不同行業(yè),不同應(yīng)用之間的潛在障礙。GP為卡發(fā)行商定義了靈活而強(qiáng)大的參考規(guī)范,使得卡發(fā)行商能夠利用多應(yīng)用的芯片操作系統(tǒng)來(lái)滿足商業(yè)需求的不斷發(fā)展。規(guī)范允許卡發(fā)行商選擇當(dāng)下使用的卡技術(shù)并且支持遷移,對(duì)于將來(lái)選擇的不同技術(shù)在結(jié)構(gòu)上也避免產(chǎn)生重要影響。如此,智能卡發(fā)行商將有在各種卡、終端及后臺(tái)系統(tǒng)中選擇的自由。
PBOC2.0規(guī)范即JR/T 0025《中國(guó)金融集成電路(IC)卡規(guī)范》,分為13個(gè)部分:是2005年3月13日,由人民銀行發(fā)布的規(guī)范。本規(guī)范補(bǔ)充完善電子錢(qián)包/存折應(yīng)用;增加了與EMV標(biāo)準(zhǔn)兼容的借/貸記應(yīng)用;增加非接觸式IC卡物理特性標(biāo)準(zhǔn);增加電子錢(qián)包擴(kuò)展應(yīng)用指南、借/貸記應(yīng)用個(gè)人化指南等內(nèi)容。該標(biāo)準(zhǔn)將為我國(guó)銀行卡芯片化奠定標(biāo)準(zhǔn)基礎(chǔ),確保我國(guó)銀行卡芯片化實(shí)現(xiàn)聯(lián)網(wǎng)通用和安全,并有效指導(dǎo)實(shí)施。
這些規(guī)范提供了公共安全和卡管理框架的協(xié)議,也提供了后加載的通道和指令。遵循這些規(guī)范的金融USIM卡擁有一卡多應(yīng)用后加載的使用條件。
聯(lián)通多應(yīng)用智能卡架構(gòu)如圖1所示。
聯(lián)通多應(yīng)用SWP智能卡引用了UICC最大特點(diǎn)----多應(yīng)用平臺(tái)的概念,實(shí)現(xiàn)了多個(gè)應(yīng)用同時(shí)運(yùn)行的多通道機(jī)制,同時(shí)具有java卡的互操作性、可移植性和安全性。USIM卡同時(shí)遵循GP規(guī)范,擁有一個(gè)主安全域(ISD)和多個(gè)輔助安全域。
主安全域,作為中國(guó)聯(lián)通對(duì)卡片內(nèi)容進(jìn)行管理時(shí)的操作代理,聯(lián)通多應(yīng)用框架SIM卡必須實(shí)現(xiàn)此安全域應(yīng)用。中國(guó)聯(lián)通可以利用主安全域授權(quán)程序加載、安裝、遷移、刪除中國(guó)聯(lián)通或其他應(yīng)用提供方的應(yīng)用。
輔助安全域可以被動(dòng)態(tài)創(chuàng)建、刪除和更新。
安全域?qū)τ脩舨豢梢?jiàn),安全域的創(chuàng)建只能由平臺(tái)發(fā)起。安全域就是一個(gè)個(gè)獨(dú)立的黑匣子,將各種應(yīng)用安全存放,使得各個(gè)應(yīng)用彼此完全獨(dú)立。安全域密鑰作為訪問(wèn)控制權(quán)限的一種表現(xiàn)方式,可以在安全域創(chuàng)建的時(shí)候設(shè)置好,也可以在必要的時(shí)候動(dòng)態(tài)更新。密鑰更新操作只能由平臺(tái)主動(dòng)發(fā)起。遵循GP規(guī)范的安全域擁有安全級(jí)別。
圖1 聯(lián)通多應(yīng)用SWP智能卡架構(gòu)圖
3.3.1 聯(lián)通金融USIM卡互操作性現(xiàn)狀分析
互操作性差,不僅加大發(fā)卡商對(duì)卡片的管理難度,還會(huì)使得后續(xù)應(yīng)用開(kāi)發(fā)成本加大,當(dāng)卡片到用戶手中后,就更不利于擴(kuò)展應(yīng)用的加載。
鑒于聯(lián)通智能卡是擁有GP標(biāo)準(zhǔn)平臺(tái)的java卡,我們可以分析一下導(dǎo)致同一個(gè)金融應(yīng)用不能在各家卡上兼容的原因:
(1)JAVA卡規(guī)范、GP規(guī)范、SWP規(guī)范、HCI規(guī)范、NFC API規(guī)范,版本眾多,彼此不統(tǒng)一。任何一個(gè)規(guī)范版本的差異都將帶來(lái)相應(yīng)產(chǎn)品實(shí)現(xiàn)的差別并造成卡片的互操作性問(wèn)題。
聯(lián)通規(guī)范的制定從時(shí)間上落后于卡商產(chǎn)品的開(kāi)發(fā),版本確定往往也沒(méi)有采納制定規(guī)范時(shí)相應(yīng)的國(guó)際規(guī)范最高版本。卡商產(chǎn)品的版本五花八門(mén):一些國(guó)外卡商的產(chǎn)品成熟度高,但是因?yàn)閮?nèi)部機(jī)制以及本地化研發(fā)不足造成響應(yīng)速度較慢;一些國(guó)內(nèi)卡商雖是后起之秀并且所遵循的版本也高但缺乏成熟度。緊急狀況時(shí),可供采購(gòu)的卡遵循的規(guī)范版本或高于聯(lián)通規(guī)范或低于聯(lián)通規(guī)范。甚至還可能出現(xiàn)多次采購(gòu)不同批次的卡遵行不同的版本規(guī)范??傊?,規(guī)范的版本和實(shí)際采購(gòu)情況的不吻合不僅為產(chǎn)品檢測(cè)帶來(lái)困難,更為未來(lái)卡的管理和標(biāo)準(zhǔn)應(yīng)用的編寫(xiě)以及后加載帶來(lái)挑戰(zhàn),成為卡片互操作性的隱患。
(2)一些NATIVE指令造成了兼容性問(wèn)題:私有指令不是必須的,而是為了編程的簡(jiǎn)單和快捷,所以卡商根據(jù)自己的硬件性能等擴(kuò)展了一些對(duì)應(yīng)用編程更容易實(shí)現(xiàn)的API,從而造成了含有私有API的應(yīng)用程序在各家卡上不兼容或根本無(wú)法裝載成功。
(3)為了滿足客戶應(yīng)用的特殊需求:每個(gè)JAVA APPLET之間有防火墻,需要由shareable interface在不同的APPLET間進(jìn)行溝通和數(shù)據(jù)共享,所以當(dāng)需要業(yè)務(wù)需求一個(gè)STK程序同時(shí)完成查詢(xún)卡上的幾家銀行賬戶或電子現(xiàn)金余額時(shí),統(tǒng)一的shareable接口函數(shù)是必須的,但是卡商在實(shí)現(xiàn)時(shí)卻常使用私有的接口函數(shù)來(lái)完成,這便帶來(lái)了不兼容隱患。為了滿足應(yīng)用在各家卡上的互操作,宜制定聯(lián)通的規(guī)范來(lái)完成這部分功能。這樣既能最大限度的保證安全性也能確保滿足現(xiàn)有的應(yīng)用需求。
(4)硬件性能差異造成應(yīng)用程序兼容性差:由于芯片內(nèi)存大小、CPU運(yùn)算速度差異、一些加密算法是硬件運(yùn)算還是軟件運(yùn)算等造成了同樣的JAVA卡應(yīng)用程序在性能差的芯片上難以正常運(yùn)行,性能差的卡不僅帶來(lái)可能的兼容性問(wèn)題,還造成很差的用戶體驗(yàn),甚至?xí)驗(yàn)楹碾娫黾訙p少手機(jī)的待機(jī)時(shí)間,給用戶帶來(lái)頻繁更換電池的損失。(比如運(yùn)行同樣的IMSI重置腳本,使用不同芯片的卡用時(shí)分別為20.2秒和163.3秒,速度相差近8倍)。
3.3.2 提升卡互操作性建議
3.3.2.1 互操作性良好所需條件
聯(lián)通金融USIM卡到底需要怎樣的條件才能擁有好的互操作性呢?
首先,互操作性好的智能卡都要遵照相同版本的規(guī)范:如聯(lián)通金融USIM卡遵循的JAVA規(guī)范、GP規(guī)范、SWP規(guī)范、HCI規(guī)范、NFC API規(guī)范的版本一定要一致。其次,卡片的應(yīng)用一定是使用規(guī)范描述的標(biāo)準(zhǔn)API寫(xiě)成的標(biāo)準(zhǔn)應(yīng)用。最后,芯片硬件處理能力也應(yīng)有最低指標(biāo)要求,對(duì)于關(guān)鍵算法和核心API的性能設(shè)定統(tǒng)一的參考基準(zhǔn)。
3.3.2.2 保證卡片互操作性良好的手段
需要怎樣的手段來(lái)保證卡片的互操作性良好呢?
第一,加強(qiáng)檢測(cè),在卡片一致性檢測(cè)腳本中,增加檢測(cè)PBOC應(yīng)用是否為標(biāo)準(zhǔn)應(yīng)用的測(cè)試項(xiàng)(目前的卡片一致性檢測(cè)腳本中只有JCPM(Java Card Portal Module)、OTA(Over The Air)應(yīng)用預(yù)置菜單的檢驗(yàn))。
第二,強(qiáng)化第三方認(rèn)證測(cè)試作用,使其嚴(yán)格遵循標(biāo)準(zhǔn)規(guī)范流程。為保證卡商提交給銀行卡檢測(cè)中心的卡和最終提交給聯(lián)通的卡為相同的卡,并且避免由于加載項(xiàng)增多后造成的問(wèn)題,聯(lián)通應(yīng)抽檢購(gòu)買(mǎi)的成品卡并再次委托銀行卡檢測(cè)中心進(jìn)行PBOC全功能檢測(cè)。
第三,強(qiáng)制開(kāi)發(fā)聯(lián)通規(guī)范支持的標(biāo)準(zhǔn)的JAVA卡應(yīng)用,在業(yè)務(wù)定義和確定應(yīng)用需求環(huán)節(jié)盡量參照標(biāo)準(zhǔn)的API,避免開(kāi)發(fā)標(biāo)準(zhǔn)API不能實(shí)現(xiàn)的功能。
第四,在卡片采購(gòu)中增加對(duì)芯片硬件性能指標(biāo)的要求,并將對(duì)廠家的芯片性能測(cè)試結(jié)果列入招投標(biāo)項(xiàng)目中,按照一定權(quán)重參與評(píng)分。
第五,綜合考慮卡商的相關(guān)產(chǎn)品的技術(shù)穩(wěn)定性和版本的先進(jìn)性,如果穩(wěn)定性大同小異,版本就高不就低。不到萬(wàn)不得已,不宜輕易升級(jí)卡的軟件版本。
第六,當(dāng)用戶的需求超過(guò)了現(xiàn)有標(biāo)準(zhǔn)卡的處理能力,而一些卡商的卡所具備的非標(biāo)準(zhǔn)能力可以實(shí)現(xiàn)用戶需求時(shí),要綜合考慮商業(yè)利益和互操作性之間的平衡!
[1]3GPP TS 33.102 V6.1.0(2004-06)“3rd Generation Partnership Project;Technical Specif i cation Group Services and System Aspects;3G Security;Security architecture(Release 6)”.
[2]3GPP TS 35.205 V8.0.0(2008-12)“3rd Generation Partnership Project;Technical Specif i cation Group Services and System Aspects;3G Security;Specif i cation of the MILENAGE Algorithm Set:An example algorithm set for the 3GPP authentication and key generation functions f1,f1*,f2,f3,f4,f5 and f5*;Document 1:General(Release 8)”.
[3]3GPP TS 31.115 V8.0.1(2009-03)“3rd Generation Partnership Project;Technical Specification Group Core Network and Terminals;Secured packet structure for(Universal)Subscriber Identity Module(U)SIM Toolkit applications(Release 8)”.
[4]Java Card(TM)Specif ication.
[5]Global Platform Card Specif i cation.
[6]ETSI TS 102 613《Smart Cards;UICC-Contactless Front-end(CLF)Interface;Part 1:Physical and data link layer characteristics》.
[7]ETSI TS 102 622《Smart Cards;UICC-Contactless Frontend(CLF)Interface;Host Controller Interface(HCI)》.
[8]JR/T 0025《中國(guó)金融集成電路(IC)卡規(guī)范》.
[9]《中國(guó)聯(lián)通GSM/WCDMA數(shù)字蜂窩移動(dòng)通信網(wǎng)UICC卡技術(shù)規(guī)范》.
[10]《中國(guó)聯(lián)通GSM/WCDMA數(shù)字蜂窩移動(dòng)通信網(wǎng)USIM卡技術(shù)規(guī)范》.
[11]《中國(guó)聯(lián)通GSM/WCDMA數(shù)字蜂窩移動(dòng)通信網(wǎng)USAT卡技術(shù)規(guī)范》.
[12]《中國(guó)聯(lián)通基于UICC平臺(tái)的Java卡互操作性技術(shù)規(guī)范》.
[13]《中國(guó)聯(lián)通GSM/WCDMA數(shù)字蜂窩移動(dòng)通信網(wǎng)UICC卡測(cè)試規(guī)范》.
[14]《中國(guó)聯(lián)通GSM/WCDMA數(shù)字蜂窩移動(dòng)通信網(wǎng)USIM卡測(cè)試規(guī)范》.
[15]《中國(guó)聯(lián)通GSM/WCDMA數(shù)字蜂窩移動(dòng)通信網(wǎng)USAT卡測(cè)試規(guī)范》.
[16]《中國(guó)聯(lián)通基于UICC平臺(tái)的Java卡互操作性測(cè)試規(guī)范》.
[17]《中國(guó)聯(lián)通GSM/WCDMA數(shù)字蜂窩移動(dòng)通信網(wǎng)支持近場(chǎng)通信的用戶卡技術(shù)規(guī)范》.
[18]《中國(guó)聯(lián)通GSM/WCDMA數(shù)字蜂窩移動(dòng)通信網(wǎng)支持近場(chǎng)通信的用戶卡測(cè)試規(guī)范》.
[19]《中國(guó)聯(lián)通電信智能卡SWP卡技術(shù)規(guī)范v2.0》.
王俊清,聯(lián)通興業(yè)通信技術(shù)有限公司工程師,主要從事智能卡COS編寫(xiě)工作。