黃健文,黃健,蔡秋艷,李俊磊,嚴冬
(廣州電信研究院,廣東 廣州 510630)
摘要:以GP、Javacard、UICC多應用管理技術為理論知識基礎,提出了一種UICC卡非接觸應用識別技術方案,解決了NFC行業POS非接觸默認隱式選擇與UICC卡多個應用默認設置間的兼容性問題。提出的非接觸應用識別技術使得UICC可支持多個非接觸應用在非接觸通道上的隱式選擇,經實際商用驗證可支持多個公交應用在UICC卡上的共存問題,并免除公交 POS終端的改造,推動了NFC在公交等第三方行業的發展。
關鍵詞:隱式選擇;顯式選擇;默認應用;GP;UICC;Javacard
0引言
2012年以來,NFC技術及其應用在國內取得巨大發展。在電信運營商UICC卡上內置Se安全模塊的NFCSWP技術方案是國內NFC技術發展的最主要的方向之一[1],主要涉及銀行、公交等行業應用。在NFC推廣過程中,由于行業POS終端與UICC卡之間的標準化差異產生的應用選擇識別兼容性問題,已成為NFC發展過程中的最大阻力。兼容性問題主要體現為:(1)已布放公交等第三方行業POS要求上電執行非接觸默認應用隱式選擇;(2)UICC卡現行技術標準只允許在非接觸通道設置一個默認應用,如果要將新的應用設置為非接觸通道默認應用,要求取消UICC原有非接觸默認應用設置;(3)現有技術標準中UICC卡不具備默認應用反饋機制,無法向卡外實體反饋當前的卡上默認應用。目前住建部正在推行公交行業應用的互聯互通,在同一張UICC卡上,很大程度上將下載兩個或兩個以上公交應用,此兼容性問題將導致部分應用不能被正確使用或正確安裝。
隱式選擇與多個應用的默認應用設置兼容性問題的解決方式有兩種:(1)按照現有技術標準,將行業POS應用選擇方式升級為應用顯式選擇。升級后可精確選擇到UICC卡的所有應用,但存在升級費用高昂的問題,并且由于POS已經布放,此方式被大多POS擁有方拒絕。(2)改進UICC卡,使現有非接觸應用檢索方式支持對更多的應用進行隱式選擇。本文針對次兼容性問題,在GP及UICC技術理論基礎上提出了非接觸應用字符串匹配識別方案,解決了此兼容性問題。
1GP UICC 技術
GP(Global Platform)技術架構是GP組織定義的一套智能卡應用管理標準體系,包括GlobalPlatform Card Specification Version 2.2.1和GlobalPlatform Card Contactless Services Card Specification v2.2mendment C Version 1.0.1等主要標準。GP技術通常和Javacard、UICC技術共同使用,實現對Javacard應用程序的安全動態管理。使用GP技術可在安全環境下,對Javacard非接觸和接觸應用安全加載、安裝、數據個人化、刪除等管理。遵循GP、Javacard、UICC技術標準的通用智能卡模型架構如圖1所示。
圖1模型架構中,UICC提供上層Javacard虛擬運行環境、GP及卡應用必需的硬件支持,包括CPU、內存及相關加密算法硬件加速器、接觸式和非接觸式通信接口。
Javacard提供虛擬跨平臺運行環境及相關應用接口體系,它提供了一種將應用和運行環境獨立開發的機制。由第三方開發的遵循Javacard架構體系的應用可下載到任意Javacard平臺上運行。
GP在模型架構中起安全保障作用,GP通過安全域分級、權限控制、生命周期控制、安全信道及相關密鑰體系等技術手段實現對上層Java應用的安全流程管理。OPEN在GP架構中處于核心管理角色,負責卡生命周期維護、注冊表維護、應用選擇、命令轉發等。本文提出的非接觸應用識別技術主要基于OPEN對注冊表的維護實現。
2非接觸應用安裝與選擇
2.1非接觸應用安裝
在GP管理架構下,Javacard應用程序代碼要加載到Javacard上分兩個過程執行。首先需在PC上將Java代碼編譯為可在UICC卡運行的可執行文件,并使用GP相關加載、安裝流程指令通過UICC卡 ISO7816接口加載到UICC上。其次需對加載到UICC卡上的可執行代碼文件,進行實例化創建、應用個人化參數流程分配等。
非接觸應用程序安裝也需符合上述安裝加載流程。針對大部分公交系統,在UICC卡不支持字符串識別情況下,應設置為非接觸默認應用。對于應用可執行加載文件AID為6170706C65745465737431及應用AID為 6170706C657454657374315F4131的應用,在應用安裝過程中設置非接觸默認應用CF配置參數指令流程如下:
(1)install for load
8XE60200XX0B6170706C65745465737431XX…. XX
(2)可執行文件加載多條load指令
8XE80000FFXXXXXXXXXXXXXXXXXXXX….. XX
8XE80001FFXXXXXXXXXXXXXXXXXXXX….. XX
…
8XE8800LNNXXXXXXXXXXXXXXXXXXXX…. XX
(3)install for install
安裝命令:8XE60C00XX
可執行加載文件AID:0B6170706C65745465737431
可執行模塊AID:0E6170706C657454657374315F4131
應用AID:0E6170706C657454657374315F4131
權限:0100
隱式選擇默認參數:XXEFXX..XXCF0180
2.2非接觸應用選擇
在GP架構下,應用選擇有兩種方式即顯式選擇和隱式選擇。顯式選擇指在UICC卡上電后POS終端第一條指令使用帶應用AID的GP SELECT ( by name)指令進行應用選擇。GP OPEN接收到SELECT指令后,將查詢卡內GP注冊表,根據SELECT命令中帶的AID參數找到目標應用。在OPEN找到目標應用后,所有POS終端發送的指令OPEN將不做處理,直接轉發給目標應用。金融行業POS終端一般使用顯式選擇方式進行應用選擇。
隱式選擇指非接觸通道打開后,卡片收到的第一條指令不是帶AID的SELECT指令,在卡片不支持非接觸算法識別的情況下,OPEN將直接把非接觸指令轉發給非接觸通道上的默認應用進行處理。隱式選擇默認應用設置采用GP指令Install for install對非接觸應用安裝參數中的CF參數進行配置。
3基于指令字符串檢索方式的應用識別
UICC 卡除支持非接觸應用顯式選擇及默認應用隱式選擇外,本文采用字符串匹配選擇方式,對非接觸應用選擇進行了改進擴展。
3.1非接觸應用字符串匹配參數定義
GP架構下,非接觸應用字符串匹配參數通過GP Install[for install]指令在應用實例化安裝時進行設置,安裝參數采用TLV結構進行嵌套定義。本文針對公交行業POS的復雜性、多樣性,對字符串匹配安裝標簽參數進行了擴展改進,對每個非接觸應用允許匹配多個非接觸字符串匹配標簽,并對非接觸標簽更新流程、獲取流程進行了定義。
GP install [for install]指令定義如表1[2]。
應用安裝參數數據域定義如表2[3] 。
以上安裝參數定義符合非接觸和接觸應用安裝定義,針對非接觸應用字符串匹配參數定義如圖2。
3.2非接觸應用字符串參數配置
對于AID為A000000011應用A的指令檢索字符串假設為:A0A40000023F00。AID為A000000012應用B的指令檢索字符串有兩個:A0A40000023F01,A0A40000023F02。則使用GP install for install指令對應用A、B在安裝過程中進行字符串匹配參數配置指令過程如下:
(1)install for load A\\B應用
(2)load A\\B應用
(3)install for install A應用安裝及字符串參數匹配
安裝命令:8XE60C00XX
可執行加載文件AID: A00000011XX…XX
可執行模塊AID: A00000011XX…XX
應用AID:0A A000000011
權限:0100
字符串參數配置:XXEF..XXA0..8307A0A40000023F00
(4)install for install B應用安裝及字符串參數匹配
安裝命令:8XE60C00XX
可執行加載文件AID: A00000012XX…XX
可執行模塊AID: A00000012XX…XX
應用AID:0A A000000012
權限:0100
字符串參數配置:
XXEF..XXA0..8307A0A40000023F018307A0A400000 23F02
當應用已經安裝到卡上后,可使用GP install [registry update ]指令進行更新字符串匹配參數,使用如下指令為應用A追加字符串匹配參數A0A40000023F03:
注冊更新安裝命令:8XE64000XX
可執行加載文件AID: A00000011XX…XX
可執行模塊AID: A00000011XX…XX
應用AID:0A A000000011
權限:0100
字符串參數配置:
XXEF..XXA0..8307A0A40000023F008307A0A400000 23F03
3.3非接觸應用字符串匹配選擇過程
當UICC卡具有非接觸通道上字符串匹配檢索能力時,選擇方式在卡內部的執行順序為顯式選擇、字符串匹配、隱式默認應用選擇。當UICC卡與非接觸POS間完成非接觸初始化通信后,POS發出第一條應用指令,當指令為顯式選擇SELECT BY AID時,GP OPEN將直接定位應用注冊表入口。當第一條指令為隱式選擇時,本文GP OPEN執行如下流程進行應用隱式選擇:
(1)OPEN根據POS第一條指令進行字符串匹配檢索;
(2)OPEN檢索到目標應用,取出優先級最高的非接觸應用;
(3)檢查目標應用的生命周期狀態是否可選,如應用位于可選狀態,則定位目標應用。如果生命周期狀態不可選,則繼續執行流程(1)~(3)進行字符串匹配檢索;
(4)如果流程(1)~(3)無法正確定位目標應用,則進行非接觸默認應用CF參數匹配檢測;
(5)如果流程(1)~(4)均不能定位目標應用,則OPEN將POS第一條指令轉發給卡ISD主安全域應用進行處理;
(6)若以上流程均不能正確匹配目標應用則目標應用定位失敗。
定位目標應用成功后,后續的應用交互指令將直接交給目標應用進行處理,不再執行匹配檢索流程。目標應用定位失敗后,OPEN將返回錯誤信息。指令字符串匹配檢索處理流程如圖3所示。
4結束語
本文以Javacard 技術與GP多應用安全管理架構為基礎,針對NFC業務推廣過程中出現的多個公交應用默認設置切換問題,提出了一種基于GP非接觸應用指令字符串匹配檢索的方法實現POS對目標應用的匹配,經實際商用證明可有效解決現有UICC多應用卡中下載多個公交應用的匹配檢索問題。本文提出的字符串匹配檢索方法,在NFC業務商用過程中可免除公交等行業POS的升級改造,將有效推進NFC公交的互聯互通。
參考文獻
[1] 王篤炎,肖海,何平.基于NFCSWP技術的移動支付方案設計[J].移動通信,2013,37(5):18 22.
[2] GlobalPlatform Inc.GlobalPlatform Card Specification Version 2.2.1[Z].2011.
[3] GlobalPlatform Inc.GlobalPlatform Card UICC ConfigurationContactless Extension Version 1.0[Z]. 2012.