本發(fā)明涉及通信領(lǐng)域,尤其涉及一種Java卡的應(yīng)用身份驗(yàn)證方法及驗(yàn)證系統(tǒng)。
背景技術(shù):
智能卡(Smart Card)是一種帶有微型處理器和存儲(chǔ)器芯片的微型集成電路卡片,具有運(yùn)算能力和信息存儲(chǔ)功能。智能卡包括傳統(tǒng)的智能卡和Java智能卡,與傳統(tǒng)卡片相比,Java智能卡不僅具有平臺(tái)無關(guān)性,更重要的是支持一卡多應(yīng)用,且具有更高的安全性。
Java卡的出現(xiàn)使得一卡多應(yīng)用成為可能。在同一張卡片上安裝來自不同領(lǐng)域的應(yīng)用,帶來的是應(yīng)用之間的數(shù)據(jù)安全問題。Java卡設(shè)計(jì)規(guī)范中定義了防火墻來對(duì)不同的應(yīng)用之間的內(nèi)存空間進(jìn)行隔離和訪問控制。默認(rèn)情況下,一個(gè)應(yīng)用不能訪問其他應(yīng)用的方法、屬性,即使其方法和屬性是Public。但由于業(yè)務(wù)需要,應(yīng)用間難免會(huì)有需要互相調(diào)用的情況,比如支付應(yīng)用,在支付環(huán)節(jié)發(fā)送驗(yàn)證碼驗(yàn)證用戶信息時(shí),需要調(diào)用短信應(yīng)用程序。因此,Java卡防火墻提供一套用于不同應(yīng)用程序之間數(shù)據(jù)共享的機(jī)制。主要實(shí)現(xiàn)方式是提供共享服務(wù)的應(yīng)用程序通過繼承指定接口程序,可為其他應(yīng)用程序提供數(shù)據(jù)。共享機(jī)制的具體流程如下描述:
1.應(yīng)用程序應(yīng)用B定義了一個(gè)共享接口SI,并在SI中定義將要被其他應(yīng)用所訪問的方法,用一個(gè)類C來實(shí)現(xiàn)該SI;
2.應(yīng)用程序應(yīng)用A要調(diào)用應(yīng)用B中的某個(gè)方法,需要通過調(diào)用系統(tǒng)獲取SI對(duì)象的方法,向JCRE(Java card run-time environment,Java卡運(yùn)行時(shí)環(huán)境)請(qǐng)求應(yīng)用B的共享接口對(duì)象引用;
3.JCRE接收到請(qǐng)求后,查找內(nèi)部應(yīng)用注冊(cè)表,找到應(yīng)用B,將應(yīng)用A的請(qǐng)求以Java卡API中的函數(shù)getShareAbleInterface(AID,PARA)的方法發(fā)送給B;
4.應(yīng)用B接到請(qǐng)求后,判斷是否與A進(jìn)行共享,如果同意,則返回一個(gè)共享接口對(duì)象的引用給JCRE,再轉(zhuǎn)發(fā)給應(yīng)用A。
可以發(fā)現(xiàn),JCRE是通過AID(application identifier,應(yīng)用標(biāo)識(shí))直接查找應(yīng)用A和應(yīng)用B的引用信息,且應(yīng)用B是通過AID來判斷對(duì)方的身份,這帶來的安全隱患是:如果惡意應(yīng)用設(shè)置了一個(gè)與A相同的AID,那么就可以實(shí)現(xiàn)對(duì)應(yīng)用B的方法或數(shù)據(jù)的訪問。若僅僅只是靠AID來驗(yàn)證,那安全系數(shù)比較低??紤]Java卡在安裝應(yīng)用時(shí),AID應(yīng)該是唯一的,即當(dāng)卡片中已經(jīng)存在一個(gè)應(yīng)用A,那么不可能再安裝一個(gè)AID與A相同的應(yīng)用。然而,Java卡上的應(yīng)用是可以被某些攻擊進(jìn)行反編譯的,反編譯時(shí)可以獲得應(yīng)用A的AID,然后再將應(yīng)用A從卡片內(nèi)刪除,重新安裝一個(gè)具有A的AID的惡意應(yīng)用,這樣就可以通過共享接口非法來獲取應(yīng)用B的數(shù)據(jù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種Java卡的應(yīng)用身份驗(yàn)證方法及驗(yàn)證系統(tǒng),以解決現(xiàn)有技術(shù)中,Java卡上多個(gè)應(yīng)用進(jìn)行共享時(shí),應(yīng)用驗(yàn)證可靠性低,信息安全性差的問題。
第一方面,本發(fā)明實(shí)施例提供了一種Java卡的應(yīng)用身份認(rèn)證方法,應(yīng)用于Java卡,包括:
第一應(yīng)用發(fā)送第一通信信息至JCRE,所述第一通信信息包括以第二應(yīng)用為對(duì)象的共享接口引用請(qǐng)求;
所述JCRE按預(yù)設(shè)步驟對(duì)所述第一應(yīng)用進(jìn)行正向身份驗(yàn)證;
當(dāng)所述正向身份驗(yàn)證通過后,所述JCRE發(fā)送第二通信信息至所述第二應(yīng)用,所述第二通信信息包括所述第一應(yīng)用的應(yīng)用信息以及所述共享接口引用請(qǐng)求;
所述第二應(yīng)用根據(jù)所述應(yīng)用信息判斷所述第一應(yīng)用是否具有共享接口引用權(quán)限;
當(dāng)所述第一應(yīng)用具有所述共享接口引用權(quán)限時(shí),所述第二應(yīng)用發(fā)送第三通信信息至所述JCRE,所述第三通信信息包括共享接口確認(rèn)信息;
所述JCRE發(fā)送所述第三通信信息至所述第一應(yīng)用。
進(jìn)一步,上述在所述當(dāng)所述第一應(yīng)用具有所述共享接口引用權(quán)限時(shí),所述第二應(yīng)用發(fā)送第三通信信息至所述JCRE,所述第三通信信息包括共享接口確認(rèn)信息的步驟之后,還包括步驟:
所述JCRE按所述預(yù)設(shè)步驟對(duì)所述第二應(yīng)用進(jìn)行反向身份驗(yàn)證;
所述JCRE發(fā)送所述第三通信信息至所述第一應(yīng)用的步驟,具體為:
當(dāng)所述反向身份驗(yàn)證通過后,所述JCRE發(fā)送所述第三通信信息至所述第一應(yīng)用。
進(jìn)一步,上述所述第二應(yīng)用根據(jù)所述應(yīng)用信息判斷所述第一應(yīng)用是否具有共享接口引用權(quán)限的步驟,包括:
所述第二應(yīng)用獲取共享接口權(quán)限庫,所述共享接口權(quán)限庫包括多個(gè)應(yīng)用的應(yīng)用信息;
判斷所述第一應(yīng)用的應(yīng)用信息是否與所述共享接口權(quán)限庫中的任意應(yīng)用信息匹配,生成判斷結(jié)果。
進(jìn)一步,上述所述預(yù)設(shè)步驟,包括:
獲取待驗(yàn)證應(yīng)用的安全域中的應(yīng)用密鑰和標(biāo)準(zhǔn)驗(yàn)證參數(shù);
根據(jù)所述密鑰對(duì)所述待驗(yàn)證應(yīng)用的安全組件進(jìn)行解密,生成應(yīng)用序列號(hào);
根據(jù)預(yù)設(shè)算法對(duì)所述應(yīng)用序列號(hào)進(jìn)行運(yùn)算,生成待驗(yàn)證參數(shù);
根據(jù)所述待驗(yàn)證參數(shù)和所述標(biāo)準(zhǔn)驗(yàn)證參數(shù),確定驗(yàn)證結(jié)果。
進(jìn)一步,上述所述預(yù)設(shè)算法為哈希算法。
另一方面,本發(fā)明實(shí)施例還提供了一種一種Java卡的應(yīng)用身份驗(yàn)證系統(tǒng),包括:
第一發(fā)送模塊,用于控制第一應(yīng)用發(fā)送第一通信信息至JCRE,所述第一通信信息包括以第二應(yīng)用為對(duì)象的共享接口引用請(qǐng)求;
驗(yàn)證模塊,用于控制所述JCRE按預(yù)設(shè)步驟對(duì)所述第一應(yīng)用進(jìn)行正向身份驗(yàn)證;
第二發(fā)送模塊,用于在所述正向身份驗(yàn)證通過后,控制所述JCRE發(fā)送第二通信信息至所述第二應(yīng)用,所述第二通信信息包括所述第一應(yīng)用的應(yīng)用信息以及所述共享接口引用請(qǐng)求;
第一判斷模塊,用于控制所述第二應(yīng)用根據(jù)所述應(yīng)用信息判斷所述第一應(yīng)用是否具有共享接口引用權(quán)限;
第三發(fā)送模塊,用于在所述第一應(yīng)用具有所述共享接口引用權(quán)限時(shí),控制所述第二應(yīng)用發(fā)送第三通信信息至所述JCRE,所述第三通信信息包括共享接口確認(rèn)信息;
第四發(fā)送模塊,用于控制所述JCRE發(fā)送所述第三通信信息至所述第一應(yīng)用。
進(jìn)一步,上述所述驗(yàn)證模塊,還用于在第二應(yīng)用發(fā)送第三通信信息至所述JCRE之后,控制所述JCRE按所述預(yù)設(shè)步驟對(duì)所述第二應(yīng)用進(jìn)行反向身份驗(yàn)證;
所述第四發(fā)送模塊,具體用于在當(dāng)所述反向身份驗(yàn)證通過后,控制所述JCRE發(fā)送所述第三通信信息至所述第一應(yīng)用。
進(jìn)一步,上述所述第一判斷模塊包括:
第一獲取單元,用于控制所述第二應(yīng)用獲取共享接口權(quán)限庫,所述共享接口權(quán)限庫包括多個(gè)應(yīng)用的應(yīng)用信息;
判斷單元,用于判斷所述第一應(yīng)用的應(yīng)用信息是否與所述共享接口權(quán)限庫中的任意應(yīng)用信息匹配,生成判斷結(jié)果。
進(jìn)一步,上述所述驗(yàn)證模塊,包括:
第二獲取單元,用于獲取待驗(yàn)證應(yīng)用的安全域中的應(yīng)用密鑰和標(biāo)準(zhǔn)驗(yàn)證參數(shù);
第一生成單元,用于根據(jù)所述密鑰對(duì)所述待驗(yàn)證應(yīng)用的安全組件進(jìn)行解密,生成應(yīng)用序列號(hào);
第二生成單元,用于根據(jù)預(yù)設(shè)算法對(duì)所述應(yīng)用序列號(hào)進(jìn)行運(yùn)算,生成待驗(yàn)證參數(shù);
確定單元,用于根據(jù)所述待驗(yàn)證參數(shù)和所述標(biāo)準(zhǔn)驗(yàn)證參數(shù),確定驗(yàn)證結(jié)果。
進(jìn)一步,上述所述預(yù)設(shè)算法為哈希算法。
本發(fā)明實(shí)施例通過JCRE分別與第一應(yīng)用和第二應(yīng)用進(jìn)行通信,并在第一應(yīng)用發(fā)送第一通信信息時(shí),對(duì)第一應(yīng)用進(jìn)行正向身份驗(yàn)證,若第一應(yīng)用通過正向身份驗(yàn)證,則表示第一應(yīng)用為合法應(yīng)用,將第一應(yīng)用的應(yīng)用信息以及共享接口引用請(qǐng)求發(fā)送至第二應(yīng)用。本發(fā)明實(shí)施例可有效檢測(cè)出第一應(yīng)用被惡意篡改和替換的情況,提高第一應(yīng)用和第二應(yīng)用之間通信的數(shù)據(jù)安全性,防止用戶隱私泄露。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明的Java卡的應(yīng)用身份驗(yàn)證方法第一實(shí)施例的流程示意圖;
圖2是圖1中S102的詳細(xì)流程示意圖;
圖3是圖1中S104的詳細(xì)流程示意圖;
圖4是是本發(fā)明的Java卡的應(yīng)用身份驗(yàn)證方法第二實(shí)施例的流程示意圖;
圖5是本發(fā)明的驗(yàn)證系統(tǒng)的第一實(shí)施例的結(jié)構(gòu)示意圖;
圖6是圖5中的驗(yàn)證模塊120的結(jié)構(gòu)示意圖;
圖7是圖5中的第一判斷模塊140的結(jié)構(gòu)示意圖;
圖8是本發(fā)明的驗(yàn)證系統(tǒng)的第一實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本發(fā)明所解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
當(dāng)本發(fā)明實(shí)施例提及“第一”、“第二”等序數(shù)詞時(shí),除非根據(jù)上下文其確實(shí)表達(dá)順序之意,應(yīng)當(dāng)理解為僅僅是起區(qū)分之用。
如圖1所示,為本發(fā)明的Java卡的應(yīng)用身份驗(yàn)證方法的第一實(shí)施例的流程示意圖。該方法包括S101-S106。
S101,第一應(yīng)用發(fā)送第一通信信息至JCRE,所述第一通信信息包括以第二應(yīng)用為對(duì)象的共享接口引用請(qǐng)求。
在本實(shí)施例中,若第一應(yīng)用在運(yùn)行中需要調(diào)用第二應(yīng)用,此時(shí)發(fā)送第一通信信息至JCRE,第一通信信息中包含對(duì)第二應(yīng)用的共享接口引用請(qǐng)求。共享接口引用請(qǐng)求包括共享接口的名稱以及共享目的。
S102,所述JCRE按預(yù)設(shè)步驟對(duì)所述第一應(yīng)用進(jìn)行正向身份驗(yàn)證。
正向身份驗(yàn)證的目的是驗(yàn)證第一應(yīng)用的合法性,防止第一應(yīng)用被篡改或替換后的惡意操作。
如圖2所示,在S102中,所述預(yù)設(shè)步驟,包括:
S1021,獲取待驗(yàn)證應(yīng)用的安全域中的應(yīng)用密鑰和標(biāo)準(zhǔn)驗(yàn)證參數(shù)。
每個(gè)應(yīng)用提供商具有一個(gè)相應(yīng)的安全域,安全域負(fù)責(zé)提供各類安全服務(wù),包括應(yīng)用密鑰管理、加密解密、針對(duì)應(yīng)用進(jìn)行數(shù)字簽名的生成與驗(yàn)證。在應(yīng)用安裝到Java卡前,應(yīng)用提供商使用自身持有的應(yīng)用密鑰SK對(duì)應(yīng)用序列號(hào)SN(私密的,區(qū)別于AID)進(jìn)行AES加密(一種對(duì)稱密碼算法),將加密后的信息作為CAP文件的一部分安裝到Java卡中,這一部分稱為安全組件。同時(shí),應(yīng)用提供商提供的該密鑰SK存放到相應(yīng)的安全域中。另外,對(duì)應(yīng)用序列號(hào)SN進(jìn)行一個(gè)預(yù)設(shè)算法,得到標(biāo)準(zhǔn)驗(yàn)證參數(shù),存放到安全域中。具體到S102中,本步驟獲取第一應(yīng)用的安全域中的應(yīng)用密鑰和標(biāo)準(zhǔn)驗(yàn)證參數(shù)。
S1022,根據(jù)所述密鑰對(duì)所述待驗(yàn)證應(yīng)用的安全組件進(jìn)行解密,生成應(yīng)用序列號(hào)。
由于密鑰的加密方法為AES加密,故對(duì)安全組件進(jìn)行解密(對(duì)稱密碼算法的加解密使用同一個(gè)密鑰),得到應(yīng)用序列號(hào)。
S1023,根據(jù)預(yù)設(shè)算法對(duì)所述應(yīng)用序列號(hào)進(jìn)行運(yùn)算,生成待驗(yàn)證參數(shù)。
在本實(shí)施例中,所述預(yù)設(shè)算法為哈希算法。標(biāo)準(zhǔn)驗(yàn)證參數(shù)為哈希值M,待驗(yàn)證參數(shù)為哈希值M’。
S1024,根據(jù)所述待驗(yàn)證參數(shù)和所述標(biāo)準(zhǔn)驗(yàn)證參數(shù),確定驗(yàn)證結(jié)果。
當(dāng)哈希值M與哈希值M’相同時(shí),判斷正向身份驗(yàn)證通過。否則正向身份驗(yàn)證失敗。
S103,當(dāng)所述正向身份驗(yàn)證通過后,所述JCRE發(fā)送第二通信信息至所述第二應(yīng)用,所述第二通信信息包括所述第一應(yīng)用的應(yīng)用信息以及所述共享接口引用請(qǐng)求。
上述應(yīng)用信息包括應(yīng)用名稱、應(yīng)用類型或共享權(quán)限。
S104,所述第二應(yīng)用根據(jù)所述應(yīng)用信息判斷所述第一應(yīng)用是否具有共享接口引用權(quán)限。
如圖3所示,本實(shí)施例中,S104進(jìn)一步包括:
S1041,所述第二應(yīng)用獲取共享接口權(quán)限庫,所述共享接口權(quán)限庫包括多個(gè)應(yīng)用的應(yīng)用信息;
上述第二應(yīng)用可以內(nèi)置有共享接口權(quán)限庫,用于識(shí)別可共享的應(yīng)用名稱、應(yīng)用類型以及共享權(quán)限。
S1042,判斷所述第一應(yīng)用的應(yīng)用信息是否與所述共享接口權(quán)限庫中的任意應(yīng)用信息匹配,生成判斷結(jié)果。
若第二應(yīng)用識(shí)別第一應(yīng)用的應(yīng)用信息與共享接口權(quán)限庫中的任意應(yīng)用信息匹配,則生成第一應(yīng)用具有所述共享接口引用權(quán)限的判斷結(jié)果,否則第一應(yīng)用不具有所述共享接口引用權(quán)限的判斷結(jié)果。
S105,當(dāng)所述第一應(yīng)用具有所述共享接口引用權(quán)限時(shí),所述第二應(yīng)用發(fā)送第三通信信息至所述JCRE,所述第三通信信息包括共享接口確認(rèn)信息。
S106,所述JCRE發(fā)送所述第三通信信息至所述第一應(yīng)用。
當(dāng)JCRE發(fā)送第三通信信息后,第一應(yīng)用可實(shí)現(xiàn)共享所述第二應(yīng)用。
本發(fā)明實(shí)施例通過獲取所述系統(tǒng)的快速啟動(dòng)應(yīng)用名單,并根據(jù)該快速啟動(dòng)應(yīng)用名單將快速啟動(dòng)應(yīng)用的運(yùn)行數(shù)據(jù)裝載于系統(tǒng)的虛擬內(nèi)存中,進(jìn)而可以在接收到快速啟動(dòng)應(yīng)用的啟動(dòng)指示時(shí),從該虛擬內(nèi)存中讀取相應(yīng)的運(yùn)行數(shù)據(jù),啟動(dòng)所述待啟動(dòng)的應(yīng)用。本發(fā)明實(shí)施例,快速啟動(dòng)應(yīng)用名單體現(xiàn)了用戶的需求,將快速啟動(dòng)應(yīng)用的運(yùn)行數(shù)據(jù)裝載于系統(tǒng)的虛擬內(nèi)存中,可以使啟動(dòng)應(yīng)用時(shí)可以直接從虛擬內(nèi)存中讀取相應(yīng)運(yùn)行數(shù)據(jù),以此實(shí)現(xiàn)按照用戶需求提升應(yīng)用的啟動(dòng)速度。
如圖2所示,為本發(fā)明的Java卡的應(yīng)用身份驗(yàn)證方法的第二實(shí)施例的流程示意圖。
S201,第一應(yīng)用發(fā)送第一通信信息至JCRE,所述第一通信信息包括以第二應(yīng)用為對(duì)象的共享接口引用請(qǐng)求。
S202,所述JCRE按預(yù)設(shè)步驟對(duì)所述第一應(yīng)用進(jìn)行正向身份驗(yàn)證。
S203,當(dāng)所述正向身份驗(yàn)證通過后,所述JCRE發(fā)送第二通信信息至所述第二應(yīng)用,所述第二通信信息包括所述第一應(yīng)用的應(yīng)用信息以及所述共享接口引用請(qǐng)求。
S204,所述第二應(yīng)用根據(jù)所述應(yīng)用信息判斷所述第一應(yīng)用是否具有共享接口引用權(quán)限。
S205,當(dāng)所述第一應(yīng)用具有所述共享接口引用權(quán)限時(shí),所述第二應(yīng)用發(fā)送第三通信信息至所述JCRE,所述第三通信信息包括共享接口確認(rèn)信息。
本實(shí)施例中,步驟S201至步驟S205,與本發(fā)明的Java卡的應(yīng)用身份驗(yàn)證方法的第一實(shí)施例的對(duì)應(yīng)步驟的原理相同,此處不再贅述。
S206,所述JCRE按所述預(yù)設(shè)步驟對(duì)所述第二應(yīng)用進(jìn)行反向身份驗(yàn)證。
反向身份驗(yàn)證的方式可參考S1021至S1024,此處不再贅述。反向身份驗(yàn)證的目的在于對(duì)第三通信信息的發(fā)送主體的合法性進(jìn)行身份驗(yàn)證,以防止惡意應(yīng)用冒充第二應(yīng)用發(fā)送第三通信信息,進(jìn)一步提高了本發(fā)明實(shí)施例的數(shù)據(jù)安全性。
S207,當(dāng)所述反向身份驗(yàn)證通過后,所述JCRE發(fā)送所述第三通信信息至所述第一應(yīng)用。
本發(fā)明實(shí)施例通過在JCRE收到第三通信信息時(shí),對(duì)第二應(yīng)用進(jìn)行反向身份驗(yàn)證,可避免第二應(yīng)用的共享自由被惡意應(yīng)用控制,進(jìn)一步提高了本發(fā)明實(shí)施例的應(yīng)用驗(yàn)證可靠性,增強(qiáng)了信息安全性,可有效防止用戶隱私泄露。
上文對(duì)本發(fā)明的Java卡的應(yīng)用身份驗(yàn)證方法的實(shí)施例作了詳細(xì)介紹。下面將相應(yīng)于上述方法的驗(yàn)證系統(tǒng)作進(jìn)一步闡述。
如圖5所示,為本發(fā)明的Java卡的應(yīng)用身份驗(yàn)證系統(tǒng)的第一實(shí)施例的結(jié)構(gòu)示意圖。
本實(shí)施例中,驗(yàn)證系統(tǒng)100包括第一發(fā)送模塊110、驗(yàn)證模塊120、第二發(fā)送模塊130、第一判斷模塊140、第三發(fā)送模塊150和第四發(fā)送模塊160。其中,
第一發(fā)送模塊110,與驗(yàn)證模塊120相連接,用于控制第一應(yīng)用發(fā)送第一通信信息至JCRE,所述第一通信信息包括以第二應(yīng)用為對(duì)象的共享接口引用請(qǐng)求。
在本實(shí)施例中,若第一應(yīng)用在運(yùn)行中需要調(diào)用第二應(yīng)用,此時(shí)發(fā)送第一通信信息至JCRE,第一通信信息中包含對(duì)第二應(yīng)用的共享接口引用請(qǐng)求。共享接口引用請(qǐng)求包括共享接口的名稱以及共享目的。
驗(yàn)證模塊120,與第二發(fā)送模塊130相連接,用于控制所述JCRE按預(yù)設(shè)步驟對(duì)所述第一應(yīng)用進(jìn)行正向身份驗(yàn)證。
正向身份驗(yàn)證的目的是驗(yàn)證第一應(yīng)用的合法性,防止第一應(yīng)用被篡改或替換后的惡意操作。
如圖6所示,驗(yàn)證模塊120包括第二獲取單元121、第一生成單元122、第二生成單元123和確定單元124。其中,
第二獲取單元121,與第一生成單元122連接,用于獲取待驗(yàn)證應(yīng)用的安全域中的應(yīng)用密鑰和標(biāo)準(zhǔn)驗(yàn)證參數(shù)。
每個(gè)應(yīng)用提供商具有一個(gè)相應(yīng)的安全域,安全域負(fù)責(zé)提供各類安全服務(wù),包括應(yīng)用密鑰管理、加密解密、針對(duì)應(yīng)用進(jìn)行數(shù)字簽名的生成與驗(yàn)證。在應(yīng)用安裝到Java卡前,應(yīng)用提供商使用自身持有的應(yīng)用密鑰SK對(duì)應(yīng)用序列號(hào)SN(私密的,區(qū)別于AID)進(jìn)行AES加密(一種對(duì)稱密碼算法),將加密后的信息作為CAP文件的一部分安裝到Java卡中,這一部分稱為安全組件。同時(shí),應(yīng)用提供商提供的該密鑰SK存放到相應(yīng)的安全域中。另外,對(duì)應(yīng)用序列號(hào)SN進(jìn)行一個(gè)預(yù)設(shè)算法,得到標(biāo)準(zhǔn)驗(yàn)證參數(shù),存放到安全域中。具體到第二獲取單元121中,本單元獲取第一應(yīng)用的安全域中的應(yīng)用密鑰和標(biāo)準(zhǔn)驗(yàn)證參數(shù)。
第一生成單元122,與第二生成單元123連接,用于根據(jù)所述密鑰對(duì)所述待驗(yàn)證應(yīng)用的安全組件進(jìn)行解密,生成應(yīng)用序列號(hào)。
由于密鑰的加密方法為AES加密,故對(duì)安全組件進(jìn)行解密(對(duì)稱密碼算法的加解密使用同一個(gè)密鑰),得到應(yīng)用序列號(hào)。
第二生成單元123,與確定單元124連接,用于根據(jù)預(yù)設(shè)算法對(duì)所述應(yīng)用序列號(hào)進(jìn)行運(yùn)算,生成待驗(yàn)證參數(shù)。
在本實(shí)施例中,所述預(yù)設(shè)算法為哈希算法。標(biāo)準(zhǔn)驗(yàn)證參數(shù)為哈希值M,待驗(yàn)證參數(shù)為哈希值M’。
確定單元124,用于根據(jù)所述待驗(yàn)證參數(shù)和所述標(biāo)準(zhǔn)驗(yàn)證參數(shù),確定驗(yàn)證結(jié)果。
當(dāng)哈希值M與哈希值M’相同時(shí),判斷正向身份驗(yàn)證通過。否則正向身份驗(yàn)證失敗。
第二發(fā)送模塊130,與第一判斷模塊140相連接,用于在所述正向身份驗(yàn)證通過后,控制所述JCRE發(fā)送第二通信信息至所述第二應(yīng)用,所述第二通信信息包括所述第一應(yīng)用的應(yīng)用信息以及所述共享接口引用請(qǐng)求。
上述應(yīng)用信息包括應(yīng)用名稱、應(yīng)用類型或共享權(quán)限。
第一判斷模塊140,與第三發(fā)送模塊150相連接,用于控制所述第二應(yīng)用根據(jù)所述應(yīng)用信息判斷所述第一應(yīng)用是否具有共享接口引用權(quán)限。
如圖7所示,本實(shí)施例中,第一判斷模塊140包括第一獲取單元141和判斷單元142。其中,
第一獲取單元141,與判斷單元142連接,用于控制所述第二應(yīng)用獲取共享接口權(quán)限庫,所述共享接口權(quán)限庫包括多個(gè)應(yīng)用的應(yīng)用信息;
上述第二應(yīng)用可以內(nèi)置有共享接口權(quán)限庫,用于識(shí)別可共享的應(yīng)用名稱、應(yīng)用類型以及共享權(quán)限。
判斷單元142,用于判斷所述第一應(yīng)用的應(yīng)用信息是否與所述共享接口權(quán)限庫中的任意應(yīng)用信息匹配,生成判斷結(jié)果。
若第二應(yīng)用識(shí)別第一應(yīng)用的應(yīng)用信息與共享接口權(quán)限庫中的任意應(yīng)用信息匹配,則生成第一應(yīng)用具有所述共享接口引用權(quán)限的判斷結(jié)果,否則第一應(yīng)用不具有所述共享接口引用權(quán)限的判斷結(jié)果。
第三發(fā)送模塊150,與第四發(fā)送模塊160相連接,用于在所述第一應(yīng)用具有所述共享接口引用權(quán)限時(shí),控制所述第二應(yīng)用發(fā)送第三通信信息至所述JCRE,所述第三通信信息包括共享接口確認(rèn)信息。
第四發(fā)送模塊160,用于控制所述JCRE發(fā)送所述第三通信信息至所述第一應(yīng)用。
當(dāng)JCRE發(fā)送第三通信信息后,第一應(yīng)用可實(shí)現(xiàn)共享所述第二應(yīng)用。
本發(fā)明實(shí)施例通過獲取所述系統(tǒng)的快速啟動(dòng)應(yīng)用名單,并根據(jù)該快速啟動(dòng)應(yīng)用名單將快速啟動(dòng)應(yīng)用的運(yùn)行數(shù)據(jù)裝載于系統(tǒng)的虛擬內(nèi)存中,進(jìn)而可以在接收到快速啟動(dòng)應(yīng)用的啟動(dòng)指示時(shí),從該虛擬內(nèi)存中讀取相應(yīng)的運(yùn)行數(shù)據(jù),啟動(dòng)所述待啟動(dòng)的應(yīng)用。本發(fā)明實(shí)施例,快速啟動(dòng)應(yīng)用名單體現(xiàn)了用戶的需求,將快速啟動(dòng)應(yīng)用的運(yùn)行數(shù)據(jù)裝載于系統(tǒng)的虛擬內(nèi)存中,可以使啟動(dòng)應(yīng)用時(shí)可以直接從虛擬內(nèi)存中讀取相應(yīng)運(yùn)行數(shù)據(jù),以此實(shí)現(xiàn)按照用戶需求提升應(yīng)用的啟動(dòng)速度。
如圖8所示,為本發(fā)明的Java卡的應(yīng)用身份驗(yàn)證系統(tǒng)的第二實(shí)施例的結(jié)構(gòu)示意圖。本實(shí)施例中,驗(yàn)證系統(tǒng)200包括,第一發(fā)送模塊210、驗(yàn)證模塊220、第二發(fā)送模塊230、第一判斷模塊240、第三發(fā)送模塊250和第四發(fā)送模塊260。其中,
第一發(fā)送模塊210,與驗(yàn)證模塊220相連接,用于控制第一應(yīng)用發(fā)送第一通信信息至JCRE,所述第一通信信息包括以第二應(yīng)用為對(duì)象的共享接口引用請(qǐng)求。
驗(yàn)證模塊220,與第二發(fā)送模塊230相連接,用于控制所述JCRE按預(yù)設(shè)步驟對(duì)所述第一應(yīng)用進(jìn)行正向身份驗(yàn)證。
第二發(fā)送模塊230,與第一判斷模塊240相連接,用于在所述正向身份驗(yàn)證通過后,控制所述JCRE發(fā)送第二通信信息至所述第二應(yīng)用,所述第二通信信息包括所述第一應(yīng)用的應(yīng)用信息以及所述共享接口引用請(qǐng)求。
第一判斷模塊240,與第三發(fā)送模塊250相連接,用于控制所述第二應(yīng)用根據(jù)所述應(yīng)用信息判斷所述第一應(yīng)用是否具有共享接口引用權(quán)限。
第三發(fā)送模塊250,與驗(yàn)證模塊220相連接,用于在所述第一應(yīng)用具有所述共享接口引用權(quán)限時(shí),控制所述第二應(yīng)用發(fā)送第三通信信息至所述JCRE,所述第三通信信息包括共享接口確認(rèn)信息。
本實(shí)施例中,第一發(fā)送模塊210、驗(yàn)證模塊220、第二發(fā)送模塊230、第一判斷模塊240和第三發(fā)送模塊250與本發(fā)明的Java卡的應(yīng)用身份驗(yàn)證系統(tǒng)的第一實(shí)施例的對(duì)應(yīng)模塊的原理相同,此處不再贅述。
驗(yàn)證模塊220,與第四發(fā)送模塊260連接,還用于在第二應(yīng)用發(fā)送第三通信信息至所述JCRE之后,控制所述JCRE按所述預(yù)設(shè)步驟對(duì)所述第二應(yīng)用進(jìn)行反向身份驗(yàn)證。
反向身份驗(yàn)證的目的在于對(duì)第三通信信息的發(fā)送主體的合法性進(jìn)行身份驗(yàn)證,以防止惡意應(yīng)用冒充第二應(yīng)用發(fā)送第三通信信息,進(jìn)一步提高了本發(fā)明實(shí)施例的數(shù)據(jù)安全性。
第四發(fā)送模塊260,用于在當(dāng)所述反向身份驗(yàn)證通過后,控制所述JCRE發(fā)送所述第三通信信息至所述第一應(yīng)用。
本發(fā)明實(shí)施例通過在JCRE收到第三通信信息時(shí),對(duì)第二應(yīng)用進(jìn)行反向身份驗(yàn)證,可避免第二應(yīng)用的共享自由被惡意應(yīng)用控制,進(jìn)一步提高了本發(fā)明實(shí)施例的應(yīng)用驗(yàn)證可靠性,增強(qiáng)了信息安全性,可有效防止用戶隱私泄露。
本領(lǐng)域普通技術(shù)人員可以意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來實(shí)現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。
在本申請(qǐng)所提供的實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的系統(tǒng)實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。
所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、ROM、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。