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