利用移動設(shè)備進(jìn)行支付的方法和裝置的制造方法
【專利摘要】一種利用移動設(shè)備進(jìn)行支付的方法和裝置。方法包括:將Java Card底層類庫移植到該移動設(shè)備的可信執(zhí)行環(huán)境TEE下,以及在該移動設(shè)備的可信執(zhí)行環(huán)境TEE中運(yùn)行用于支付目的的Java Card應(yīng)用程序。
【專利說明】
利用移動設(shè)備進(jìn)行支付的方法和裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明的實(shí)施例涉及Java Card技術(shù),尤其涉及利用移動設(shè)備進(jìn)行支付的方法和裝置。【背景技術(shù)】[〇〇〇2] 近場通信(Near Field Communicat1n,NFC)技術(shù)允許電子設(shè)備之間在數(shù)厘米的范圍內(nèi)進(jìn)行非接觸式點(diǎn)對點(diǎn)數(shù)據(jù)傳輸。具有NFC功能的設(shè)備能夠模擬一張卡,并與外部讀寫器進(jìn)行非接觸式交互而實(shí)現(xiàn)各種應(yīng)用。在NFC設(shè)備上實(shí)現(xiàn)卡模擬的方式包括基于硬件的卡模擬模式(Card Emulat1n Mode)和是基于軟件的主機(jī)卡模擬式(Host Card Emulat1n Mode)。
[0003]在卡模擬模式下,需要安全元件(Secure Element JEXSE為敏感信息提供安全存儲,并且為交易事務(wù)提供的安全的執(zhí)行環(huán)境。NFC控制器作為非接觸通信前端,將從外部讀寫器接收到的數(shù)據(jù)轉(zhuǎn)發(fā)到SE,然后由SE處理,并通過NFC控制器返回處理結(jié)果。例如,配備 NFC功能的移動通信終端可以作為支付設(shè)備通過安裝在其中的SE中的一個(gè)或多個(gè)支付應(yīng)用程序進(jìn)行交易。支付應(yīng)用可以是Java Card小應(yīng)用程序(Java Applet) JE被用于安全數(shù)據(jù)或應(yīng)用程序的存儲和處理,并且可以基于Java Card和Global Platform(全局平臺)規(guī)范來實(shí)現(xiàn)支付應(yīng)用。
[0004]在主機(jī)卡模擬模式下,不需要提供SE,而是由在NFC設(shè)備中運(yùn)行的一個(gè)應(yīng)用或云端的服務(wù)器完成SE的功能。在基于主機(jī)的卡模擬(host-based card emulat1n,HCE)下,由 NFC控制器接收到的數(shù)據(jù)由操作系統(tǒng)或發(fā)送至設(shè)備中的應(yīng)用,或通過移動網(wǎng)絡(luò)發(fā)送至云端的服務(wù)器來完成交互。目前作為智能設(shè)備平臺的Android系統(tǒng)的4.4或更高版本支持HCE技術(shù),其中HCE服務(wù)以系統(tǒng)服務(wù)的形式被提供。由此,支付應(yīng)用可以通過注冊AID(應(yīng)用ID)進(jìn)行配置,并且通過實(shí)現(xiàn)HCE系統(tǒng)服務(wù)的基類方法來實(shí)現(xiàn)個(gè)性化的HCE服務(wù)。而支付過程中的敏感數(shù)據(jù)、密鑰和算法由該支付應(yīng)用實(shí)現(xiàn),或者通過獲取云服務(wù)提供。支付應(yīng)用可以是基于 Java Card技術(shù)標(biāo)準(zhǔn)的Java Card應(yīng)用程序。
【發(fā)明內(nèi)容】
[0005] —種利用移動設(shè)備進(jìn)行支付的方法,包括:將Java Card底層類庫移植到該移動設(shè)備的可信執(zhí)行環(huán)境TEE下,以及在該移動設(shè)備的可信執(zhí)行環(huán)境TEE中運(yùn)行用于支付目的的 Java Card應(yīng)用程序。
[0006] —種利用移動設(shè)備進(jìn)行支付的裝置,包括Java Card應(yīng)用支持模塊,其中該Java Card應(yīng)用支持模塊被配置成能夠運(yùn)行在該移動設(shè)備的可信執(zhí)行環(huán)境下,為在該可信執(zhí)行環(huán)境中運(yùn)行的用于支付目的的Java Card應(yīng)用程序提供兼容性支持,其中,該Java Card應(yīng)用支持模塊包括從Java Card底層類庫移植的類庫,以及用來支持該類庫的接口。
[0007] —種基于可信執(zhí)行環(huán)境的HCE應(yīng)用本地化方法,通過將Java虛擬機(jī)及Java Card底層類庫移植到可信執(zhí)行環(huán)境,快速實(shí)現(xiàn)與已有的Java Card應(yīng)用完全兼容。由此提高JavaCard應(yīng)用的兼容性。
[0008]一種實(shí)現(xiàn)HCE應(yīng)用本地化方法的示例。該方法包括,在TEE內(nèi)核API上實(shí)現(xiàn)JVM,其中,使用JVM( Java虛擬機(jī))技術(shù),在可信執(zhí)行環(huán)境提供的內(nèi)核API上實(shí)現(xiàn)JVM,該JVM支持應(yīng)用隔離、內(nèi)存垃圾回收等特性;確定要移植的類庫和支持該類庫的接口,其中,確定需移植的 Java Card底層類庫,以及用來支持該類庫的接口,確定要移植的類包包括 javacard.framework、javacard?security、javacard?crypto、org.globalplatform等;利用TEE內(nèi)核API實(shí)現(xiàn)該接口。
[0009]—種移動設(shè)備,其中,該移動設(shè)備配置有如權(quán)利要求6至10中任何一項(xiàng)所述的裝置。
[0010]本發(fā)明通過將Java虛擬機(jī)及Java Card底層類庫移植到可信執(zhí)行環(huán)境,快速實(shí)現(xiàn)與已有的Java Card應(yīng)用完全兼容。由此提高Java Card應(yīng)用的兼容性。對于支付應(yīng)用,其安全性和用戶體驗(yàn)都能得到提升。通過將Java底層類庫移植到TEE環(huán)境,使得Java Card應(yīng)用能夠直接運(yùn)行于TEE環(huán)境,讓已有的Java Card應(yīng)用不需要在TEE環(huán)境下重復(fù)開發(fā)。通過可信執(zhí)行環(huán)境TEE技術(shù)為智能終端提供安全保障,尤其對于支付應(yīng)用,支付過程涉及到的算法、 密鑰及交易數(shù)據(jù)能夠得到有效的保障。
[0011]當(dāng)結(jié)合附圖閱讀以下描述時(shí)也將理解本發(fā)明的實(shí)施例的其它特征和優(yōu)勢,其中附圖借助于實(shí)例示出了本發(fā)明的實(shí)施例的原理?!靖綀D說明】
[0012]圖1是利用NFC設(shè)備實(shí)現(xiàn)支付應(yīng)用的方案的框圖。
[0013]圖2是根據(jù)本發(fā)明實(shí)施例的實(shí)現(xiàn)HCE應(yīng)用本地化方法的框圖。
[0014]圖3是根據(jù)本發(fā)明實(shí)施例的實(shí)現(xiàn)HCE應(yīng)用本地化方法的示例?!揪唧w實(shí)施方式】[〇〇15]在下文中,將結(jié)合實(shí)施例描述本發(fā)明的原理。應(yīng)當(dāng)理解的是,給出的實(shí)施例只是為了本領(lǐng)域技術(shù)人員更好地理解并且實(shí)踐本發(fā)明,而不是限制本發(fā)明的范圍。例如,本說明書中包含許多具體的實(shí)施細(xì)節(jié)不應(yīng)被解釋為對發(fā)明的范圍或可能被要求保護(hù)的范圍的限制, 而是應(yīng)該被視為特定于實(shí)施例的描述。在各實(shí)施例的上下文描述的特征可以被組合在單個(gè)實(shí)施例中來實(shí)施,而在單個(gè)實(shí)施例的上下文中描述的特征可以在多個(gè)實(shí)施例來實(shí)施。
[0016]圖1是利用NFC設(shè)備實(shí)現(xiàn)支付應(yīng)用的方案的示意圖。圖1示出目前的智能設(shè)備的支付方案。應(yīng)用服務(wù)商(例如,銀行)開發(fā)支付應(yīng)用,并且實(shí)現(xiàn)HCE系統(tǒng)服務(wù)提供的基類方法,并且與P0S建立通信,同時(shí)實(shí)現(xiàn)交易算法,密鑰及交易數(shù)據(jù)保護(hù)的文件系統(tǒng),如圖1左邊部分所示。另外,開發(fā)的用于智能設(shè)備的應(yīng)用提供了到云服務(wù)的數(shù)據(jù)通道,將云服務(wù)與HCE系統(tǒng)服務(wù)相連接。此時(shí),交易算法、密鑰及交易數(shù)據(jù)由云服務(wù)器處理,如圖1右邊部分所示。注意到, 圖1中的NFC功能在多媒體執(zhí)行環(huán)境(REE,Rich Executed Environment),例如安卓、10S等, 下實(shí)現(xiàn),敏感支付信息可能泄露或者會被竊取或者篡改。另外,將支付應(yīng)用在REE中配置會導(dǎo)致兼容性問題,例如已經(jīng)商用的java card應(yīng)用很難被直接應(yīng)用到這些方案中。
[0017]可信執(zhí)行環(huán)境TEE(Trusted Executive Environment)技術(shù)能夠?yàn)橹T如智能終端等通信裝置提供受到硬件保護(hù)隔離的可信執(zhí)行環(huán)境,在該環(huán)境下,智能終端上的與安全相關(guān)敏感性操作基于TEE完成,從而提高安全性。TEE獨(dú)立于REE(例如,Android操作系統(tǒng)),并執(zhí)行與安全相關(guān)的應(yīng)用。智能終端上與安全相關(guān)的敏感操作將在TEE中執(zhí)行,而除安全應(yīng)用以外的其它應(yīng)用可以在REE中執(zhí)行。為此,本發(fā)明提出在可信執(zhí)行環(huán)境TEE內(nèi)實(shí)現(xiàn)與Java Card應(yīng)用接口兼容的可信應(yīng)用接口,從而快速實(shí)現(xiàn)個(gè)性化HCE服務(wù)的本地化。[〇〇18]在一個(gè)實(shí)施例中,提供基于可信執(zhí)行環(huán)境的HCE應(yīng)用本地化方法。該方法通過將 Java虛擬機(jī)及Java Card底層類庫移植到可信執(zhí)行環(huán)境,快速實(shí)現(xiàn)與已有的Java Card應(yīng)用完全兼容。由此提高Java Card應(yīng)用的兼容性。對于支付應(yīng)用,其安全性和用戶體驗(yàn)都能得到提升。圖2是根據(jù)本發(fā)明實(shí)施例的實(shí)現(xiàn)HCE應(yīng)用本地化方法的示意圖。如圖2所示,Java底層類庫被移植到TEE環(huán)境,這使得Java Card應(yīng)用能夠直接運(yùn)行于TEE環(huán)境,讓已有的Java Card應(yīng)用不需要在TEE環(huán)境下重復(fù)開發(fā)。同時(shí),如上所述可信執(zhí)行環(huán)境TEE技術(shù)能夠?yàn)橹悄芙K端提供安全保障,對于支付應(yīng)用,支付過程涉及到的算法、密鑰及交易數(shù)據(jù)能夠得到有效的保障。
[0019]圖3是根據(jù)本發(fā)明實(shí)施例的實(shí)現(xiàn)HCE應(yīng)用本地化方法的示例。如圖3所示,該方法包括,步驟310至330。[〇〇2〇]在310中,在TEE內(nèi)核API上實(shí)現(xiàn)JVM,其中,使用JVM(Java虛擬機(jī))技術(shù),在可信執(zhí)行環(huán)境提供的內(nèi)核API上實(shí)現(xiàn)JVM,該JVM支持應(yīng)用隔離、內(nèi)存垃圾回收等特性。
[0021]在320中,確定要移植的類庫和支持該類庫的接口,其中,確定需移植的Java Card 底層類庫,以及用來支持該類庫的接口,確定要移植的類包可以包括javacard.framework、 javacard?security、javacard?crypto、org?globalplatform等。[〇〇22]在330中,利用TEE內(nèi)核API實(shí)現(xiàn)該接口。具體地,以支持應(yīng)用數(shù)據(jù)隔離及斷電回滾等特性。通過調(diào)用TEE提供的安全和加解密API實(shí)現(xiàn)Java Card的底層類庫 javacard.security、javacard.crypto的加解密功能。通過調(diào)用TEE提供的線程庫API實(shí)現(xiàn) javacard ? framework和org ? globalplatform類包,模擬卡片主安全域功能。另外,在一個(gè)示例中,通過TEE的加密文件系統(tǒng)來實(shí)現(xiàn)Java Card應(yīng)用的內(nèi)部持久性對象。
[0023]根據(jù)上述的公開,本發(fā)明還提出一種利用移動設(shè)備進(jìn)行支付的方法。該方法包括: (1)將Java Card底層類庫移植到該移動設(shè)備的可信執(zhí)行環(huán)境下,以及(2)在該移動設(shè)備的可信執(zhí)行環(huán)境中運(yùn)行用于支付目的的Java Card應(yīng)用程序。上述移植過程(1)包括利用可信執(zhí)行環(huán)境的內(nèi)核API實(shí)現(xiàn)虛擬機(jī)和Java Card底層類庫的相關(guān)接口,使得Java Card應(yīng)用程序與可信執(zhí)行環(huán)境兼容。上述支付過程包括利用可信執(zhí)行環(huán)境的安全機(jī)制來確保支付的安全。
[0024]根據(jù)上述的公開,本發(fā)明還提出一種利用移動設(shè)備進(jìn)行支付的裝置。該裝置包括 Java Card應(yīng)用支持模塊,該Java Card應(yīng)用支持模塊被配置成能夠運(yùn)行在該移動設(shè)備的可信執(zhí)行環(huán)境下,為在該可信執(zhí)行環(huán)境中運(yùn)行的用于支付目的的Java Card應(yīng)用程序提供兼容性支持。其中,該Java Card應(yīng)用支持模塊包括從Java Card底層類庫移植的類庫,以及用來支持該類庫的接口。用來支持該類庫的接口通過調(diào)用TEE提供的API實(shí)現(xiàn)。在一個(gè)示例中, 從 Java Card底層類庫移植的類庫包括 javacard ? framework、javacard.security、 javacard.crypto、org.globalplatform。該Java Card應(yīng)用支持模塊通過TEE的加密文件系統(tǒng)來實(shí)現(xiàn)Java Card應(yīng)用的內(nèi)部持久性對象,以支持應(yīng)用數(shù)據(jù)隔離及斷電回滾等特性。通過調(diào)用TEE提供的安全和加解密API實(shí)現(xiàn)Java Card的底層類庫javacard.security、javacard.crypto的加解密功能。通過調(diào)用TEE提供的線程庫API實(shí)現(xiàn)javacard.framework 和org ? globalplatform類包,模擬卡片主安全域功能。
[0025]上述的步驟可以被視為由于運(yùn)行計(jì)算機(jī)程序代碼而導(dǎo)致的操作、和/或被視為構(gòu)建為實(shí)施相關(guān)功能的多個(gè)耦合的邏輯電路元件。示例性實(shí)施例可在硬件、軟件或其組合中來實(shí)施。例如,本發(fā)明的某些方面可在硬件中實(shí)施,而其它方面則可在軟件中實(shí)施。盡管本發(fā)明的示例性實(shí)施例的方面可被示出和描述為框圖、流程圖,但很好理解的是,這里描述的這些裝置或方法可在作為非限制性實(shí)例的系統(tǒng)中被實(shí)現(xiàn)為功能模塊。此外,上述裝置可以被實(shí)現(xiàn)相應(yīng)功能的軟件產(chǎn)品。
[0026]相關(guān)領(lǐng)域的技術(shù)人員當(dāng)結(jié)合附圖閱讀前述說明書時(shí),對本發(fā)明的前述示例性實(shí)施例的各種修改和變形對于相關(guān)領(lǐng)域的技術(shù)人員會變得明顯。因此,本發(fā)明的實(shí)施例不限于所公開的特定實(shí)施例,并且變形例和其它實(shí)施例意在涵蓋在所附權(quán)利要求的范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種利用移動設(shè)備進(jìn)行支付的方法,包括:將Java Card底層類庫移植到該移動設(shè)備的可信執(zhí)行環(huán)境TEE下,以及在該移動設(shè)備的可信執(zhí)行環(huán)境TEE中運(yùn)行用于支付目的的Java Card應(yīng)用程序。2.如權(quán)利要求1所述的方法,其中移植過程包括利用可信執(zhí)行環(huán)境TEE的內(nèi)核API實(shí)現(xiàn) 虛擬機(jī)和Java Card底層類庫的相關(guān)接口,使得所述Java Card應(yīng)用程序與可信執(zhí)行環(huán)境兼容。3.如權(quán)利要求2所述的方法,其中要移植的類包包括javacard.framework、 javacard?security、javacard?crypto、org?globalplatform。4.如權(quán)利要求3所述的方法,其中利用可信執(zhí)行環(huán)境TEE內(nèi)核API實(shí)現(xiàn)該接口包括:通過調(diào)用TEE提供的安全和加解密API實(shí)現(xiàn)Java Card的底層類庫javacard.security、 javacard ? crypto的加解密功能;通過調(diào)用TEE提供的線程庫API實(shí)現(xiàn)javacard ? framework和org ? globalplatform類包, 模擬卡片主安全域功能。5.如權(quán)利要求4所述的方法,其中移植過程還包括通過TEE的加密文件系統(tǒng)來實(shí)現(xiàn)Java Card應(yīng)用的內(nèi)部持久性對象。6.—種利用移動設(shè)備進(jìn)行支付的裝置,包括Java Card應(yīng)用支持模塊,其中該Java Card應(yīng)用支持模塊被配置成能夠運(yùn)行在該移動設(shè)備的可信執(zhí)行環(huán)境下,為在該可信執(zhí)行環(huán) 境中運(yùn)行的用于支付目的的Java Card應(yīng)用程序提供兼容性支持,其中,該Java Card應(yīng)用 支持模塊包括從Java Card底層類庫移植的類庫,以及用來支持該類庫的接口。7.如權(quán)利要求6所述的裝置,其中,Java Card應(yīng)用支持模塊利用可信執(zhí)行環(huán)境TEE的內(nèi) 核API實(shí)現(xiàn)虛擬機(jī)和Java Card底層類庫的相關(guān)接口,使得所述Java Card應(yīng)用程序與可信 執(zhí)行環(huán)境兼容。8.如權(quán)利要求7所述的裝置,其中,從Java Card底層類庫移植的類庫包括 javacard?framework、javacard?security、javacard?crypto、org?globalplatform。9.如權(quán)利要求6所述的裝置,其中,該Java Card應(yīng)用支持模塊被配置成通過TEE的加密 文件系統(tǒng)來實(shí)現(xiàn)Java Card應(yīng)用的內(nèi)部持久性對象。10.如權(quán)利要求7所述的裝置,其中,該Java Card應(yīng)用支持模塊被配置成通過調(diào)用TEE 提供的安全和加解密API實(shí)現(xiàn)Java Card的底層類庫javacard.security、javacard.crypto 的加解密功能,通過調(diào)用TEE提供的線程庫API實(shí)現(xiàn)javacard.framework和 org ? globalplatform類包,模擬卡片主安全域功能。11.一種移動設(shè)備,其中,該移動設(shè)備配置有如權(quán)利要求6至10中任何一項(xiàng)所述的裝置。
【文檔編號】G06Q20/32GK106096944SQ201610391454
【公開日】2016年11月9日
【申請日】2016年6月6日 公開號201610391454.5, CN 106096944 A, CN 106096944A, CN 201610391454, CN-A-106096944, CN106096944 A, CN106096944A, CN201610391454, CN201610391454.5
【發(fā)明人】姜波, 韓醫(yī)徽, 方琍, 李川川, 王巨, 張海洋, 章勇
【申請人】深圳市雪球科技有限公司