一種基于移動終端的密碼系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種基于移動終端的密碼系統(tǒng),所述系統(tǒng)包括移動終端、運行在移動終端中的移動密碼功能程序、密碼服務器及向密碼應用程序提供密碼功能調用的密碼模塊;當密碼應用程序調用密碼模塊的密碼功能時,若密碼模塊需要調用用戶移動終端中的密碼功能程序完成密碼功能的處理,則密碼模塊先通過點對點通信方式連接用戶的移動終端,調用移動終端中的密碼功能程序進行密碼功能的處理,若連接或調用失敗,則密碼模塊通過密碼服務器與移動終端中的密碼功能程序建立密碼連接,調用移動終端中的密碼功能程序進行密碼功能的處理。本發(fā)明確保在無法通過點對點方式調用移動終端中的密碼功能的時仍然能夠通過數(shù)據(jù)網調用移動終端中的密碼功能。
【專利說明】
一種基于移動終端的密碼系統(tǒng)
【技術領域】
[0001]本發(fā)明屬于信息安全【技術領域】,特別是一種基于移動終端的密碼系統(tǒng)。
【背景技術】
[0002]針對使用數(shù)字證書的用戶需要攜帶用于存放證書及私鑰的USB Key (USB密碼鑰匙)而帶來的諸多不便問題,本發(fā)明 申請人:在其專利申請“一種基于移動終端的便攜式密碼裝置”(申請?zhí)?201410340474.0)中提出了一種基于移動終端的便攜式密碼裝置,該密碼裝置利用用戶常用移動終端如手機、平板電腦作為存放證書和私鑰以及進行密碼運算的密碼裝置,用于替代USB Key0專利申請201410340474.0中的方案獲得應用的一個前提是運行密碼功能程序、作為密碼裝置的移動終端同密碼應用程序運行所在計算設備(如臺式PC計算機、便攜式計算機)之間能通過點對點方式進行數(shù)據(jù)交換,比如通過USB接口、藍牙、W1-Fi對等網等。但是,在某些情況下,這個條件不能得到滿足,比如,臺式電腦通常沒有藍牙、W1-Fi,而這時我們可能恰好沒有攜帶進行USB通信連接的USB連接線,在這種情況下密碼用戶就不能使用專利申請201410340474.0中的方案進行密碼操作與運算。本發(fā)明針對這一問題提出相應的解決方案。
【發(fā)明內容】
[0003]本發(fā)明的目的是提供一種利用手機、平板電腦等移動終端和數(shù)據(jù)網實現(xiàn)密碼功能的密碼系統(tǒng),以克服現(xiàn)有技術的不足。
[0004]為了實現(xiàn)上述目的,本發(fā)明所采用的技術方案是:
[0005]一種基于移動終端的密碼系統(tǒng),所述密碼系統(tǒng)包括移動終端、密碼功能程序、密碼模塊以及密碼服務器,其中:
[0006]移動終端:一種用戶可隨身攜帶的具有程序執(zhí)行和計算能力的裝置(如移動手機、平板電腦);所述移動終端具有接入到數(shù)據(jù)網的能力(如通過移動手機的數(shù)據(jù)業(yè)務接入到TCP/IP網絡);所述移動終端中保存有用戶的密鑰,所述密鑰包括對稱密鑰密碼算法的對稱密鑰和公開密鑰密碼算法的公鑰和私鑰;
[0007]移動密碼功能程序:一個運行在移動終端中提供密碼功能的軟件組件;所述密碼功能包括對用戶存儲在移動終端中的密鑰進行管理(如生成、導入、導出、刪除等)以及使用密鑰進行密碼運算;
[0008]密碼模塊:位于密碼應用程序所在計算裝置,向密碼應用程序提供密碼功能調用的軟件組件(如動態(tài)庫、COM組件等);所述密碼應用程序是使用密碼功能實現(xiàn)安全目的的程序;所述密碼模塊(及密碼應用程序)所在計算裝置具有接入數(shù)據(jù)網的能力且不是移動密碼功能程序運行所在的移動終端;所述密碼模塊本身具有使用對稱密鑰進行密碼運算以及進行散列(HASH)運算的能力;
[0009]密碼服務器:一個作為密碼功能程序和密碼模塊之間通過數(shù)據(jù)網進行數(shù)據(jù)交換橋梁的服務器系統(tǒng);所述密碼服務器通過數(shù)據(jù)網面向密碼模塊和密碼功能程序提供密碼連接和數(shù)據(jù)交換服務;所述密碼連接是密碼模塊和密碼功能程序之間建立的密碼功能調用和數(shù)據(jù)交換的邏輯通道;所述密碼模塊和密碼功能程序作為密碼服務器的客戶端程序接入到密碼服務器;
[0010]當一個密碼應用程序(通過接口)調用所述密碼模塊的密碼功能時(包括進行密鑰操作或密碼運算時),若所述密碼模塊需要通過調用用戶移動終端中的所述密碼功能程序完成密碼功能的處理(如對存儲在移動終端中的用戶的密鑰進行操作,或者使用用戶存儲在移動終端中的密鑰進行密碼運算),則所述密碼模塊先通過點對點通信方式(如USB、藍牙、W1-Fi對等網)連接用戶的移動終端,調用移動終端中的密碼功能程序進行密碼功能的處理;若連接或調用失敗,則所述密碼模塊通過密碼服務器與用戶移動終端中的密碼功能程序建立密碼連接,調用移動終端中的密碼功能程序進行密碼功能的處理。
[0011]所述密碼模塊按如下方案之一通過密碼服務器與用戶移動終端中的密碼功能程序建立密碼連接,調用移動終端中的密碼功能程序進行密碼功能的處理。
[0012]方案一:
[0013]第一步:密碼模塊彈出一個人機交互界面,提示用戶啟動移動終端中的密碼功能程序登錄密碼服務器;
[0014]第二步:用戶先將移動終端接入到數(shù)據(jù)網,然后啟動移動終端中的密碼功能程序連接所述密碼服務器,并通過密碼功能程序使用用戶在密碼服務器的身份憑證完成在密碼服務器的登錄操作;
[0015]第三步:密碼功能程序生成一個隨機碼(一串隨機字符碼),利用從用戶身份憑證中獲取的帳戶名和隨機碼生成一個密碼連接令牌,將生成的密碼連接令牌提交到密碼服務器;密碼服務器接收到密碼功能程序提交的密碼連接令牌后,將接收到的密碼連接令牌保存在密碼服務器與密碼功能程序的會話連接的會話數(shù)據(jù)中;
[0016]第四步:密碼功能程序通過人機交互界面顯示生成的隨機碼(即生成密碼連接令牌的隨機碼),提示用戶將用戶在密碼服務器的帳戶名和密碼功能程序顯示的隨機碼分別輸入到密碼模塊的人機交互界面的用戶帳戶名和隨機碼輸入框中并提交;
[0017]第五步:用戶將在密碼服務器的帳戶名和密碼功能程序顯示的隨機碼分別輸入到密碼模塊的人機交互界面的帳戶名和隨機字碼輸入框中,然后提交;
[0018]第六步:密碼模塊接收到用戶輸入并提交的帳戶名和隨機碼后,利用用戶輸入的帳戶名和隨機碼生成一個與密碼功能程序生成的密碼連接令牌一樣的密碼連接令牌,連接密碼服務器,提交生成的密碼連接令牌,請求通過密碼服務器與已登錄密碼服務器并提交了相同密碼連接令牌的密碼功能程序建立密碼連接(指應用層的連接,而不是網絡傳輸層的連接);
[0019]第七步:密碼服務器接收到密碼模塊提交的建立密碼連接的請求后,(通過會話數(shù)據(jù))檢查已登錄密碼服務器的密碼功能程序中是否有一個密碼功能程序提交了相同的密碼連接令牌,若沒有,則返回出錯;若有,則確定此提交了相同密碼連接令牌的密碼功能程序是密碼模塊要建立密碼連接的密碼功能程序,密碼服務器將密碼模塊建立密碼連接的請求轉交到密碼功能程序;
[0020]第八步:密碼功能程序在驗證、確認密碼模塊擁有同樣的用于生成密碼連接令牌的隨機碼后同密碼模塊建立密碼連接;
[0021]第九步:密碼模塊通過密碼連接同用戶移動終端中的密碼功能程序進行數(shù)據(jù)交互,調用密碼功能程序完成密碼功能的處理,即:密碼模塊通過密碼服務器將調用密碼功能的請求提交到密碼服務器,由密碼服務器轉交到密碼連接另一端的用戶移動終端中的密碼功能程序,密碼功能程序完成密碼功能的調用處理后,經密碼服務器將密碼功能調用處理的結果返回到密碼模塊。
[0022]方案二:
[0023]第一步:密碼模塊生成一個隨機碼(一串隨機字符碼),彈出一個人機交互界面,顯示隨機碼,提示用戶啟動移動終端中的密碼功能程序登錄密碼服務器,并在登錄過程中輸入密碼模塊顯示的隨機碼;
[0024]第二步:用戶先將移動終端接入到數(shù)據(jù)網,然后啟動移動終端中的密碼功能程序連接所述密碼服務器,并通過密碼功能程序使用用戶在密碼服務器的身份憑證完成在密碼服務器的登錄操作;
[0025]第三步:用戶將密碼模塊顯示的隨機碼輸入到密碼功能程序的人機交互界面并提交;
[0026]第四步:密碼功能程序接收到用戶通過密碼功能程序輸入、提交的隨機碼后,利用從用戶身份憑證中獲取的帳戶名和用戶提交的隨機碼生成一個密碼連接令牌,將生成的密碼連接令牌提交到密碼服務器;密碼服務器接收到密碼功能程序提交的密碼連接令牌后,將接收到的密碼連接令牌保存在密碼服務器與密碼功能程序的會話連接的會話數(shù)據(jù)中;
[0027]第五步:密碼功能程序提示用戶將用戶在密碼服務器的帳戶名輸入到密碼模塊的人機交互界面的用戶帳戶名輸入框中并提交;
[0028]第六步:用戶將在密碼服務器的用戶帳戶名輸入到密碼模塊顯示的用戶帳戶名輸入框中,然后提交;
[0029]第七步:密碼模塊接收到用戶輸入并提交的帳戶名后,利用在第一步生成的隨機碼和用戶提交的帳戶名生成一個與密碼功能程序生成的密碼連接令牌一樣的密碼連接令牌,連接密碼服務器,提交生成的密碼連接令牌,請求通過密碼服務器與已登錄密碼服務器并提交了相同密碼連接令牌的密碼功能程序建立密碼連接(指應用層的連接,而不是網絡傳輸層的連接);
[0030]第八步:密碼服務器接收到密碼模塊提交的建立密碼連接的請求后,(通過會話數(shù)據(jù))檢查已登錄密碼服務器的密碼功能程序中是否有一個密碼功能程序提交了相同的密碼連接令牌,若沒有,則返回出錯;若有,則確定此提交了相同密碼連接令牌的密碼功能程序是密碼模塊要建立密碼連接的密碼功能程序,密碼服務器將密碼模塊建立密碼連接的請求轉交到密碼功能程序;
[0031]第九步:密碼功能程序在驗證、確認密碼模塊擁有同樣的用于生成密碼連接令牌的隨機碼后同密碼模塊建立密碼連接;
[0032]第十步:密碼模塊通過密碼連接同用戶移動終端中的密碼功能程序進行數(shù)據(jù)交互,調用密碼功能程序完成密碼功能的處理,即:密碼模塊通過密碼服務器將調用密碼功能的請求提交到密碼服務器,由密碼服務器轉交到密碼連接另一端的用戶移動終端中的密碼功能程序,密碼功能程序完成密碼功能的調用處理后,經密碼服務器將密碼功能調用處理的結果返回到密碼模塊。
[0033]以上方案一和二中的所述身份憑證是指用于在線標識和鑒別用戶的電子數(shù)據(jù),由用戶標識數(shù)據(jù)和私密鑒別數(shù)據(jù)構成(如帳戶名和口令、數(shù)字證書和私鑰、IBC標識和私鑰,帳戶名和用于用戶鑒別的手機短信隨機碼);用戶在密碼服務器的身份憑證的用戶標識數(shù)據(jù)是或者包含用戶在密碼服務器的帳戶名;
[0034]在所述密碼模塊通過密碼服務器與用戶移動終端中的密碼功能程序建立密碼連接后,密碼模塊同密碼功能程序之間的密碼連接通過密碼連接標識符(Identifier,ID)進行標識和識別,密碼模塊同密碼功能程序之間的交互數(shù)據(jù)中包含有密碼連接標識符以區(qū)分不同的密碼連接;且密碼模塊和密碼功能程序之間交互的數(shù)據(jù)通過數(shù)據(jù)加密以及散列的消息鑒別碼HMAC (Hashed Message Authenticat1n Code),進行安全保護(保證數(shù)據(jù)的私密性和完整性),其中,用于加密數(shù)據(jù)和計算HMAC的密鑰(對稱密鑰)由用于生成密碼連接令牌的隨機碼產生或導出。
[0035]利用帳戶名和隨機碼生成密碼連接令牌的方法或算法和利用生成密碼連接令牌的隨機碼產生或導出用于加密數(shù)據(jù)和計算HMAC的密鑰的方法或算法需具有如下特性:
[0036]從密碼連接令牌中既不能獲取或導出隨機碼,也不能導出用于加密數(shù)據(jù)和計算HMAC的密鑰。
[0037]當密碼模塊根據(jù)密碼應用程序的調用請求,調用密碼功能程序使用用戶移動終端中的用戶私鑰進行數(shù)字簽名時,密碼功能程序通過人機交互界面提請用戶確認,只有得到用戶確認后密碼功能程序才繼續(xù)進行數(shù)字簽名的調用處理。
[0038]當密碼模塊根據(jù)密碼應用程序的調用請求,調用密碼功能程序使用用戶移動終端中的用戶私鑰進行數(shù)字簽名時,密碼模塊將要簽名的數(shù)據(jù)傳送到密碼功能程序,由密碼功能程序通過人機交互界面將要簽名的數(shù)據(jù)內容呈現(xiàn)給用戶并提請用戶確認,只有得到用戶確認后密碼功能程序才繼續(xù)進行數(shù)字簽名的調用處理。
[0039]另外,在所述方案二中,密碼模塊可以以條碼或二維碼的方式顯示生成的隨機碼。若密碼模塊以條碼或二維碼的方式顯示隨機碼,則用戶使用移動終端掃描條碼或二維碼,將條碼或二維碼表示的隨機碼輸入到密碼功能程序。
[0040]從以上
【發(fā)明內容】
可以看到在密碼應用程序調用密碼模塊時,若密碼模塊需要調用用戶移動終端(如手機、平板電腦)中的密碼功能來完成密碼操作處理,則密碼模塊先嘗試通過點對點(如USB、Bluet00th、W1-Fi對等網)通信方式連接移動終端并調用其中的密碼功能程序提供的密碼功能,如果通過點對點通信方式無法連接移動終端,則密碼模塊通過數(shù)據(jù)網(局域網或互聯(lián)網)中密碼服務器,與用戶移動終端中的密碼功能程序建立進行密碼功能調用的密碼連接,調用密碼功能程序提供的密碼功能來完成所需的密碼操作處理。在這個密碼連接建立過程中,一方面用戶先將移動終端接入到數(shù)據(jù)網(如移動手機通過數(shù)據(jù)業(yè)務接入到互聯(lián)網,平板電腦通過W1-Fi接入到局域網或互聯(lián)網),然后將密碼功能程序接入到密碼服務器;另一方面密碼模塊也連接密碼服務器;之后,密碼功能程序和密碼模塊向密碼服務器提供建立密碼連接的相同密碼連接令牌從而通過密碼服務建立起密碼連接,實現(xiàn)密碼功能的調用。通過這種方式,即便密碼模塊所在計算機與用戶移動終端之間不能建立(直接的)點對點通信,也可以通過數(shù)據(jù)網調用用戶移動終端中的密碼功能。
【專利附圖】
【附圖說明】
[0041]圖1為本發(fā)明的密碼系統(tǒng)的示意圖。
【具體實施方式】
[0042]下面結合附圖和實施例對本發(fā)明作進一步的描述。
[0043]關于密碼服務器以及通過密碼服務器在密碼模塊和密碼功能程序間建立會話連接(即邏輯通道)的方式的實施,可借鑒、采用即時通信系統(tǒng)的服務器以及即時通信客戶端之間通過服務器建立會話連接的實施方案,其關鍵是以服務器為橋梁在客戶端之間構建數(shù)據(jù)傳輸通道,具體可采用的實施方案很多,在此不細敘述。
[0044]密碼功能程序可采用適合于密碼應用程序以及密碼應用程序運行所在環(huán)境的開發(fā)技術開發(fā),比如,用C/C++開發(fā)。
[0045]密碼功能程序可采用適合移動終端的開發(fā)技術開發(fā),比如J2ME。具體實施中,密碼功能程序既作為密碼服務器的一個客戶端程序(Client),又作為一個提供密碼功能調用的服務器程序(Server)。
[0046]滿足從密碼連接令牌中既不能獲取或導出隨機碼,也無法導出用于加密數(shù)據(jù)和計算HMAC的密鑰特性的密碼連接令牌生成方法或算法以及加密數(shù)據(jù)和計算HMAC的密鑰生成方法或算法有很多,以下是可采用的實施方案。
[0047]密碼模塊和密碼功能程序可按如下方式利用用戶在密碼服務器的帳戶名和隨機碼生成密碼連接令牌:
[0048]密碼模塊和密碼功能程序將用戶在密碼服務器的帳戶名和隨機碼進行字串合并,計算合并后的字串的散列值,然后對計算得到的散列值再進行一次散列值計算(使用相同或不同的散列算法),然后以此經雙重散列計算后得到的散列值和用戶的帳戶名形成密碼連接令牌。
[0049]密碼模塊和密碼功能程序可按如下方式用生成密碼連接令牌的隨機碼產生或導出用于加密數(shù)據(jù)和計算HMAC的密鑰:
[0050]將用戶在密碼服務器的帳戶名和隨機碼進行字串合并,計算合并后的字串的散列值,然后:
[0051]I)以此散列值作為種子密鑰導出用于加密數(shù)據(jù)和計算HMAC的密鑰
[0052]比如,由密碼功能程序生成一個隨機字串,稱為密鑰生成字串,然后通過密碼服務器將密鑰生成字串傳遞到移動終端中的密碼模塊;密碼模塊和密碼功能程序分別用種子密鑰(即帳戶名和隨機碼進行字串合并后計算得到的字串的散列值)和密鑰生成字串采用同樣的計算方式計算得到一個會話加密密鑰(Sess1n Key);在這之后,密碼模塊和密碼功能程序之間交換的數(shù)據(jù)采用此會話密鑰進行加密和解密以及HMAC計算和驗證。
[0053]2)或者以此散列值作為交換密鑰在密碼模塊和密碼功能程序之間交換加密數(shù)據(jù)和計算HMAC的密鑰(即作為密鑰交換密鑰)
[0054]比如,由密碼功能程序生成一個隨機會話密鑰,用此散列值作為密鑰交換密鑰加密會話密鑰,然后通過密碼服務器將用密鑰交換密鑰加密的會話密鑰傳遞到密碼模塊;密碼模塊用同樣的密鑰交換密鑰解密被加密的會話密鑰;在這之后,密碼模塊和密碼功能程序之間交換的數(shù)據(jù)采用此會話密鑰進行加密和解密以及HMAC計算和驗證。
[0055]3)或者以此散列值作為加密數(shù)據(jù)和計算HMAC的會話密鑰
[0056]密碼模塊和密碼功能程序之間交換的數(shù)據(jù)采用此散列值作為會話密鑰進行加密和解密以及HMAC計算和驗證。
[0057]由于散列算法的不可逆性,因此從密碼連接令牌中既不能獲取或導出隨機碼,也無法導出用于加密數(shù)據(jù)和計算HMAC的密鑰。
[0058]在密碼模塊與密碼功能程序建立密碼連接的過程中,密碼功能程序可以利用加密數(shù)據(jù)或計算HMAC的密鑰采用數(shù)據(jù)加密或HMAC消息鑒別的方式驗證、確認密碼模塊擁有生成密碼連接令牌的隨機碼,具體如下:
[0059]I)加密方法
[0060]密碼功能程序向密碼模塊返回一個用加密數(shù)據(jù)的密鑰加密后的隨機字串;密碼模塊接收到隨機字串后,用同樣的加密數(shù)據(jù)的密鑰解密被加密的隨機字串,計算解密獲得隨機字串的散列值,然后用加密數(shù)據(jù)的密鑰對隨機字串的散列值加密,加密后提交到密碼功能程序;密碼功能程序接收到加密后的隨機字串的散列值后,用加密數(shù)據(jù)的密鑰解密被加密的隨機字串的散列值,然后比對返回給密碼模塊的隨機字串的散列值同解密獲得隨機字串的散列值是否相同,若相同,則確定密碼模塊擁有生成密碼連接令牌的隨機碼;否則,不能確定。
[0061]2) HMAC消息鑒別方法
[0062]密碼功能程序向密碼模塊返回一個隨機字串;密碼模塊接收到隨機字串后用計算HMAC的密鑰,計算隨機字串的HMAC值(即HMAC簽名),然后將計算后的HMAC值提交到密碼功能程序(隨機字串本身不用提交);密碼功能程序接收到的HMAC值后,利用計算HMAC的密鑰和之前返回給密碼模塊的隨機字串,計算HMAC值,然后比對接收到的HMAC值同自己計算的HMAC值是否一致,若一致,則確定密碼模塊擁有生成密碼連接令牌的隨機碼;否則,不能確定。
[0063]其他未說明的具體技術實施,對于相關領域的技術人員而言是眾所周知,不言自明的。
【權利要求】
1.一種基于移動終端的密碼系統(tǒng),其特征是:所述密碼系統(tǒng)包括移動終端、密碼功能程序、密碼模塊以及密碼服務器,其中: 移動終端:一種用戶可隨身攜帶的具有程序執(zhí)行和計算能力的裝置;所述移動終端具有接入到數(shù)據(jù)網的能力;所述移動終端中保存有用戶的密鑰,所述密鑰包括對稱密鑰密碼算法的對稱密鑰和公開密鑰密碼算法的公鑰和私鑰; 移動密碼功能程序:一個運行在移動終端中提供密碼功能的軟件組件;所述密碼功能包括對用戶存儲在移動終端中的密鑰進行管理以及使用密鑰進行密碼運算; 密碼模塊:位于密碼應用程序所在計算裝置、向密碼應用程序提供密碼功能調用的軟件組件;所述密碼應用程序是使用密碼功能實現(xiàn)安全目的的程序;所述密碼模塊所在計算裝置具有接入數(shù)據(jù)網的能力且不是移動密碼功能程序運行所在的移動終端;所述密碼模塊本身具有使用對稱密鑰進行密碼運算以及進行散列運算的能力; 密碼服務器:一個作為密碼功能程序和密碼模塊之間通過數(shù)據(jù)網進行數(shù)據(jù)交換橋梁的服務器系統(tǒng);所述密碼服務器通過數(shù)據(jù)網面向密碼模塊和密碼功能程序提供密碼連接和數(shù)據(jù)交換服務;所述密碼連接是密碼模塊和密碼功能程序之間建立的密碼功能調用和數(shù)據(jù)交換的邏輯通道;所述密碼模塊和密碼功能程序作為密碼服務器的客戶端程序接入到密碼服務器; 當一個密碼應用程序調用所述密碼模塊的密碼功能時,若所述密碼模塊需要通過調用用戶移動終端中的所述密碼功能程序完成密碼功能的處理,則所述密碼模塊先通過點對點通信方式連接用戶的移動終端,調用移動終端中的密碼功能程序進行密碼功能的處理;若連接或調用失敗,則所述密碼模塊通過密碼服務器與用戶移動終端中的密碼功能程序建立密碼連接,調用移動終端中的密碼功能程序進行密碼功能的處理。
2.根據(jù)權利要求1所述的基于移動終端的密碼系統(tǒng),其特征是:所述密碼模塊按如下方式通過密碼服務器與用戶移動終端中的密碼功能程序建立密碼連接,調用移動終端中的密碼功能程序進行密碼功能的處理: 第一步:密碼模塊彈出一個人機交互界面,提示用戶啟動移動終端中的密碼功能程序登錄密碼服務器; 第二步:用戶先將移動終端接入到數(shù)據(jù)網,然后啟動移動終端中的密碼功能程序連接所述密碼服務器,并通過密碼功能程序使用用戶在密碼服務器的身份憑證完成在密碼服務器的登錄操作; 第三步:密碼功能程序生成一個隨機碼,利用從用戶身份憑證中獲取的帳戶名和隨機碼生成一個密碼連接令牌,將生成的密碼連接令牌提交到密碼服務器;密碼服務器接收到密碼功能程序提交的密碼連接令牌后,將接收到的密碼連接令牌保存在密碼服務器與密碼功能程序的會話連接的會話數(shù)據(jù)中; 第四步:密碼功能程序通過人機交互界面顯示生成的隨機碼,提示用戶將用戶在密碼服務器的帳戶名和密碼功能程序顯示的隨機碼分別輸入到密碼模塊的人機交互界面的用戶帳戶名和隨機碼輸入框中并提交; 第五步:用戶將在密碼服務器的帳戶名和密碼功能程序顯示的隨機碼分別輸入到密碼模塊的人機交互界面的帳戶名和隨機字碼輸入框中,然后提交; 第六步:密碼模塊接收到用戶輸入并提交的帳戶名和隨機碼后,利用用戶輸入的帳戶名和隨機碼生成一個與密碼功能程序生成的密碼連接令牌一樣的密碼連接令牌,連接密碼服務器,提交生成的密碼連接令牌,請求通過密碼服務器與已登錄密碼服務器并提交了相同密碼連接令牌的密碼功能程序建立密碼連接; 第七步:密碼服務器接收到密碼模塊提交的建立密碼連接的請求后,檢查已登錄密碼服務器的密碼功能程序中是否有一個密碼功能程序提交了相同的密碼連接令牌,若沒有,則返回出錯;若有,則確定此提交了相同密碼連接令牌的密碼功能程序是密碼模塊要建立密碼連接的密碼功能程序,密碼服務器將密碼模塊建立密碼連接的請求轉交到密碼功能程序; 第八步:密碼功能程序在驗證、確認密碼模塊擁有同樣的用于生成密碼連接令牌的隨機碼后同密碼模塊建立密碼連接; 第九步:密碼模塊通過密碼連接同用戶移動終端中的密碼功能程序進行數(shù)據(jù)交互,調用密碼功能程序完成密碼功能的處理,即:密碼模塊通過密碼服務器將調用密碼功能的請求提交到密碼服務器,由密碼服務器轉交到密碼連接另一端的用戶移動終端中的密碼功能程序,密碼功能程序完成密碼功能的調用處理后,經密碼服務器將密碼功能調用處理的結果返回到密碼模塊。
3.根據(jù)權利要求1所述的基于移動終端的密碼系統(tǒng),其特征是:密碼模塊按如下方式通過密碼服務器調用用戶移動終端中的密碼功能程序進行密碼功能的處理: 第一步:密碼模塊生成一個隨機碼,彈出一個人機交互界面,提示用戶啟動移動終端中的密碼功能程序登錄密碼服務器,并在登錄過程中輸入密碼模塊顯示的隨機碼; 第二步:用戶先將移動終端接入到數(shù)據(jù)網,然后啟動移動終端中的密碼功能程序連接所述密碼服務器,并通過密碼功能程序使用用戶在密碼服務器的身份憑證完成在密碼服務器的登錄操作;第三步:用戶將密碼模塊顯示的隨機碼輸入到密碼功能程序的人機交互界面并提交;第四步:密碼功能程序接收到用戶通過密碼功能程序輸入、提交的隨機碼后,利用從用戶身份憑證中獲取的帳戶名和用戶提交的隨機碼生成一個密碼連接令牌,將生成的密碼連接令牌提交到密碼服務器;密碼服務器接收到密碼功能程序提交的密碼連接令牌后,將接收到的密碼連接令牌保存在密碼服務器與密碼功能程序的會話連接的會話數(shù)據(jù)中; 第五步:密碼功能程序提示用戶將用戶在密碼服務器的帳戶名輸入到密碼模塊的人機交互界面的用戶帳戶名輸入框中并提交; 第六步:用戶將在密碼服務器的用戶帳戶名輸入到密碼模塊顯示的用戶帳戶名輸入框中,然后提交; 第七步:密碼模塊接收到用戶輸入并提交的帳戶名后,利用在第一步生成的隨機碼和用戶提交的帳戶名生成一個與密碼功能程序生成的密碼連接令牌一樣的密碼連接令牌,連接密碼服務器,提交生成的密碼連接令牌,請求通過密碼服務器與已登錄密碼服務器并提交了相同密碼連接令牌的密碼功能程序建立密碼連接; 第八步:密碼服務器接收到密碼模塊提交的建立密碼連接的請求后,檢查已登錄密碼服務器的密碼功能程序中是否有一個密碼功能程序提交了相同的密碼連接令牌,若沒有,則返回出錯;若有,則確定此提交了相同密碼連接令牌的密碼功能程序是密碼模塊要建立密碼連接的密碼功能程序,密碼服務器將密碼模塊建立密碼連接的請求轉交到密碼功能程序; 第九步:密碼功能程序在驗證、確認密碼模塊擁有同樣的用于生成密碼連接令牌的隨機碼后同密碼模塊建立密碼連接; 第十步:密碼模塊通過密碼連接同用戶移動終端中的密碼功能程序進行數(shù)據(jù)交互,調用密碼功能程序完成密碼功能的處理,即:密碼模塊通過密碼服務器將調用密碼功能的請求提交到密碼服務器,由密碼服務器轉交到密碼連接另一端的用戶移動終端中的密碼功能程序,密碼功能程序完成密碼功能的調用處理后,經密碼服務器將密碼功能調用處理的結果返回到密碼模塊。
4.根據(jù)權利要求2或3所述的基于移動終端的密碼系統(tǒng),其特征是: 所述身份憑證是指用于在線標識和鑒別用戶的電子數(shù)據(jù),由用戶標識數(shù)據(jù)和私密鑒別數(shù)據(jù)構成;用戶在密碼服務器的身份憑證的用戶標識數(shù)據(jù)是或者包含用戶在密碼服務器的帳戶名; 在所述密碼模塊通過密碼服務器與用戶移動終端中的密碼功能程序建立密碼連接后,密碼模塊同密碼功能程序之間的密碼連接通過密碼連接標識符進行標識和識別,密碼模塊同密碼功能程序之間的交互數(shù)據(jù)中包含有密碼連接標識符以區(qū)分不同的密碼連接;密碼模塊和密碼功能程序之間交互的數(shù)據(jù)通過數(shù)據(jù)加密以及散列的消息鑒別碼HMAC,進行安全保護,其中,用于加密數(shù)據(jù)和計算HMAC的密鑰由用于生成密碼連接令牌的隨機碼產生或導出。
5.根據(jù)權利要求4所述的基于移動終端的密碼系統(tǒng),其特征是: 利用帳戶名和隨機碼生成密碼連接令牌的方法或算法和利用生成密碼連接令牌的隨機碼產生或導出用于加密數(shù)據(jù)和計算HMAC的密鑰的方法或算法具有如下特性: 從密碼連接令牌中既不能獲取或導出隨機碼,也不能導出用于加密數(shù)據(jù)和計算HMAC的密鑰。
6.根據(jù)權利要求5所述的基于移動終端的密碼系統(tǒng),其特征是: 密碼模塊和密碼功能程序按如下方式用生成密碼連接令牌的隨機碼產生或導出用于加密數(shù)據(jù)和計算HMAC的密鑰: 將用戶在密碼服務器的帳戶名和用于生成密碼連接令牌的隨機碼進行字串合并,計算合并后的字串的散列值,然后以此散列值作為種子密鑰導出用于加密數(shù)據(jù)和計算HMAC的密鑰,或者以此散列值作為密鑰交換密鑰在密碼模塊和密碼功能程序之間交換加密數(shù)據(jù)和計算HMAC的密鑰,或者以此散列值作為加密數(shù)據(jù)和計算HMAC的會話密鑰; 密碼模塊和密碼功能程序將用戶在密碼服務器的帳戶名和隨機碼進行字串合并,計算合并后的字串的散列值,然后對計算得到的散列值再進行一次散列值計算,然后以此經雙重散列計算后得到的散列值和用戶的帳戶名形成密碼連接令牌。
7.根據(jù)權利要求4所述的基于移動終端的密碼系統(tǒng),其特征是: 在所述密碼模塊與所述密碼功能程序建立密碼連接的過程中,密碼功能程序利用用于加密數(shù)據(jù)或計算HMAC的密鑰通過數(shù)據(jù)加密或HMAC消息鑒別的方式驗證、確認密碼模塊擁有生成密碼連接令牌的隨機碼。
8.根據(jù)權利要求1所述的基于移動終端的密碼系統(tǒng),其特征是: 當密碼模塊根據(jù)密碼應用程序的調用請求,調用密碼功能程序使用用戶移動終端中的用戶私鑰進行數(shù)字簽名時,密碼功能程序通過人機交互界面提請用戶確認,只有得到用戶確認后密碼功能程序才繼續(xù)進行數(shù)字簽名的調用處理。
9.根據(jù)權利要求1所述的基于移動終端的密碼系統(tǒng),其特征是: 當密碼模塊根據(jù)密碼應用程序的調用請求,調用密碼功能程序使用用戶移動終端中的用戶私鑰進行數(shù)字簽名時,密碼模塊將要簽名的數(shù)據(jù)傳送到密碼功能程序,由密碼功能程序通過人機交互界面將要簽名的數(shù)據(jù)內容呈現(xiàn)給用戶并提請用戶確認,只有得到用戶確認后密碼功能程序才繼續(xù)進行數(shù)字簽名的調用處理。
10.根據(jù)權利要求3所述的基于移動終端的密碼系統(tǒng),其特征是: 若密碼模塊以條碼或二維碼的方式顯示隨機碼,則用戶使用移動終端掃描條碼或二維碼,將條碼或二維碼表示的隨機碼輸入到密碼功能程序。
【文檔編號】H04L9/32GK104202163SQ201410407715
【公開日】2014年12月10日 申請日期:2014年8月19日 優(yōu)先權日:2014年8月19日
【發(fā)明者】龍毅宏 申請人:武漢理工大學