摘 要: 為了進一步提高移動智能終端在移動電子支付通信服務方面的高效性、應用性與安全性,以JavaCard智能卡技術原理與NFC移動智能技術理論知識為前提,首先提出了一種基于JavaCard和NFC技術的移動智能支付應用系統的模型框架,在該模型中設計了移動智能終端支付銀行選擇模塊,其次針對多標簽情況下的應用支付碰撞問題設計了一種改進的動態二進制防碰撞算法。研究表明,應用支付模型框架與防碰撞安全算法在移動電子支付通信服務方面均達到了次優化的應用與安全效果。
關鍵詞: 移動智能;JavaCard;NFC;安全模型;防碰撞
0 引言
近幾年來,隨著移動智能科學技術的不斷發展,移動智能終端具有廣泛應用于各大行業領域的潛力,移動電子支付通信服務領域也不例外[1]。移動智能電子支付市場沒有被完全開拓,主要包括以下幾個方面的原因[2]:(1)移動智能電子支付應用效率低,支付流程復雜;(2)電子支付安全性無法保證,其核心技術不成熟;(3)遠程移動電子支付服務單一、支付內容不豐富;(4)移動智能電子支付的利益機制尚不完善等。這些都對移動智能電子支付的市場推廣產生一定影響,因此,移動智能電子支付在中國的推行受到了諸多限制[3]。
針對上述存在的各種問題,為了進一步改善與提高移動智能終端在移動電子支付通信服務方面的高效性、應用性與安全性,本文在深入分析JavaCard和NFC技術的理論基礎上[4],從移動智能電子支付核心技術機制出發,提出了一種以JavaCard智能卡技術原理與NFC移動智能技術的理論知識為前提的移動智能支付應用系統模型框架,提高了移動智能電子支付過程的便攜性、應用性;并且針對多標簽情況下的碰撞問題設計了一種基于動態二進制防碰撞算法的應用支付安全方案,確保了移動智能電子支付過程中的安全性[5]。
1 JavaCard智能卡技術
JavaCard是Java平臺中最小的 subset開發平臺,其設定的執行環境為SmartCard上的晶片或是有嚴格硬體限制的環境[6]。JavaCard的問世,一方面是為了推展Java的應用層次,另一方面是為了將Java平臺的特性以及JavaCard的優勢帶到SmartCard上,這些優勢主要有:
(1)Platform-Indep endent:使得JavaCard applets (在JavaCard上執行的程式)能夠在不同卡片的JCAE(JavaCard Application Environment)上執行,即通過JavaVM機制來達到跨平臺的能力;
(2)Multi-Application Capable:在同一個Java- Card中能夠存放多個JavaCard applets,并且也能夠通過下載方式來獲取必要的applets 而達到一卡多用的目的,使得卡的使用能夠更有彈性;
(3)Compatible with Existing Smart Card Standar- ds:JavaCard智能卡能與國際標準ISO7816(SmartCard標準)以及工業界標準如 Europay/Master Card/Visa (EMV)相容。所以,在未來JavaCard不但能夠取代SmartCard的功能,更能夠發展出多樣化的應用,其中移動智能電子支付就是其中之一,甚至能將許多不同的應用程序集合于一張卡上,使得這些隨身的軟件能夠更小更實用。
2 基于JavaCard的NFC移動智能應用系統
2.1 NFC移動智能生態模型的構建
NFC移動智能生態系統是基于RFID技術發展的一種非接觸式的移動智能電子應用系統原型,其主要包括移動智能終端用戶群體、移動運營機構、銀行金融機構、相關服務提供廠商、NFC移動智能終端制造廠商等,如圖1所示。
2.2 移動智能應用系統模型
(1)模型框架描述
基于JavaCard的NFC移動智能應用系統模型主要包含兩大部分:電子支付應用與非電子支付應用。如圖2所示。
從模型設計中可知,非電子支付應用環節一般由娛樂、防偽、私人門禁等方面組成,移動智能終端用戶需通過計算機網絡與備份數據信息庫對電子產品做進一步防偽認證。其電子支付應用環節一般由移動智能終端用戶、制造廠商/產品提供廠商、移動網絡運營機構和金融機構等組成。
(2)移動智能終端支付銀行選擇模塊
現有的移動智能電子支付應用系統中在銀行卡的選取方面較為固定,不能動態地對其綁定的銀行電子支付手段與方式進行選擇,因此,本文在基于JavaCard的NFC移動智能應用系統模型的設計中特別添加了移動智能終端支付銀行選擇模塊,實現電子支付過程中的動態與便捷。如圖3所示。
具體選擇流程如下:⑴選取多戶銀行并進行開戶業務,包括移動電子支付業務;⑵通過移動智能終端獲取其應用系統APP;⑶第一次使用時進行設置,包括默認設置,如設置默認銀行卡號、綁定默認聯系方式等,或者依據添加時間的先后對銀行卡的選取進行管理,默認銀行卡是第一支付選擇的卡號,余下銀行卡添加到備選銀行卡清單之中;⑷若默認或當前選取的銀行卡無法進行支付操作,將自動提示選取下一個鄰近時間點的銀行卡作為支付銀行卡,依次類推,直到支付成功為止。
3 改進的動態二進制防碰撞算法設計
為了滿足移動智能電子支付應用系統的安全需求,本文對傳統二進制搜索算法進行改進。接下來將對改進的動態二進制防碰撞算法進行詳細分析。
(1)基本指令描述
為了描述這個算法,假設標簽標識號NFCID的位數為n,即從高位到低位分別為Dn-1Dn-2...D1D0,出現多標簽沖突的位數為m(0≤m<n),還引入一組命令:
①SEL_REQ(x, Dm):讀卡器傳輸一個數值x(x屬于1或者0)給相關范圍內的標簽申請回復,若標簽號出現沖突的最后一位到第一位這m個數值中有一個或多個數值位與滿足要求的標簽回復相一致(以便于降低初始化標簽區域面積大小,做出相應優化)。說明:第1次詢問時,x=n,使用NULL表示標簽號無數值,即空值,所以申請回復指令是:SEL_REQ(NULL, Dn-1)。
②SEL RES(m):獲取到余下沖突位置的數據(第m-1至第1位),記錄未出現沖突位置的數據。
③SR_DATA:選取滿足條件的標簽,且獲取其數值信息:對符合條件的標簽,將其存儲的相關數值信息傳輸給讀卡器等相關設備。
④Unsel:將多個預定選取中的一個標簽進行取消操作,此標簽轉換到“無聲”狀態。此時這個標簽處于未被激活狀態,對其步驟③中的申請指令SEL_REQ不作出任何答復。當遠離讀卡器感應操作區域之外時,才能進行標簽復位操作,這樣使得標簽能夠重新被激活。
(2)改進算法原理
若NFCID為8 bit,則讀卡器作用區域內有多個標簽,這里以5個為實例,標簽分別為:11100101、10100110、11010100、1000011、10101110。讀卡器將利用該算法來識別它們。初始化階段,讀卡器對區域內標簽處于未知狀態,所以發送SEL_REQ(NULL, 8)命令,要求作用范圍內任何一個標簽做出應答信息。詳細執行過程如圖4所示。
4 結束語
本文以JavaCard智能卡技術原理與NFC移動智能技術的理論知識為前提,首先提出了一種基于JavaCard和NFC技術的移動智能支付應用系統的模型框架,并在該模型中設計了移動智能終端支付銀行選擇模塊;其次針對多標簽情況下的應用支付碰撞問題設計了一種改進的動態二進制防碰撞算法。研究分析表明,應用支付模型框架與防碰撞安全算法在移動電子支付通信服務方面均達到了次優化的應用與安全效果。
參考文獻
[1] Naoya S, Masakazu U, Yasuhiro T. Design technigues to reduce power consumption for ARM946E-S core[J]. Oki Tekunikaru Rebyu, 2005, 72(3): 52-55.
[2] 張德學, 郭立, 傅忠謙. 面積優化與低功耗設計的JavaCard處理器[J]. 中國科學技術大學學報, 2008, (38)3: 289-292.
[3] 李翅. 基于JavaCard和NFC技術的手機錢包關鍵技術研究[D]. 長沙:湖南師范大學,2009.
[4] 林龍, 張果, 王劍平,等.基于NFC技術的標簽模式設計[J]. 微處理機, 2013, 3(3): 31-36.
[5] ETSI. TS 102 622 v7.6.0, 2010.04, Smart Cards, UICC- Contactless Front-end (CLF) Interface; Host Controller Interface (HCI) (Release 7) [S]. Prepared by the European Telecommunications Standards Institute, 2010.
[6] 宋海燕. 基于Android的NFC文件傳輸系統的設計與實現[D]. 北京: 北京郵電大學, 2012.