一種基于移動終端的密碼數(shù)據(jù)處理和交換方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于信息安全技術(shù)領(lǐng)域,特別是一種基于移動終端的密碼數(shù)據(jù)處理和交換方法。
【背景技術(shù)】
[0002]在使用密碼技術(shù)的應(yīng)用中經(jīng)常遇到的一個問題是采用何種方案存儲和使用用戶密鑰。目前用戶密鑰的存儲和使用通常有如下兩種方案。
[0003]一種最簡單也是最常用的方案是將用戶密鑰存儲在用戶計算機中,并通過軟件密碼模塊使用用戶密鑰對數(shù)據(jù)進(jìn)行密碼處理(包括加密、解密、簽名、簽名驗證)。這種方案的問題在于:方案不適合于在公共計算機中采用;若用戶在不同計算機使用自己的密鑰,則需要在不同計算機之間復(fù)制密鑰、存儲密鑰,這給用戶帶來了很大不便。
[0004]另一種方案是使用專門的密碼硬件裝置(如USB Key)存儲用戶密鑰并在密碼硬件裝置中使用用戶密鑰對數(shù)據(jù)進(jìn)行密碼處理。這種方案的最大優(yōu)點是安全,且用戶可在不同計算機上使用自己的密鑰對數(shù)據(jù)進(jìn)行密碼處理。這種方案的存在的問題是:使用密碼硬件裝置如USB Key會產(chǎn)生額外的費用;在網(wǎng)吧,許多計算機的USB接口被封存,無法使用密碼硬件裝置。
[0005]目前,幾乎所有用戶都擁有手機、平板電腦等移動終端(移動計算裝置),這些手機、平板電腦可以用作密鑰存儲和進(jìn)行數(shù)據(jù)密碼處理的裝置。這種采用移動終端的密鑰存儲和使用方案雖然沒有采用專門的密碼硬件裝置的方案安全性高,但在通常的應(yīng)用中這種方案的安全性已足夠(比如在非涉及錢財?shù)膽?yīng)用中,或者在僅涉及小額錢財?shù)膽?yīng)用中這種方案的安全性已足夠)。如果采用移動終端作為用戶密鑰的存儲和使用裝置,這就有兩個問題需要解決:當(dāng)用戶在計算機上使用應(yīng)用客戶端與應(yīng)用系統(tǒng)進(jìn)行交互時,如何將需要進(jìn)行密碼處理的數(shù)據(jù)傳送到移動終端?應(yīng)用系統(tǒng)如何獲得移動終端密碼處理后的數(shù)據(jù)?
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的是針對采用專門的密碼硬件裝置存在的問題,提出以移動終端作為用戶密鑰存儲和密碼處理裝置的密碼數(shù)據(jù)處理和交換方案。
[0007]為了實現(xiàn)本發(fā)明的目的,本發(fā)明提出的技術(shù)方案是:
[0008]一種基于移動終端的密碼數(shù)據(jù)處理和交換方法,所述方法如下:
[0009]在用戶的移動終端中安裝一個密碼處理程序并將用戶的密鑰保存在移動終端中;所述移動終端是便攜式移動計算設(shè)備(如移動通信終端和平板電腦);用戶的移動終端有攝像頭和條碼掃描程序(動態(tài)庫、類庫和獨立運行的程序)用于條碼掃描和條碼數(shù)據(jù)讀取;所述用戶密鑰包括對稱密鑰和/或非對稱密鑰;所述密碼處理程序是一個運行在用戶移動終端中的對數(shù)據(jù)進(jìn)行密碼處理的程序(即APP);所述密碼處理包括加密、解密、數(shù)字簽名、簽名驗證;所述數(shù)字簽名和簽名驗證包括對稱密鑰數(shù)字簽名和簽名驗證,以及非對稱密鑰數(shù)字簽名和簽名驗證;所述密碼處理程序調(diào)用移動終端中的條碼掃描程序獲取以條碼形式顯示的數(shù)據(jù);
[0010]用戶使用運行在計算機中的應(yīng)用客戶端訪問應(yīng)用系統(tǒng);
[0011]若應(yīng)用客戶端在與應(yīng)用系統(tǒng)進(jìn)行交互的過程中需要對數(shù)據(jù)進(jìn)行密碼處理,則應(yīng)用客戶端或應(yīng)用客戶端調(diào)用的API通過條碼將待密碼處理的數(shù)據(jù)以及對密碼處理后的數(shù)據(jù)進(jìn)行標(biāo)識的數(shù)據(jù)傳遞給運行在用戶移動終端中的密碼處理程序;密碼處理程序使用保存在移動終端中的用戶密鑰對待密碼處理的數(shù)據(jù)進(jìn)行密碼處理;密碼處理程序在完成數(shù)據(jù)的密碼處理后,將密碼處理后的數(shù)據(jù)以寄存數(shù)據(jù)包的形式提交到密碼中介系統(tǒng)保存,而對密碼處理后的數(shù)據(jù)進(jìn)行標(biāo)識的數(shù)據(jù)則被轉(zhuǎn)化為寄存數(shù)據(jù)包的標(biāo)識數(shù)據(jù);應(yīng)用客戶端或應(yīng)用客戶端調(diào)用的API或應(yīng)用系統(tǒng)依據(jù)寄存數(shù)據(jù)包的標(biāo)識數(shù)據(jù)從密碼中介系統(tǒng)獲取密碼處理程序提交的寄存數(shù)據(jù)包,從而獲得密碼處理后的數(shù)據(jù);若密碼處理后的數(shù)據(jù)是敏感的數(shù)據(jù),則提交到密碼中介系統(tǒng)的寄存數(shù)據(jù)包被密碼處理程序加密,而應(yīng)用客戶端或應(yīng)用客戶端調(diào)用的API在通過條碼將待密碼處理的數(shù)據(jù)通過條碼傳遞給密碼處理程序的同時,將對密碼處理后的數(shù)據(jù)進(jìn)行加密處理的私密數(shù)據(jù)通過條碼傳遞給密碼處理程序;而應(yīng)用客戶端或應(yīng)用客戶端調(diào)用的API或應(yīng)用系統(tǒng)獲得密碼處理程序提交的寄存數(shù)據(jù)包后,通過對密碼處理后的數(shù)據(jù)進(jìn)行加密處理的私密數(shù)據(jù)解密加密的寄存數(shù)據(jù)包;
[0012]所述應(yīng)用客戶端調(diào)用的API是被應(yīng)用客戶端調(diào)用對數(shù)據(jù)進(jìn)行處理的API (應(yīng)用編程接口)程序(如動態(tài)庫、組件、類庫等),包括密碼處理API ;所述密碼中介系統(tǒng)是一個作為數(shù)據(jù)傳遞橋梁的系統(tǒng);所述密碼中介系統(tǒng)是一個獨立運行的系統(tǒng)或者是應(yīng)用系統(tǒng)的一個組件;所述密碼中介系統(tǒng)將接收到的寄存數(shù)據(jù)包在內(nèi)存或數(shù)據(jù)庫中保存一段預(yù)定的時間期限(如30秒),超過預(yù)定的保存時間期限后,密碼中介系統(tǒng)將保存的寄存數(shù)據(jù)包從內(nèi)存或數(shù)據(jù)庫中刪除;或者在保存的寄存數(shù)據(jù)包被獲取超過預(yù)定的次數(shù)后,密碼中介系統(tǒng)將保存的寄存數(shù)據(jù)包從內(nèi)存或數(shù)據(jù)庫中刪除。
[0013]通過以上描述可以看到,基于本發(fā)明的方法,用戶可將移動終端作為隨身攜帶的密鑰存儲和密碼處理裝置,并通過密碼中介系統(tǒng)將密碼處理后的數(shù)據(jù)傳遞給應(yīng)用客戶端或應(yīng)用系統(tǒng),用戶無需專門的密碼硬件裝置,這對用戶而言,既操作使用方便,又無需額外開銷,而且可在沒有USB接口的環(huán)境使用。
【附圖說明】
[0014]圖1為本發(fā)明實施例一或?qū)嵤├牧鞒淌疽鈭D。
[0015]圖2為本發(fā)明實施例三或?qū)嵤├牡牧鞒淌疽鈭D。
【具體實施方式】
[0016]下面結(jié)合附圖和實施例對本發(fā)明作進(jìn)一步的描述。
[0017]本發(fā)明針對經(jīng)密碼處理后的數(shù)據(jù)是敏感的、需要保密的還是不敏感、不需要保密的,以及密碼處理后的數(shù)據(jù)的直接獲取實體是應(yīng)用系統(tǒng)還是應(yīng)用客戶端的不同情況,有如下四種具體實施方案。
[0018]實施例一:
[0019]若密碼處理后的數(shù)據(jù)是敏感的、需要保密的,密碼處理后的數(shù)據(jù)的直接獲取實體是應(yīng)用系統(tǒng),則所述方法的實施如下:
[0020]若應(yīng)用客戶端在與應(yīng)用系統(tǒng)進(jìn)行交互的過程中需要對數(shù)據(jù)進(jìn)行密碼處理,則用戶、應(yīng)用客戶端或應(yīng)用客戶端調(diào)用的AP1、密碼處理程序以及密碼中介系統(tǒng)按如下方式對待密碼處理的數(shù)據(jù)進(jìn)行操作處理:
[0021]第一步:應(yīng)用客戶端或應(yīng)用客戶端調(diào)用的API將待密碼處理的數(shù)據(jù)和數(shù)據(jù)交換密鑰以條碼的形式顯示;所述數(shù)據(jù)交換密鑰既是對密碼處理后的數(shù)據(jù)進(jìn)行加密處理的私密數(shù)據(jù),同時也作為對密碼處理后的數(shù)據(jù)進(jìn)行標(biāo)識的數(shù)據(jù);
[0022]第二步:用戶使用運行有密碼處理程序的移動終端對用戶計算機上顯示的條碼進(jìn)行掃描;
[0023]第三步:密碼處理程序從掃描的條碼中獲得待密碼處理的數(shù)據(jù)和數(shù)據(jù)交換密鑰;
[0024]第四步:密碼處理程序使用存儲在移動終端中的用戶密鑰對待密碼處理的數(shù)據(jù)進(jìn)行密碼處理,形成密碼處理后的數(shù)據(jù);
[0025]第五步:密碼處理程序使用從條碼中獲得的數(shù)據(jù)交換密鑰或者由數(shù)據(jù)交換密鑰導(dǎo)出的密鑰對密碼處理后的數(shù)據(jù)進(jìn)行加密形成寄存數(shù)據(jù)包;密碼處理程序采用單向不可逆函數(shù)對從條碼中獲得的數(shù)據(jù)交換密鑰進(jìn)行處理,以處理后生成的數(shù)據(jù)作為寄存數(shù)據(jù)包的標(biāo)識碼,將帶有標(biāo)識碼的寄存數(shù)據(jù)包提交到密碼中介系統(tǒng);
[0026]第六步:密碼中介系統(tǒng)將接收到的寄存數(shù)據(jù)包保存在內(nèi)存或數(shù)據(jù)庫中;
[0027]第七步:應(yīng)用客戶端或應(yīng)用客戶端調(diào)用的API采用同樣的單向不可逆函數(shù)對數(shù)據(jù)交換密鑰進(jìn)行處理,以處理后生成的數(shù)據(jù)作為寄存數(shù)據(jù)包的標(biāo)識碼從密碼中介系統(tǒng)獲得具有對應(yīng)(即同樣)標(biāo)識碼的寄存數(shù)據(jù)包;應(yīng)用客戶端或應(yīng)用客戶端調(diào)用的API使用數(shù)據(jù)交換密鑰或者由數(shù)據(jù)交換密鑰導(dǎo)出的密鑰對獲得的寄存數(shù)據(jù)包進(jìn)行解密,獲得密碼處理后的數(shù)據(jù);
[0028]若應(yīng)用客戶端需要將密碼處理后的數(shù)據(jù)提交到應(yīng)用系統(tǒng),則執(zhí)行第八步;否則,結(jié)束密碼處理執(zhí)行;
[0029]第八步:應(yīng)用客戶端將獲得的密