一種應(yīng)用的自升級方法及其系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體地涉及基于Java Card平臺實現(xiàn)Java Card應(yīng)用的自升級的方法及其系統(tǒng)。
[0002]
【背景技術(shù)】
[0003]隨著移動互聯(lián)網(wǎng)的不斷普及、發(fā)展,用戶對個人數(shù)據(jù)的儲存、迀移和管理的需求越來越強烈,用戶會需要經(jīng)常性地將移動終端上的應(yīng)用進行升級。
[0004]另一方面,隨著移動支付突飛猛進,在日常生活中占據(jù)了非常重要的角色。例如,公交卡、銀行卡、儲值會員卡、優(yōu)惠券等都可以通過空中下載的方式安裝到帶有SE芯片和支持NFC技術(shù)的移動設(shè)備中。使得移動設(shè)備可以當(dāng)作各類普通卡片使用,極大的提升了用戶體驗和生活的便利。
[0005]在日常使用過程中,存在如下一些特殊情況:例如,為了提供新的功能,修復(fù)已有的問題,需要通過應(yīng)用的升級來解決,同時還要保證原有數(shù)據(jù)的完整性,一致性。例如,在更新公交卡應(yīng)用的時候保留原有的相關(guān)信息,升級完畢后再恢復(fù)回去。這些雖然不是常態(tài)使用條件,但是也有一定的使用場景,特別是自升級功能使用戶手中的應(yīng)用實時更新,無需復(fù)雜的操作流程,僅僅是點一下按鈕,確認(rèn)一下即可獲取新的服務(wù),極大地降低了商戶的營運成本,也為用戶帶來了非常便利的體驗。
[0006]然而,這些應(yīng)用中的數(shù)據(jù)往往都是涉及到用戶資金的數(shù)據(jù),如果僅進行普通的自升級的話,可能會存在安全性的問題。這些安全性的問題包括:
(O實體認(rèn)證問題:需要保證只有合法的實體才能發(fā)起自升級;
(2)數(shù)據(jù)安全問題:需要保證數(shù)據(jù)在傳輸過程中的安全性和完整性;
(3)數(shù)據(jù)同步問題:需要保證數(shù)據(jù)的一致性、唯一性和原子性。
[0007]
【發(fā)明內(nèi)容】
[0008]鑒于上述問題,本發(fā)明旨在提供一種能夠保證數(shù)據(jù)安全性、完整性以及唯一性的應(yīng)用的自升級方法及其系統(tǒng)。
[0009]本發(fā)明的應(yīng)用的自升級方法是利用代理應(yīng)用和云服務(wù)器實現(xiàn)從舊應(yīng)用到新應(yīng)用的自升級的方法,其特征在于,包括下述步驟:
預(yù)置步驟,在應(yīng)用和云服務(wù)器中分別預(yù)置認(rèn)證密鑰和加密密鑰;
合法認(rèn)證步驟,應(yīng)用通過代理應(yīng)用的轉(zhuǎn)接與云服務(wù)器協(xié)作認(rèn)證合法身份;
備份步驟,在認(rèn)證了合法身份的情況下,將應(yīng)用的數(shù)據(jù)備份在代理應(yīng)用;以及恢復(fù)步驟,刪除舊的應(yīng)用,下載安裝新的應(yīng)用,將備份在代理應(yīng)用中的數(shù)據(jù)恢復(fù)到新的應(yīng)用中。
[0010]優(yōu)選地,所述應(yīng)用實現(xiàn)共享接口, 所述應(yīng)用和所述代理應(yīng)用之間的數(shù)據(jù)交互通過所述共享接口實現(xiàn)。
[0011 ] 優(yōu)選地,所述合法認(rèn)證步驟包括:
(1)用戶通過客戶端界面發(fā)起自升級請求發(fā)到云服務(wù)器,云服務(wù)器發(fā)起隨機數(shù)生成請求并通過代理應(yīng)用轉(zhuǎn)發(fā)到應(yīng)用;
(2)應(yīng)用根據(jù)所述隨機數(shù)生成請求產(chǎn)生隨機數(shù)并且將該隨機數(shù)通過代理應(yīng)用發(fā)送給云服務(wù)器;
(3)云服務(wù)器采用所述認(rèn)證密鑰對隨機數(shù)進行加密并生成隨機數(shù)密文,將該隨機數(shù)密文通過代理應(yīng)用返回給應(yīng)用;
(4)應(yīng)用利用預(yù)置的認(rèn)證密鑰驗證該隨機數(shù)密文,在通過驗證的情況下判斷為實體認(rèn)證合法。
[0012]優(yōu)選地,所述備份步驟包括:
數(shù)據(jù)備份步驟,在認(rèn)證了實體合法的情況下,將應(yīng)用的數(shù)據(jù)利用所述加密密鑰進行加密并將加密數(shù)據(jù)通過所述共享接口備份到代理應(yīng)用;
應(yīng)用失效步驟,在完成所述數(shù)據(jù)備份步驟后使得已進行了數(shù)據(jù)備份的應(yīng)用失效。
[0013]優(yōu)選地,在所述數(shù)據(jù)備份步驟中,代理應(yīng)用設(shè)置為不能被導(dǎo)出數(shù)據(jù)。
[0014]優(yōu)選地,在所述數(shù)據(jù)備份步驟中,采用3DES加密方法對于數(shù)據(jù)進行加密。
[0015]優(yōu)選地,所述恢復(fù)步驟包括:
(1)完成舊的應(yīng)用的刪除;
(2)下載安裝新的應(yīng)用;
(3)將代理應(yīng)用中已備份的數(shù)據(jù)恢復(fù)到新的應(yīng)用中;
(4)在新的應(yīng)用中解密數(shù)據(jù)后使得應(yīng)用恢復(fù)可被調(diào)用;
(5)在恢復(fù)成功后,刪除代理應(yīng)用中的數(shù)據(jù)。
[0016]本發(fā)明的實現(xiàn)應(yīng)用的自升級的系統(tǒng),其特征在于,具備:
一個或多個應(yīng)用,在所述應(yīng)用中預(yù)置有認(rèn)證密鑰和加密密鑰,并且實現(xiàn)共享接口 ;
云服務(wù)器,所述云服務(wù)器中預(yù)置有所述認(rèn)證密鑰和所述加密密鑰;
代理應(yīng)用,用于在所述應(yīng)用和云服務(wù)器之間進行數(shù)據(jù)的轉(zhuǎn)接,并且用于緩存來自所述應(yīng)用的數(shù)據(jù),
其中,所述應(yīng)用用于通過所述代理應(yīng)用的轉(zhuǎn)接來認(rèn)證實體的合法身份,在認(rèn)證了實體的合法身份的情況下,所述代理應(yīng)用用于備份所述應(yīng)用的數(shù)據(jù)。
[0017]優(yōu)選地,所述代理應(yīng)用在備份所述應(yīng)用的數(shù)據(jù)之后使得所述應(yīng)用失效,所述代理應(yīng)用在將備份的數(shù)據(jù)恢復(fù)到所述應(yīng)用中之后使得所述應(yīng)用恢復(fù)成可被調(diào)用。
[0018]優(yōu)選地,在將所述應(yīng)用的數(shù)據(jù)備份到所述代理應(yīng)用之后,所述代理應(yīng)用設(shè)置為不能被導(dǎo)出數(shù)據(jù)。
[0019]利用本發(fā)明的實現(xiàn)應(yīng)用的自升級的方法及其系統(tǒng),由于通過隨機數(shù)進行實體認(rèn)證,因此,能夠保證只有合法的實體才能夠發(fā)起自升級,而且在數(shù)據(jù)的傳輸、備份中都利用加密密鑰對數(shù)據(jù)進行加密,并計算HASH值,因此,能夠保證進行備份的數(shù)據(jù)的安全性和完整性。而且,在進行備份時,停止舊應(yīng)用的被調(diào)用,因此也能夠保證數(shù)據(jù)的一致性、唯一性和原子性。尤其是,對于涉及金融數(shù)據(jù)的應(yīng)用的自升級,本發(fā)明能夠有效地保證金融數(shù)據(jù)的安全性、同步性和完整性。
[0020]
【附圖說明】
[0021]圖1是表示本發(fā)明的用于實現(xiàn)應(yīng)用的自升級的系統(tǒng)的構(gòu)造框圖。
[0022]圖2是表示本發(fā)明的用于實現(xiàn)應(yīng)用的自升級的方法的主要步驟的流程圖。
[0023]圖3a、圖3b中分別表示用于實現(xiàn)自升級的方法中的合法認(rèn)證步驟S102、備份步驟S103的一個實例的JAVA程序。
[0024]
【具體實施方式】
[0025]下面介紹的是本發(fā)明的多個實施例中的一些,旨在提供對本發(fā)明的基本了解。并不旨在確認(rèn)本發(fā)明的關(guān)鍵或決定性的要素或限定所要保護的范圍。
[0026]JAVA CARD是JAVA技術(shù)的一個子集,專門用于智能卡的嵌入設(shè)備中,可以說JAVACARD是運行JAVA程序的一種智能卡。JAVA CARD中的應(yīng)用叫applet(后文中稱為“應(yīng)用”)。JAVA CARD中各個應(yīng)用之間存在防火墻,不能相互訪問,例如,正常情況下,應(yīng)用A不能訪問應(yīng)用B。因此,在JAVA CARD中,不同應(yīng)用之間的數(shù)據(jù)的直接訪問是嚴(yán)格禁止的,由JAVACARD平臺的防火墻來實現(xiàn)這樣的邏輯隔離。
[0027]另一方面,在《JavaCard 3 Platform Runtime Environment Specificat1n,Classic Edit1n))Vers1n 3.0.4 中 6.2.4 節(jié)描述了 Shareable Interface (這里,我們稱為“共享接口”)這個特征。具體地主要是:共享接口是Java Card API的一個特征,用于實現(xiàn)應(yīng)用的交互。共享接口定義了一套共享的接口方法。該接口方法能夠從上下文調(diào)用,甚至在實現(xiàn)該接口方法的對象是屬于另一個上下文的應(yīng)用的情況下。在本標(biāo)準(zhǔn)中,作為實現(xiàn)該共享接口的類的對象實例,稱作為共享接口對象(S10)。對于本身的上下文,S1是其成員變量(field)和方法能夠被訪問的普通的對象。而對于另一上下文,S1是共享接口的實例并且只有在共享接口中被定義的方法才能被訪問。S1的所有其他成員變量以及方法被防火墻保護。
[0028]在本發(fā)明中,發(fā)明人就主要利用了 JAVA CARD中的上述共享接口來使得兩個應(yīng)用之間能夠進行數(shù)據(jù)交互,例如,使得應(yīng)用A (相當(dāng)于后文中的應(yīng)用)和應(yīng)用B (相當(dāng)于后文中的代理應(yīng)用)之間能夠利用共享接口跨過防火墻進行數(shù)據(jù)交互,由此來實現(xiàn)本發(fā)明的應(yīng)用的自升級方法及其系統(tǒng)。
[0029]下面,首先對于本發(fā)明的用于實現(xiàn)應(yīng)用的自升級系統(tǒng)進行說明。
[0030]圖1是表示本發(fā)明的用于實現(xiàn)應(yīng)用的自升級系統(tǒng)的構(gòu)造框圖。
[0031]如圖1所示,本發(fā)明的用于實現(xiàn)應(yīng)用的自升級系統(tǒng)包括:多個應(yīng)用100、一個代理應(yīng)用200、以及云服務(wù)器300。
[0032]在本發(fā)明中,應(yīng)用100可以是一個,也可以是多個,作為應(yīng)用的實例,例如可以是公交應(yīng)用、銀行卡應(yīng)用、優(yōu)惠券應(yīng)用等等的各種應(yīng)用。在應(yīng)用100中預(yù)先設(shè)置有認(rèn)證密鑰和加密密鑰。應(yīng)用100在設(shè)計上能夠?qū)崿F(xiàn)上述的共享接口,共享接口的實現(xiàn)通常通過程序設(shè)計來實現(xiàn)。
[0033]云服務(wù)器300與在應(yīng)用100預(yù)置的認(rèn)證密鑰和加密密鑰對應(yīng)地,也預(yù)置有認(rèn)證密鑰和加密密鑰,云服務(wù)器300用于認(rèn)證發(fā)起自升級的實體是否合法。
[0034]在應(yīng)用100和云服務(wù)器300之間設(shè)置有代理應(yīng)用200,利用代理應(yīng)用200在應(yīng)用100和云服務(wù)器300之間能夠進行數(shù)據(jù)的轉(zhuǎn)接并且用于備份來自應(yīng)用100的數(shù)據(jù)。具體地,一方面,應(yīng)用100通過代理應(yīng)用200能夠與云服務(wù)器300之間進行數(shù)據(jù)傳輸,由此來認(rèn)證發(fā)起自升級的實體是否合法。另一方面,要進行自升級的情況下,應(yīng)用100中的數(shù)據(jù)通過其共享接口能夠跨過防火墻備份到代理應(yīng)用200。在本發(fā)明中,代理應(yīng)用200相當(dāng)于一個中間轉(zhuǎn)接件,在應(yīng)用100和云服務(wù)器300之間能夠進行數(shù)據(jù)轉(zhuǎn)接,而且,代理應(yīng)用200能夠?qū)⒖▋?nèi)的數(shù)據(jù)(應(yīng)用100中的數(shù)據(jù))進行備份。代理應(yīng)用200對卡內(nèi)來說可以對應(yīng)于多個應(yīng)用100,對卡外來說,代理應(yīng)用200是多個應(yīng)用100對外的一個統(tǒng)一出口。
[0035]下面對于利用上述系統(tǒng)實現(xiàn)的應(yīng)用的自升級方法進行說明。
[0036]圖2是表示本發(fā)明的用于實現(xiàn)應(yīng)用的自升級的方法的主要步驟的流程圖。
[0037]如圖2所示,該方法包括下述步驟:
預(yù)置步驟SlOl:在應(yīng)用100和云服務(wù)器300中分別預(yù)置認(rèn)證密鑰和加密密鑰;
合法認(rèn)證步驟S102:應(yīng)用100通過代理應(yīng)用200的轉(zhuǎn)接與云服務(wù)器300協(xié)作認(rèn)證實體的合法身份;
備份步驟S103:應(yīng)用100在認(rèn)證了實體的合法身份的情況下,將應(yīng)用100的數(shù)據(jù)備份在代理應(yīng)用200 ;以及
恢復(fù)步驟S104:刪除舊的應(yīng)用,下載安裝新的應(yīng)用,將備份在代理應(yīng)用200中的數(shù)據(jù)恢復(fù)到新的應(yīng)用中(在這里舊的應(yīng)用或者新的應(yīng)用在構(gòu)造上都可以看作為應(yīng)用100,因此在此不進行區(qū)分地標(biāo)號)。
[0038]接著,對于預(yù)置步驟S101、合法認(rèn)證步驟S102、備份步驟S103以及恢復(fù)步驟S104分別進行具體說明。
[0039]上述預(yù)置步驟SlOl中,在應(yīng)用100和云服務(wù)