本發(fā)明實施例涉及智能卡模擬技術領域,尤其涉及一種Java EE平臺構(gòu)建方法、Java EE平臺及云端系統(tǒng)。
背景技術:
云端卡模擬技術,是一種是基于云端系統(tǒng)技術的智能卡模擬技術。目前主流的云端卡模擬系統(tǒng),具有數(shù)據(jù)安全性高,不易被惡意攻擊和篡改的特點,十分適合替代智能卡的安全模塊(Secure Element,SE)技術,確??ㄆ瑪?shù)據(jù)的安全性。
Java Card Applet應用(以下簡稱Applet)是一種基于Java語言編寫的運行在智能卡中的應用程序。具體的,Applet應用是基于Java Card編程接口(Java CardApplication Programming Interface,JC API)開發(fā)的,JC API是Java編程語言的子集。
在現(xiàn)有技術中,云端卡模擬系統(tǒng)及相關技術是使用Java企業(yè)級開發(fā)環(huán)境(以下簡稱Java EE)進行開發(fā)的。而要實現(xiàn)一個特定的云端卡模擬系統(tǒng),需要在服務器開發(fā)環(huán)境下重新進行開發(fā),編程接口及運行機制會與實體的智能卡片大不相同。
當相同功能卡片的Applet應用程序需要分別部署到Java Card平臺和Java EE平臺時,開發(fā)人員往往需要編寫兩套邏輯相近但風格迥異的代碼,從而使開發(fā)工作變得更加繁重,并且由于應用在兩個平臺的代碼不一致,更會導致應用的可維護性降低。
技術實現(xiàn)要素:
本發(fā)明實施例提供一種Java EE平臺構(gòu)建方法、Java EE平臺及云端系統(tǒng),能夠?qū)崿F(xiàn)快速開發(fā)Java EE Applet應用程序。
第一方面,本發(fā)明實施例提供了一種Java EE平臺構(gòu)建方法,包括:
將Java Card平臺的底層類庫移植至Java EE平臺中;
根據(jù)所述底層類庫構(gòu)建所述Java EE平臺的Java Card中間層類庫。
第二方面,本發(fā)明實施例還提供了一種Java EE平臺,包括Java Card中間層類庫;
所述Java Card中間層類庫根據(jù)Java Card平臺的底層類庫構(gòu)建。
第三方面,本發(fā)明實施例還提供了一種云端系統(tǒng),包括:上述第二方面所述的Java EE平臺和/或基于所述Java EE平臺開發(fā)的Java EE Applet應用程序。
第四方面,本發(fā)明實施例還提供了一種云端卡模擬系統(tǒng),包括上述第三方面所述的云端系統(tǒng)。
第五方面,本發(fā)明實施例還提供了一種基于上述第四方面所述的云端卡模擬系統(tǒng)的云端卡模擬方法,包括:
云端系統(tǒng)確定接收到的指令請求的類型;
所述云端系統(tǒng)根據(jù)所述類型確定對應的處理策略,并根據(jù)所述處理策略生成對應的響應數(shù)據(jù)。
本發(fā)明實施例通過將Java Card平臺的底層類庫移植至Java EE平臺中,使開發(fā)人員只需要在現(xiàn)有的Java Card Applet應用程序的基礎上進行微小的改動即可在移植后的Java EE平臺上運行,能夠?qū)崿F(xiàn)快速開發(fā)Java EE Applet應用程序。
附圖說明
圖1是本發(fā)明實施例一中的一種Java EE平臺構(gòu)建方法的流程圖;
圖2是本發(fā)明實施例二中的一種Java EE平臺的結(jié)構(gòu)圖;
圖3是本發(fā)明實施例三中的一種云端系統(tǒng)的結(jié)構(gòu)圖;
圖4是本發(fā)明實施例四中的一種云端卡模擬系統(tǒng)的結(jié)構(gòu)圖;
圖5是本發(fā)明實施例五中的一種基于實施例四中的云端卡模擬系統(tǒng)的云端卡模擬方法的流程圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明作進一步的詳細說明??梢岳斫獾氖?,此處所描述的具體實施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關的部分而非全部結(jié)構(gòu)。
實施例一
圖1為本發(fā)明實施例一提供的一種Java EE平臺構(gòu)建方法的流程圖,本實施例可適用于將基于Java Card平臺開發(fā)的Java Card應用程序運行在Java EE平臺的情況,如圖1所示,具體包括:
S110、將Java Card平臺的底層類庫移植至Java EE平臺中。
其中,Java Card底層類庫包含了至少以下一種類包:java.io、java.lang、java.rm、javacard.framework、javacard.security、javacardx.crypto、org.globalplatform。
本實施可優(yōu)選關注javacard.framework、javacard.security、javacard.crypto、org.globalplatform類包的移植。
S120、根據(jù)所述底層類庫構(gòu)建所述Java EE平臺的Java Card中間層類庫。
具體的,Java Card平臺主要是讓智慧卡或與智慧卡相近的裝置上,以具有安全防護性的方式來執(zhí)行小型的Java Applet應用程序,此技術也被廣泛運用在SIM卡、提款卡上。
本發(fā)明實施例為了使Java EE平臺也可以實現(xiàn)相似的功能,則可將Java Card平臺的底層類庫移植至Java EE平臺中,構(gòu)成所述Java EE平臺的Java Card中間層類庫。使Java Card Applet就可只做少量的適應性修改,即可在Java EE平臺上編譯及運行,能夠?qū)崿F(xiàn)快速開發(fā)Java EE Applet應用程序。
在上述實施例的基礎上,將Java Card平臺的底層類庫移植至Java EE平臺中可包括:
根據(jù)云端Applet應用程序的運行原理對所述底層類庫進行篩選,確定需要移植的類包和/或應用程序編程接口(Application Programming Interface,API);
保持所述類包的包名和/或包路徑、和/或接口名稱和/或接口路徑,將所述類包和/或接口移植至所述Java EE平臺中。
具體的,通過對Java Card底層類庫進行篩選,確定具體需要移植的類包和應用程序編程接口,并保持原有類庫的包名、包路徑。通過篩選,可以得到以下類庫:
并保持確定的類包的包名和/或包路徑、和/或接口名稱和/或接口路徑,將所述類包和/或接口移植至所述Java EE平臺中,構(gòu)成所述Java EE平臺的Java Card中間層類庫。
在上述實施例的基礎上,根據(jù)所述底層類庫構(gòu)建所述Java EE平臺的Java Card中間層類庫可包括:
調(diào)用java.security類庫加解密相關的API實現(xiàn)所述Java Card中間層類庫的javacard.security類包、javacard.crypto類包的加解密功能;
根據(jù)所述Java EE平臺的特性封裝實現(xiàn)所述Java Card中間層類庫的javacard.framework類包和org.globalplatform類包,以模擬實現(xiàn)智能卡片的安全驗證功能。
本發(fā)明實施例為了使Java EE平臺也可以實現(xiàn)相似的功能,則可將Java Card平臺的底層類庫移植至Java EE平臺中,構(gòu)成所述Java EE平臺的Java Card中間層類庫。使Java Card Applet就可只做少量的適應性修改,即可在Java EE平臺上編譯及運行,能夠?qū)崿F(xiàn)快速開發(fā)Java EE Applet應用程序,以實現(xiàn)模擬智能卡片的安全防護。
實施例二
圖2為本發(fā)明實施例二提供的一種Java EE平臺的結(jié)構(gòu)圖,如圖2所示,具體包括:Java Card中間層類庫21;所述Java Card中間層類庫21根據(jù)Java Card平臺的底層類庫構(gòu)建。
其中,所述Java Card中間層類庫可優(yōu)選包括以下至少一種類包:javacard.security類包、javacard.crypto類包、javacard.framework類包和org.globalplatform類包。
具體的,通過將Java Card平臺的底層類庫移植至Java EE平臺中,根據(jù)所述底層類庫構(gòu)建所述Java EE平臺的Java Card中間層類庫。其構(gòu)建過程詳見上述實施例一的描述,這里不再贅述。
通過本實施例的Java EE平臺,研發(fā)人員可以開發(fā)具有安全防護性的方式來執(zhí)行小型的Java EE Applet應用程序,或者在現(xiàn)有Java Card Applet應用程序的基礎上可只做少量的適應性修改,即可在Java EE平臺上編譯及運行,能夠?qū)崿F(xiàn)快速開發(fā)Java EE Applet應用程序。
在上述實施例的基礎上,所述Java EE平臺還包括:Java EE底層類庫22和/或Java虛擬機23;
如圖2所示,所述Java EE底層類庫22位于所述Java Card中間層類庫21的底層、所述Java虛擬機23位于所述Java EE底層類庫22的底層。
基于圖2所述的Java EE平臺,研發(fā)人員可以開發(fā)具有安全防護性的方式來執(zhí)行小型的Java EE Applet應用程序,進而實現(xiàn)智能卡片的安全驗證功能。
實施例三
圖3為本發(fā)明實施例三提供的一種云端系統(tǒng),如圖3所示,具體包括:Java EE平臺31和/或基于所述Java EE平臺31開發(fā)的Java EE Applet應用程序32。
通過本實施例的云端系統(tǒng),能夠?qū)崿F(xiàn)智能卡片的安全驗證功能。
實施例四
圖4為本發(fā)明實施例四提供的一種云端卡模擬系統(tǒng),如圖4所示,具體包括:云端系統(tǒng)41。
在上述實施例的基礎上,云端卡模擬系統(tǒng)還包括:卡模擬設備42;
所述卡模擬設備42與所述云端系統(tǒng)41通信連接,用于向所述云端系統(tǒng)41發(fā)送指令請求。
其中,所述卡模擬設備優(yōu)選為近距離通信主機卡模擬(Near Field Communication-Host Card Emulation,NFC-HCE)移動終端,例如NFC-HCE手機。
在上述實施例的基礎上,云端卡模擬系統(tǒng)還包括:讀卡設備43;
所述讀卡設備43與所述卡模擬設備42通信連接,用于向卡模擬設備43發(fā)送指令請求。
通過本實施例的云端卡模擬系統(tǒng),能夠?qū)崿F(xiàn)智能卡片的安全驗證功能。
實施例五
圖5為本發(fā)明實施例四提供的一種基于上述云端卡模擬系統(tǒng)的云端卡模擬方法,如圖5所示,具體包括如下步驟:
S510、云端系統(tǒng)確定接收到的指令請求的類型。
S520、所述云端系統(tǒng)根據(jù)所述類型確定對應的處理策略,并根據(jù)所述處理策略生成對應的響應數(shù)據(jù)。
具體的,對于不同的指令請求,云端系統(tǒng)會執(zhí)行不同的處理??蛇x的,如果所述指令請求的類型為選擇指令,所述云端系統(tǒng)從對應的持久化文件中加載Java EE Applet應用程序,并在內(nèi)存中創(chuàng)建Java EE Applet對象;所述云端系統(tǒng)通過Java反射技術,將Java EE Applet對象的相關Ram字段值復位,以模擬智能卡片的Ram存儲器特性;所述云端系統(tǒng)使用Java EE Applet對象對選擇指令進行處理并生成響應數(shù)據(jù);或者,如果指令請求的類型為普通指令,所述云端系統(tǒng)直接使用已被選擇并加載至內(nèi)存的Java EE Applet對象對指令進行處理并生成響應數(shù)據(jù)。
本實施例通過云端系統(tǒng)確定接收到的指令請求的類型,并根據(jù)所述類型確定對應的處理策略,進一步生成對應的響應數(shù)據(jù),能夠?qū)崿F(xiàn)智能卡片的安全驗證功能。
在上述實施例的基礎上,云端系統(tǒng)確定接收到的指令請求的類型之前,還包括:
云端系統(tǒng)與卡模擬設備建立通信連接,并接收卡模擬設備發(fā)送的所述指令請求。
所述指令請求具體可以為APDU指令。
具體的,卡模擬設備可向云端系統(tǒng)發(fā)送指令請求?;蛘?,在發(fā)送指令之前,需先向云端系統(tǒng)進行某種認證或授權后,再向云端系統(tǒng)發(fā)送指令請求。
在上述實施例的基礎上,云端系統(tǒng)接收卡模擬設備發(fā)送的所述指令請求之前,還包括:
卡模擬設備與讀卡設備建立通信連接,并接收讀卡設備發(fā)送的所述指令請求。
具體的,卡模擬設備接收到所述指令請求后,將其轉(zhuǎn)發(fā)給云端系統(tǒng)進行處理。
在上述實施例的基礎上,所述方法還包括:
云端系統(tǒng)通過網(wǎng)絡下發(fā)響應指令將所述響應數(shù)據(jù)發(fā)送到所述卡模擬設備,以使所述卡模擬設備將所述響應數(shù)據(jù)轉(zhuǎn)發(fā)至所述讀卡設備。
具體的,卡模擬設備接收讀卡設備發(fā)送的APDU指令,并通過網(wǎng)絡將APDU指令轉(zhuǎn)發(fā)至云端系統(tǒng)。當云端系統(tǒng)接收到卡模擬設備的APDU指令后,會執(zhí)行相應的處理并生成響應數(shù)據(jù),云端系統(tǒng)通過網(wǎng)絡將響應數(shù)據(jù)下發(fā)到卡模擬設備,卡模擬設備使用云端系統(tǒng)下發(fā)的數(shù)據(jù)響應讀卡設備。
在上述實施例的基礎上,所述方法還包括:
所述云端系統(tǒng)在生成響應數(shù)據(jù)后,對Java EE Applet對象數(shù)據(jù)進行持久化操作,保存Java EE Applet對象數(shù)據(jù)到持久化介質(zhì),以模擬智能卡片的非易失性存儲器特性。
具體的,可預先定義持久化加密密鑰(,例如可為24字節(jié)對稱密鑰),在對Java EE Applet對象數(shù)據(jù)進行持久化的過程中,對Java EE Applet對象數(shù)據(jù)進行對稱加密,以保證數(shù)據(jù)的安全。
注意,上述僅為本發(fā)明的較佳實施例及所運用技術原理。本領域技術人員會理解,本發(fā)明不限于這里所述的特定實施例,對本領域技術人員來說能夠進行各種明顯的變化、重新調(diào)整和替代而不會脫離本發(fā)明的保護范圍。因此,雖然通過以上實施例對本發(fā)明進行了較為詳細的說明,但是本發(fā)明不僅僅限于以上實施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實施例,而本發(fā)明的范圍由所附的權利要求范圍決定。