王俊清 郭娜
【摘要】目前棲息于JAVA USIM卡上的應用主要分三大類:銀行類、公交類、校企類。本文主要以銀行類應用為例,分析目前聯(lián)通java卡的互操作性現(xiàn)狀,并提出了改進互操作性的建議,為實現(xiàn)第三方應用開發(fā)作好技術(shù)準備。
【關(guān)鍵詞】UICC;USIM;SWP;PBOC;JAVA;互操作性
一、背景
聯(lián)通金融USIM卡是符合3GPP相關(guān)規(guī)范和GP規(guī)范的含有USIM應用和PBOC應用的有SWP功能的JAVA卡。主要遵循七部分規(guī)范: UICC規(guī)范、USIM規(guī)范、JAVA卡規(guī)范、GP規(guī)范、SWP卡規(guī)范、HCI規(guī)范和PBOC3.0規(guī)范。理論上講,聯(lián)通金融USIM卡據(jù)有良好的安全性和互操作性,可以采用預置和后期兩種方式加載。然而,現(xiàn)實中其互操作性很差。本文建立在聯(lián)通11家供卡商的卡與4家應用的實際互測試基礎(chǔ)上,分析了引起互操作性的因素,對未來實現(xiàn)第三方應用開發(fā)提供了有價值的參考。
二、聯(lián)通JAVA USIM卡架構(gòu)簡介:
聯(lián)通JAVA USIM卡架構(gòu)圖如下:
三、理想的JAVA卡應用編寫狀態(tài)
如果運營商采購的java卡遵循的各規(guī)范版本一致,各家卡商開發(fā)的PBOC檢測用應用經(jīng)過了銀檢中心的檢測,那么上層的給各家銀行編寫的應用理論上應該可以由第三方統(tǒng)一開。
四、實際的JAVA卡應用編寫現(xiàn)狀
最近,聯(lián)通興業(yè)組織了一次4家應用開發(fā)商的應用在11家聯(lián)通供卡商的卡上進行的兼容性測試,結(jié)果如表1所示。
本次測試由于時間問題準備的較為倉促,測試設備和測試項沒有事先統(tǒng)一規(guī)定,有的應用商測試項較多,覆蓋面較廣,有的檢測卻相對簡單。另外,有的測試使用手機終端進行,有的使用非接讀卡器進行,因此,本次測試只具有參考價值。通過4家應用測試的卡未必是沒有問題的,本次在其他家卡上兼容性表現(xiàn)不好的應用也未必是不好的應用。雖然只是一個不全面的測試,也已經(jīng)發(fā)現(xiàn)了嚴重的兼容性問題:卡與應用的兼容性問題,卡和應用與終端的兼容性問題。此次兼容性問題可基本排除“規(guī)范版本眾多,彼此不統(tǒng)一”和“使用私有指令”等因素。本文只討論分析本次測試同一個金融應用不能在各家卡上兼容的原因:
(1)PBOC規(guī)范中一些參數(shù)的設定很靈活,沒有相應的生產(chǎn)規(guī)范進行明確,致使各家定義不同;
(2)各家對規(guī)范理解存在一定差異,而測試又沒有全覆蓋;
(3)各家對規(guī)范中可選項的處理存在差異;
(4)COS內(nèi)存管理水平的優(yōu)劣差別致使程序健壯性不同;
(5)程序指令優(yōu)先順序和占用的資源狀況影響卡與應用的適配性;
(6)硬件性能差異造成應用程序兼容性差:由于芯片內(nèi)存大小、CPU運算速度差異、協(xié)處理器存在與否等造成了同樣的JAVA卡應用程序在性能差的芯片上難以正常運行;
(7)應用編程水平和卡與應用的適配性對兼容性存在影響,同款芯片同樣COS的卡,運行同樣功能的不同應用,速度差距也較大。
(8)COS編程人員的經(jīng)驗與處理能力存在差異:目前聯(lián)通的SWP卡芯片商主要有3家,這3家芯片水平基本相當,但同樣應用下載、安裝、刪除、運行在11家卡商COS的速度卻存在明顯差別,如表2所示。
五、java卡的生產(chǎn)控制過程
1.新產(chǎn)品開發(fā)
2.新產(chǎn)品研發(fā)到發(fā)布
由于銀檢中心的檢測只針對功能測試,而不負責互操作性和與終端的兼容性測試。而從圖5的流程圖也可以看出,由于卡、應用的互操作性問題,致使到“第三方開發(fā)的銀行應用2”這一步很難做到理想狀態(tài),如果再考慮兼容性問題,情況就變得更為復雜,只好誰家的卡誰來開發(fā)應用,否則,在產(chǎn)品成熟之前反復去銀檢中心檢測和反復備案將成為常態(tài),極大地加大卡商的研發(fā)成本,延長了產(chǎn)品開發(fā)周期,使得第三方開發(fā)成為噩夢。那么,如何改進流程呢?一個可行的過程就是在卡商去銀檢中心檢測應用前進行把關(guān),以助其提高成功率。
六、增強java卡的互操作性建議
1.加強企業(yè)規(guī)范制定
加強企業(yè)規(guī)范制定的前瞻性、國際性、實用性、嚴謹性、完整性,避免歧義的發(fā)生。
(1)綜合考慮卡商的相關(guān)產(chǎn)品的技術(shù)穩(wěn)定性和版本的先進性,如果穩(wěn)定性大同小異,版本就高不就低。不到萬不得已,不宜輕易升級卡的軟件版本。當用戶的需求超過了現(xiàn)有標準卡的處理能力,而一些卡商的卡所具備的非標準能力可以實現(xiàn)用戶需求時,要綜合考慮商業(yè)利益和互操作性之間的平衡。
(2)制定科學合理的測試和生產(chǎn)規(guī)范,一些靈活的參數(shù),可選項、條件項,不適合在技術(shù)規(guī)范中明確,要在測試和生產(chǎn)規(guī)范中明確,使得每次采購均有相應的生產(chǎn)測試規(guī)范支撐對應,以保證至少同批次卡擁有良好的互操作性。
2.增加互測試以增強卡的互操作性和降低檢測成本
目前,每一家卡商在去銀檢中心檢測前的一項重要工作就是編寫涵蓋PBOC規(guī)范功能的應用程序,然后下載到自家的卡上,再到銀檢中心進行認證。
那么是否過了銀檢中心認證的卡就能彼此可以互操作呢?理論上可以,但銀檢中心的檢測涵蓋點也有一個不斷完善的過程,而卡的硬件性能、內(nèi)存管理水平、實現(xiàn)方式、實現(xiàn)效率和對危機的處理經(jīng)驗不同,使得面對編寫習慣差異不同的應用時表現(xiàn)不一,甚至會暴露一些隱秘錯誤甚至程序崩潰。
為了避免第三方檢測機構(gòu)認證后再發(fā)現(xiàn)錯誤而重新進行所有檢測流程,建議聯(lián)通興業(yè)在應用送檢前組織卡商進行互測試。首先,規(guī)定統(tǒng)一的測試環(huán)境、測試條件、測試功能項、測試性能點。然后在測試中發(fā)現(xiàn)總結(jié)問題,對因歧義和參數(shù)定義不明確造成的問題在測試規(guī)范和生產(chǎn)規(guī)范中進行確定和完善,以規(guī)避潛在問題。其次,雖然互測試是組織方為了降低卡商開發(fā)成本所作,但卡商的參與度和熱情未必高,尤其測試技術(shù)相對強大的卡商不愿參加,組織者除了明確第三方應用開發(fā)的決心外,還應該在規(guī)則制定上有所考慮,那么不參加的卡商不僅會減少一次交流和自我完善的機會,在日后應用和卡片的招投標中也會受到影響。再次,要制定合理的規(guī)程,提高測試的有效性、公平性、規(guī)范性,避免強者成為弱者的測試人員,比如:規(guī)定測試次數(shù),將測試錯誤多少作為產(chǎn)品優(yōu)劣的一項指標,作為未來產(chǎn)品采購的一項參考。而對于能夠更多的檢測出其他卡商產(chǎn)品錯誤的卡商,在技術(shù)支撐方面加分,也一并在招投標中給與考慮。最后,由于送檢之前的產(chǎn)品可能故意開有漏洞,使得個別卡商能夠無償拿到別家的應用,可以規(guī)定,每家提供的卡樣由應用測試者持有,不需要歸還。
3.對于第三方應用進行限制和要求
與芯片采購備案一樣,第三方應用也需要備案,合同里明確中標者需提供源碼,以備將來出現(xiàn)問題時的分析和問責。對第三方應用能力進行評估,實行第三方應用入圍,綜合考慮以下因素,并將結(jié)果在招投標中給于考慮:
(1)應用的功能性;
(2)應用的易用性;
(3)應用與各家卡的兼容性;
(4)應用代碼運行速度;
(5)應用代碼效率;
(6)第三方應用開發(fā)商后期服務水平和態(tài)度。
圖7 第三方應用開發(fā)商入圍及應用開發(fā)
4.加強產(chǎn)品檢測
(1)除對卡片進行基本指令(包括API)測試外還要進行指令組合交叉測試、壓力測試,速度性能測試等。
(2)加強與第三方檢測機構(gòu)的合作,如銀行卡檢測中心和中國信息安全認證中心等權(quán)威檢測機構(gòu)的合作,并強化第三方認證測試作用,使其嚴格遵循標準規(guī)范流程。
5.加強管理
(1)建立通用開放、版本可管可控的智能卡平臺。
(2)為保證卡商提交給銀行卡檢測中心的卡和最終提交給聯(lián)通的卡為相同的卡,并且避免由于加載項增多后造成的問題,聯(lián)通應計算和保留卡商送檢COS代碼的哈西值。
(3)同一批次卡(即符合聯(lián)通相同版本規(guī)范的卡)的復位應答ATR歷史字節(jié)中要有聯(lián)通規(guī)定的統(tǒng)一的批次號。以便今后的統(tǒng)一管理。
參考文獻
[1]JR/T 0025《中國金融集成電路(IC)卡規(guī)范》(系列規(guī)范).
[2]《中國聯(lián)通電信智能卡SWP卡技術(shù)規(guī)范v2.0》.
[3]Java Card(TM) Specification.
[4]Global Platform Card Specification.
[5]《金融USIM卡多應用加載的安全性和互操作性研究》(《電子世界》2012年10月期).
[6]歐貝特“UICC/USIM簡介”.
作者簡介:
王俊清,高級工程師,主要從事智能卡COS及應用開發(fā)工作。
郭娜,工程師,主要從事智能卡應用開發(fā)工作。