基于電子鑰匙進(jìn)行應(yīng)用簽名的方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù),尤其是一種基于電子鑰匙進(jìn)行應(yīng)用簽名的方法和系統(tǒng)。
【背景技術(shù)】
[0002]電子鑰匙(USBKey)身份認(rèn)證是近幾年發(fā)展起來的一種方便、安全的身份認(rèn)證技術(shù)。它采用軟硬件相結(jié)合、一次一密的強(qiáng)雙因子認(rèn)證模式,很好地解決了安全性與易用性之間的矛盾。USBKey是一種通用串行總線(USB)接口的硬件設(shè)備,它內(nèi)置單片機(jī)或智能卡芯片,可以存儲用戶的密鑰或數(shù)字證書,利用USBKey內(nèi)置的密碼算法實(shí)現(xiàn)對用戶身份的認(rèn)證?;赨SBKey身份認(rèn)證系統(tǒng)主要有兩種應(yīng)用模式:一是基于沖擊/響應(yīng)(挑戰(zhàn)/應(yīng)答)的認(rèn)證模式,二是基于公用密鑰基礎(chǔ)結(jié)構(gòu)(PKI)體系的認(rèn)證模式,目前運(yùn)用在電子政務(wù)、網(wǎng)上銀行等領(lǐng)域,能夠有效防止用戶帳號盜用、密碼泄漏等安全隱患。
[0003]現(xiàn)有的一種USBKey技術(shù)形態(tài)是通過專門的硬件實(shí)現(xiàn)的,例如銀行的U盾。這種USBKey技術(shù)存在用戶使用成本高,而且使用不方便,一個U盾一般只對應(yīng)一個應(yīng)用等問題。
[0004]現(xiàn)有的另一種USBKey技術(shù)形態(tài)是基于手機(jī)終端用戶身份識別模塊(簡稱:用戶卡)實(shí)現(xiàn)的,通過手機(jī)終端用戶卡預(yù)置或生成非對稱加密算法RSA的非對稱密鑰對,并將其中的私鑰和證書信息存儲在用戶卡內(nèi),將其中的公鑰上傳到身份認(rèn)證系統(tǒng)。在進(jìn)行用戶身份認(rèn)證時,應(yīng)用系統(tǒng)將待加密或簽名(表示為加密/簽名)信息通過短信方式發(fā)送到手機(jī)終端用戶卡,由用戶卡對該待簽名信息進(jìn)行加密/簽名,然后將加密/簽名信息以短信方式發(fā)給應(yīng)用系統(tǒng),應(yīng)用系統(tǒng)將該加密/簽名信息后傳給身份認(rèn)證系統(tǒng)進(jìn)行驗(yàn)證。
[0005]在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)在上述另一種USBKey技術(shù)形態(tài)的實(shí)現(xiàn)方法至少存在以下問題:
[0006]由于應(yīng)用系統(tǒng)與手機(jī)終端用戶卡之間的信息傳輸是通過短信通道實(shí)現(xiàn)的,使得這種采用短信通道方式的USBKey存在短信容量小、短信延遲和丟失等問題,導(dǎo)致數(shù)據(jù)傳輸效率較低、業(yè)務(wù)時延較大,可能需要重新進(jìn)行簽名、驗(yàn)證流程,導(dǎo)致用戶體驗(yàn)效果較差。
【發(fā)明內(nèi)容】
[0007]本發(fā)明實(shí)施例所要解決的一個技術(shù)問題是:提供一種基于電子鑰匙進(jìn)行應(yīng)用簽名的方法和系統(tǒng),以避免短信容量小、短信延遲和丟失問題,提升數(shù)據(jù)傳輸效率。
[0008]本發(fā)明實(shí)施例提供的一種基于電子鑰匙進(jìn)行應(yīng)用簽名的方法,包括:
[0009]個人計(jì)算機(jī)PC上的應(yīng)用客戶端根據(jù)應(yīng)用系統(tǒng)的加密/簽名指示,通過通用串行總線USB接口將待加密/簽名數(shù)據(jù)信息發(fā)送給手機(jī)終端上的公用密鑰基礎(chǔ)結(jié)構(gòu)PKI認(rèn)證客戶端;
[0010]PKI認(rèn)證客戶端通過機(jī)卡接口模塊將所述待加密/簽名數(shù)據(jù)信息發(fā)送給手機(jī)終端上用戶身份識別模塊中的PKI認(rèn)證應(yīng)用單元;
[0011]PKI認(rèn)證應(yīng)用單元采用預(yù)先設(shè)置的加密/簽名算法,利用預(yù)先生成的公私密鑰對采用中的私鑰對待加密/簽名數(shù)據(jù)信息進(jìn)行加密/簽名,得到加密/簽名信息;
[0012]PKI認(rèn)證應(yīng)用單元通過機(jī)卡接口模塊將所述加密/簽名信息返回所述PKI認(rèn)證客戶端;
[0013]PKI認(rèn)證客戶端通過USB接口將所述加密/簽名信息返回所述應(yīng)用客戶端;
[0014]應(yīng)用客戶端將所述加密/簽名信息通過互聯(lián)網(wǎng)Internet發(fā)送到應(yīng)用系統(tǒng);
[0015]應(yīng)用系統(tǒng)將所述加密/簽名信息發(fā)送給PKI認(rèn)證服務(wù)器;
[0016]PKI認(rèn)證服務(wù)器采用所述加密/簽名算法,利用所述公私密鑰對采用中的公鑰對所述加密/簽名信息進(jìn)行解密、驗(yàn)證。
[0017]基于本發(fā)明上述方法的另一個實(shí)施例中,還包括:
[0018]所述應(yīng)用客戶端依次通過USB接口和機(jī)卡接口模塊獲取用戶身份識別模塊中集成電路卡識別碼ICCID及所述公私密鑰對采用中的公鑰,并通過Internet將所述ICCID、所述公私密鑰對采用中的公鑰與應(yīng)用標(biāo)識ID上傳給PKI認(rèn)證服務(wù)器;
[0019]PKI認(rèn)證服務(wù)器在對應(yīng)關(guān)系表中建立所述ICCID、所述公私密鑰對采用中的公鑰與所述應(yīng)用ID之間的對應(yīng)關(guān)系。
[0020]基于本發(fā)明上述方法的另一個實(shí)施例中,所述應(yīng)用客戶端依次通過USB接口和機(jī)卡接口模塊獲取用戶身份識別模塊中ICCID及所述公私密鑰對采用中的公鑰包括:
[0021]所述應(yīng)用客戶端通過USB接口通信協(xié)議向所述PKI認(rèn)證客戶端發(fā)送獲取ICCID及公鑰信息的獲取請求,該獲取請求中包括所述應(yīng)用ID ;
[0022]PKI認(rèn)證客戶端監(jiān)測到來自PC的獲取請求,將所述獲取請求轉(zhuǎn)換為應(yīng)用協(xié)議數(shù)據(jù)單元APDU格式請求指令,通過機(jī)卡接口模塊轉(zhuǎn)發(fā)給所述PKI認(rèn)證應(yīng)用單元;
[0023]所述PKI認(rèn)證應(yīng)用單元將所述用戶身份識別模塊中的手機(jī)號碼、ICCID和所述應(yīng)用ID及其對應(yīng)的公私密鑰對中的公鑰封裝到APDU格式響應(yīng)指令中,并通過機(jī)卡接口模塊將APDU格式響應(yīng)指令返回給所述PKI認(rèn)證客戶端;
[0024]PKI認(rèn)證客戶端將所述APDU格式響應(yīng)指令轉(zhuǎn)換成USB接口通信協(xié)議的響應(yīng)報(bào)文發(fā)送給所述應(yīng)用客戶端;
[0025]所述通過Internet將所述ICCID、所述公私密鑰對采用中的公鑰與應(yīng)用ID上傳給PKI認(rèn)證服務(wù)器具體為:所述應(yīng)用客戶端通過Internet,將所述手機(jī)號碼、ICCID、所述應(yīng)用ID及其對應(yīng)的公鑰發(fā)送給PKI認(rèn)證服務(wù)器;
[0026]所述PKI認(rèn)證服務(wù)器在對應(yīng)關(guān)系表中建立所述ICCID、所述公私密鑰對采用中的公鑰與所述應(yīng)用ID之間的對應(yīng)關(guān)系具體為:所述PKI認(rèn)證服務(wù)器在對應(yīng)關(guān)系表中建立所述手機(jī)號碼、ICCID、所述應(yīng)用ID及其對應(yīng)的公鑰之間的對應(yīng)關(guān)系。
[0027]基于本發(fā)明上述方法的另一個實(shí)施例中,還包括:
[0028]所述PKI認(rèn)證應(yīng)用單元接收到所述APDU格式請求指令,根據(jù)用戶身份識別模塊中的應(yīng)用白名單中是否包括所述應(yīng)用ID,判斷所述APDU格式請求指令是否為合法的應(yīng)用請求信息;
[0029]若應(yīng)用白名單中包括所述應(yīng)用ID,判定所述APDU格式請求指令為合法的應(yīng)用請求信息,執(zhí)行所述將所述用戶身份識別模塊中的手機(jī)號碼、ICCID和所述應(yīng)用ID及其對應(yīng)的公私密鑰對中的公鑰封裝到APDU格式響應(yīng)指令的操作;
[0030]否則,若應(yīng)用白名單中不包括所述應(yīng)用ID,判定所述APDU格式請求指令為非法的應(yīng)用請求信息,通過機(jī)卡接口模塊向PKI認(rèn)證客戶端返回APDU格式錯誤響應(yīng)指令,該APDU格式錯誤響應(yīng)指令中包括所述應(yīng)用ID ;PKI認(rèn)證客戶端通過USB接口通信協(xié)議向所述應(yīng)用客戶端返回錯誤響應(yīng)消息,該錯誤響應(yīng)消息中包括所述應(yīng)用ID。
[0031 ] 基于本發(fā)明上述方法的另一個實(shí)施例中,所述應(yīng)用客戶端通過USB接口將待加密/簽名數(shù)據(jù)信息發(fā)送給手機(jī)終端上的PKI認(rèn)證客戶端具體為:所述應(yīng)用客戶端通過USB接口通信協(xié)議將待加密/簽名數(shù)據(jù)信息發(fā)送給所述PKI認(rèn)證客戶端;
[0032]所述PKI認(rèn)證客戶端通過機(jī)卡接口模塊將所述待加密/簽名數(shù)據(jù)信息發(fā)送給PKI認(rèn)證應(yīng)用單元具體為:所述PKI認(rèn)證客戶端監(jiān)測到來自PC的待加密/簽名數(shù)據(jù)信息,將所述待加密/簽名數(shù)據(jù)信息封裝為APDU格式業(yè)務(wù)指令,通過機(jī)卡接口模塊轉(zhuǎn)發(fā)給PKI認(rèn)證應(yīng)用單元。
[0033]基于本發(fā)明上述方法的另一個實(shí)施例中,所述加密/簽名算法包括0CRA算法或者RSA算法。
[0034]基于本發(fā)明上述方法的另一個實(shí)施例中,所述PKI認(rèn)證應(yīng)用單元通過機(jī)卡接口模塊將所述加密/簽名信息返回所述PKI認(rèn)證客戶端具體為:所述PKI認(rèn)證應(yīng)用單元將所述加密/簽名的信息封裝到APDU格式業(yè)務(wù)響應(yīng)指令中,并通過機(jī)卡接口模塊將所述APDU格式業(yè)務(wù)響應(yīng)指令返回給所述PKI認(rèn)證客戶端;
[0035]所述PKI認(rèn)證客戶端通過USB接口將所述加密/簽名信息返回所述應(yīng)用客戶端具體為:所述PKI認(rèn)證客戶端將所述APDU格式業(yè)務(wù)響應(yīng)指令轉(zhuǎn)換為USB接口通信協(xié)議格式的業(yè)務(wù)響應(yīng)報(bào)文發(fā)送給所述應(yīng)用客戶端。
[0036]基于本發(fā)明上述方法的另一個實(shí)施例中,還包括:
[0037]通過空中下載0ΤΑ方式或?qū)I(yè)用戶卡應(yīng)用管理軟件,在手機(jī)終端的用戶身份識別模塊中置入所述PKI認(rèn)證應(yīng)用單元,所述PKI認(rèn)證應(yīng)用單元中包括預(yù)先設(shè)置的加密/簽名算法;以及
[0038]所述PKI認(rèn)證應(yīng)用單元根據(jù)用戶身份識別模塊中的應(yīng)用白名單中各應(yīng)用的應(yīng)用ID,生成各應(yīng)用的公私密鑰對,并存儲各應(yīng)用的應(yīng)用ID對應(yīng)的公私密鑰對。
[0039]基于本發(fā)明上述方法的另一個實(shí)施例中,所述Internet包括有線以太網(wǎng)或者無線局域網(wǎng)WIFI。
[0040]本發(fā)明實(shí)施例提供的一種基于電子鑰匙進(jìn)行應(yīng)用簽名的系統(tǒng),包括實(shí)現(xiàn)應(yīng)用系統(tǒng)、PC和手機(jī)終端,所述手機(jī)終端上耦合設(shè)置有用戶身份識別模塊;所述PC上設(shè)置有USB接口,以及耦合設(shè)置有所述應(yīng)用系統(tǒng)的應(yīng)用客戶端;所述手機(jī)終端上耦合設(shè)置有PKI認(rèn)證客戶端和機(jī)卡接口模塊,所述用戶身份識別模塊中耦合設(shè)置有PKI認(rèn)證應(yīng)用單元;其中:
[0041]所述應(yīng)用客戶端,用于根據(jù)應(yīng)用系統(tǒng)的加密/簽名指示,通過USB接口將待加密/簽名數(shù)據(jù)信息發(fā)送給所述PKI認(rèn)證客戶端;以及將所述PKI認(rèn)證客戶端通過USB接口返回的加密/簽名信息通過Internet發(fā)送到應(yīng)用系統(tǒng);
[0042]所述PKI認(rèn)證客戶端,用于通過機(jī)卡接口模塊將所述待加密/簽名數(shù)據(jù)信息發(fā)送給所述PKI認(rèn)證應(yīng)用單元;以及通過USB接口將所述PK