專利名稱:C/s架構(gòu)下客戶端身份的動態(tài)驗證系統(tǒng)及裝置的制作方法
技術(shù)領(lǐng)域:
本實用新型涉及身份驗證技術(shù),尤其是涉及一種基于客戶端/服務(wù)器端(Client/Server, C/S )架構(gòu)下對客戶端身份以隨機(jī)產(chǎn)生的一次性動態(tài)密碼算法進(jìn)行驗證的系統(tǒng)及裝置。
背景技術(shù):
目前的計算機(jī)應(yīng)用軟件中,基于客戶端/服務(wù)器端(Client/Server, C/S )架構(gòu)的軟件占 了很大一部分,如企業(yè)網(wǎng)上OA系統(tǒng)、網(wǎng)上銀行系統(tǒng)和網(wǎng)絡(luò)游戲系統(tǒng)。同 一時間內(nèi)有多人可 以通過客戶端同時登錄到服務(wù)器來完成特定的業(yè)務(wù)功能。
在多個登錄的用戶中,每個人的身份、權(quán)限都是不同的,決定其所能使用的軟件功能 也不相同。為了區(qū)分不同用戶的身份和權(quán)限,系統(tǒng)給每個用戶分發(fā)不同的登錄賬號和密碼。 系統(tǒng)憑借用戶登錄時所使用的賬號來區(qū)分不同用戶的身份,進(jìn)而賦予用戶不同的權(quán)限。
目前采用的客戶端用戶登錄至服務(wù)器端的方式如下
一是用戶使用靜態(tài)的賬號和密碼登錄,如MSN、 QQ等聊天軟件,電子郵件系統(tǒng)等。 在靜態(tài)密碼驗證中,將用戶賬號和密碼結(jié)合起來,先用賬號識別"你是誰",再用密碼驗證"你 確實是誰",這種身分認(rèn)證方法操作筒單,但不安全,賬號和密碼容易被竊??;合法用戶的 賬號和靜態(tài)密碼一旦被黑客盜走,那么黑客就可以實施重放攻擊,假冒合法用戶的身份。
另一種是使用動態(tài)一次性密碼登錄,即密碼不是靜態(tài)的,而是只能使用一次的動態(tài)密 碼。動態(tài)密碼系統(tǒng)中,服務(wù)器端和客戶端共享一個相同的密鑰K和一個共同的種子S (該種 子可以是時間序列值或事件序列值),驗證程序是一個單向陷門函數(shù)F ( S )(比如為MD4、 MD5或SHA1),依賴于單向陷門函數(shù)的安全性,即正向計算很容易,反向計算卻幾乎不可 能,來保證動態(tài)密碼的安全性。它一般配合一個硬件令牌來使用,每按一次按鍵,令牌根 據(jù)F (S)就可以生成一個動態(tài)密碼,動態(tài)密碼上送到服務(wù)器端,服務(wù)器端同樣才艮據(jù)F (S) 計算出動態(tài)密碼,進(jìn)行驗證。種子值S使用過一次后,即進(jìn)行更新,以供下一次計算使用。 該動態(tài)密碼有一個有效時間窗, 一旦使用過一次或超出該時間范圍,密碼即失效。如果黑 客仍采用靜態(tài)密碼的盜取方法,即使盜取成功,他得到的是已經(jīng)失效的密碼,重放攻擊沒 有任何作用。
但是,由于動態(tài)密碼登錄驗證的根本仍然是只在用戶登錄時驗證一次,如果驗證通過, 即認(rèn)為用戶為合法用戶,可以無限期使用系統(tǒng)。因此,針對這種特點,發(fā)展出了針對動態(tài) 密碼的中間人攻擊。即黑客位于客戶端與服務(wù)器端之間,當(dāng)客戶端的用戶登錄時,用戶輸 入的動態(tài)密碼首先被黑客截取,黑客馬上斷開客戶端與服務(wù)器端的網(wǎng)絡(luò)連接,給用戶造成 服務(wù)暫停的假象;然后黑客在極短的時間內(nèi)使用截取的動態(tài)密碼假冒用戶登錄服務(wù)器端, 因為時間很短,動態(tài)密碼仍然有效,所以黑客成功的假冒了合法用戶。
因此,前述方法存在安全缺陷,其根本原因在于只對客戶端的用戶身份進(jìn)行一次登錄 驗證,如果驗證通過,即認(rèn)為用戶為合法用戶,可以無限期使用連結(jié)至服務(wù)器端;靜態(tài)密 碼的方式無法抵御重;^文攻擊,而一次性動態(tài)密碼方式無法抵御中間人攻擊,這使得它們在 用于客戶端/服務(wù)器端的結(jié)構(gòu)時面臨嚴(yán)重的安全挑戰(zhàn)。發(fā)明內(nèi)容
本實用新型所要解決的技術(shù)問題在于提出一種c/s架構(gòu)下客戶端身份的動態(tài)驗證系統(tǒng) 及裝置,以通過使用與客戶端連接的動態(tài)令牌單元利用共享密鑰和使用動態(tài)驗證算法對服 務(wù)器端產(chǎn)生的挑戰(zhàn)碼和客戶端用戶輸入的身份信息進(jìn)行合成處理,生產(chǎn)響應(yīng)碼,在客戶端 與服務(wù)器端以挑戰(zhàn)/響應(yīng)認(rèn)證方式對客戶端身份進(jìn)行動態(tài)驗證。
為解決上述問題,本實用新型公開一種C/S架構(gòu)下客戶端身份的動態(tài)驗證系統(tǒng),包括 客戶端和用于對客戶端作身份驗證的服務(wù)器端;
連接客戶端的動態(tài)令牌單元,用于在客戶端與服務(wù)器端以挑戰(zhàn)/響應(yīng)認(rèn)證方式對客戶端 身份進(jìn)行動態(tài)驗證過程中,使用動態(tài)驗證算法合成服務(wù)器端產(chǎn)生的挑戰(zhàn)碼和客戶端用戶輸 入的身份信息,生產(chǎn)反饋至服務(wù)器端的響應(yīng)碼;
其中,所述動態(tài)令牌單元包括
接口單元,用于連接客戶端;
密鑰存儲單元,用于存儲經(jīng)加密處理后的共享密鑰;
驗證算法單元,用于提供動態(tài)驗證算法;
具有防拷貝的安全控制單元,用于利用共享密鑰,使用動態(tài)驗證算法對服務(wù)器端產(chǎn)生 的挑戰(zhàn)碼和客戶端用戶輸入的身份信息進(jìn)行合成處理,生產(chǎn)反饋至服務(wù)器端的響應(yīng)碼。 較優(yōu)的,所述動態(tài)驗證算法為SHA卜HMAC算法。
較優(yōu)的,所述客戶端與所述服務(wù)器端之間以每進(jìn)行一次數(shù)據(jù)通信就產(chǎn)生一次挑戰(zhàn)/響應(yīng) 認(rèn)證,或以所述服務(wù)器端選4奪的一個隨機(jī)時間為間隔產(chǎn)生一次^挑戰(zhàn)/響應(yīng)認(rèn)證。 較優(yōu)的,所述接口單元為USB接口 。
另外,本實用新型公開一種C/S架構(gòu)下客戶端身份的動態(tài)驗證裝置,包括
接口單元,用于連接客戶端;
密鑰存儲單元,用于存^^者經(jīng)加密處理后的共享密鑰;
驗證算法單元,用于提供動態(tài)驗證算法;
具有防拷貝的安全控制單元,用于利用共享密鑰,使用動態(tài)驗證算法對服務(wù)器端產(chǎn)生 的挑戰(zhàn)碼和客戶端用戶輸入的身份信息進(jìn)行合成處理,生產(chǎn)反^J貴至服務(wù)器端的響應(yīng)碼。 較優(yōu)的,所述動態(tài)驗證算法為SHA1-HMAC算法。 較優(yōu)的,所述接口單元為USB接口 。 與現(xiàn)有技術(shù)相比,本實用新型具有以下有益效果
1、 本實用新型解決了目前C/S架構(gòu)下對用戶身份鑒別的安全缺陷,提出了在客戶端和 服務(wù)器端的使用過程中隨時發(fā)起的動態(tài)驗證系統(tǒng)和裝置,利用該系統(tǒng)和裝置避免了 一次性 登錄中,用戶身份極易偽造的缺陷。
2、 采用本實用新型進(jìn)行的動態(tài)驗證所使用的算法是采用一次性動態(tài)密碼算法,因為密 碼是動態(tài)的,這使得它可以抵御重放攻擊。并且,由于本實用新型的驗證方法并不僅限于 用戶登錄時刻,而是由服務(wù)器端動態(tài)發(fā)起,隨機(jī)地在任意時刻進(jìn)行驗證,因為驗證是隨機(jī) 的,可能在任意的時刻發(fā)起,使得假冒客戶端的難度大大增加,服務(wù)器端在任意一次驗證 中一旦驗證失敗,隨即斷開與客戶端的連接,停止服務(wù),使假冒的客戶端失效;即使中間 人攻擊即使能竊取某一次的動態(tài)密碼,但在隨機(jī)發(fā)起的下一次的驗證中,它由于無法獲取 后續(xù)的動態(tài)密碼,從而無法繼續(xù)假冒客戶,這使得它可以抵御中間人攻擊。因此,本實用 新型為系統(tǒng)提供了更高的安全性。3、同時,本實用新型的驗證過程是自動完成的,不需要人工參與,對用戶而言是透明 的,具有使用簡便,客戶接受程度高的優(yōu)點,較好的解決了使用便利性與安全性的矛盾。
圖1是本實用新型一個較佳實施例的結(jié)構(gòu)示意圖。
具體實施方式
本實用新型是通過使用與客戶端連接的動態(tài)令牌單元利用共享密鑰和使用動態(tài)驗證算 法對服務(wù)器端產(chǎn)生的挑戰(zhàn)碼和客戶端用戶輸入的身份信息進(jìn)行合成處理,生產(chǎn)響應(yīng)碼,在 客戶端與服務(wù)器端以挑戰(zhàn)/響應(yīng)認(rèn)證方式對客戶端身份進(jìn)行動態(tài)驗證。
請參考圖1所示。本實施例中,動'態(tài)令牌單元130與客戶端110連接,其是一個嵌入 式的防侵入設(shè)備,用于在客戶端110與服務(wù)器端120以挑戰(zhàn)/響應(yīng)(Challenge/Response)認(rèn) 證方式對客戶端110的用戶身份進(jìn)行動態(tài)驗證過程中,使用動態(tài)驗證算法合成服務(wù)器端120 產(chǎn)生的挑戰(zhàn)碼(Challenge Code )和客戶端110用戶輸入的身份信息,生產(chǎn)響應(yīng)碼(Response Code)并經(jīng)客戶端IIO反饋至服務(wù)器端120,從而實現(xiàn)對客戶端110的用戶身份的隨時、隨 才幾的動態(tài)^Si。
其中,所述動態(tài)令牌單元130包括連接客戶端110的接口單元131,其可為USB接 口;用于存儲經(jīng)加密處理后的共享密鑰的密鑰存儲單元132;用于提供動態(tài)驗證算法的驗證 算法單元133;具有防拷貝的安全控制單元134,控制運用邏輯無法對密鑰存儲單元132中 的共享密鑰進(jìn)行復(fù)制,該安全控制單元134用于利用共享密鑰,使用動態(tài)驗證算法對服務(wù) 器端120產(chǎn)生的挑戰(zhàn)碼和客戶端110的用戶輸入的身份信息進(jìn)行合成處理,生產(chǎn)反饋至服 務(wù)器端120的響應(yīng)碼。并且,所述動態(tài)令牌單元130具有一個唯一的機(jī)器號或序列號,其 與一個客戶端的用戶身份信息(或用戶賬號)進(jìn)行綁定。
本實施例的工作過程如下
1、 將動態(tài)令牌單元130通過接口單元131與客戶端110連接。
2、 用戶打開客戶端110的客戶端軟件,通過選擇相應(yīng)的驅(qū)動使得客戶端110與動態(tài)令 牌單元130連接。
3、 用戶從客戶端110輸入身份信息或用戶賬號,使用客戶端軟件登錄。
4、 客戶端110的客戶端軟件發(fā)出的登錄請求轉(zhuǎn)發(fā)至服務(wù)器端120。
5、 服務(wù)器端120接收到帶有用戶身份信息的登錄請求后,使用真隨機(jī)數(shù)發(fā)生器產(chǎn)生一 個隨機(jī)數(shù)作為挑戰(zhàn)碼,并將挑戰(zhàn)碼返回至客戶端110。
6、 客戶端110收到該挑戰(zhàn)碼后,轉(zhuǎn)發(fā)給動態(tài)令牌單元130,動態(tài)令牌單元130利用密 鑰存儲單元132中的共享密鑰,使用驗證算法單元133產(chǎn)生一個動態(tài)驗證算法對服務(wù)器端 120產(chǎn)生的挑戰(zhàn)碼和客戶端110的用戶輸入的身份信息進(jìn)行合成處理,生產(chǎn)響應(yīng)碼,并通過 客戶端110將響應(yīng)碼反饋至服務(wù)器端120。
7、 服務(wù)器端120將響應(yīng)碼與其自己的計算結(jié)果做比較,驗證響應(yīng)碼的正確性,如果正 確,則認(rèn)為用戶的身分合法,客戶端110的用戶可以連接至服務(wù)器端120使用與用戶身份 對應(yīng)的特定業(yè)務(wù)功能。
8、 在隨后的直至客戶端110的用戶退出服務(wù)器端120的整個使用過程中,服務(wù)器端120 會動態(tài)隨機(jī)的以挑戰(zhàn)/響應(yīng)認(rèn)證方式挑戰(zhàn)客戶端110,如果任何一次的挑戰(zhàn)/響應(yīng)失敗,則認(rèn) 為客戶端110的用戶身份非法,服務(wù)器端120立即停止對客戶端110的服務(wù)。以上過程是自動完成的,無須用戶的參與,因此,整個驗證過程相對用戶來說是透明的。 另外,所述動態(tài)令牌單元130中的動態(tài)驗證算法兼顧硬件速度和算法的安全性,采用 了 SHA1 - HMAC算法。它是一種基于SHA1算法的消息鑒別碼算法。定義HMAC需要一 個加密用散列函數(shù)(表示為H)和一個密鑰K。在SHA1-HMAC算法中,H是SHA1算法。 我們用B來表示數(shù)據(jù)塊的字長,用L來表示散列函數(shù)的輸出數(shù)據(jù)字長(比如,在SHA-1中, L=20)。鑒別密鑰的長度可以是小于等于數(shù)據(jù)塊字長的任何正整數(shù)值。應(yīng)用程序中使用的密 鑰長度若是比B大,則首先用使用散列函數(shù)H作用于它,然后用H輸出的L長度字符串作 為在HMAC中實際使用的密鑰。 一般情況下,推薦的最小密鑰K長度是L個字長(與H 的輸出數(shù)據(jù)長度相等)。
我們將定義兩個固定且不同的字符串ipad,opad ('o'標(biāo)志內(nèi)部與外部) ipad = the byte 0x36 repeated B times opad = the byte 0x5C repeated B times, 計算'text'的HMAC:
H( K XOR opad, H(K XOR ipad, text)) 即為以下步驟
1、 在密鑰K后面添加0來創(chuàng)建一個子長為B的字符串。(例如,如果K的字長是20 字節(jié),B-60字節(jié),則K后會加入44個零字節(jié)0x00)
2、 將上一步生成的B字長的字符串與ipad做異或運算。
3、 將數(shù)據(jù)流text填充至第二步的結(jié)果字符串中。
4、 用H作用于第三步生成的數(shù)據(jù)流。
5、 將第一步生成的B字長字符串與叩ad做異或運算。
6、 再將第四步的結(jié)果填充進(jìn)第五步的結(jié)果中。
7、 用H作用于第六步生成的數(shù)據(jù)流,輸出最終結(jié)果。
并且,動態(tài)令牌單元130收到挑戰(zhàn)碼C后,與其序列號SE (其序列號SE與用戶身份 信息綁定)連接起來,即C+SE,用做SHA1-HMAC的輸入數(shù)據(jù)text。
SHA1-HMAC算法對硬件速度要求相對較低,同時它具有相當(dāng)高的安全性,目前有 MD5碰撞成功的文獻(xiàn)報道,但還未見有關(guān)于SHA1碰撞成功的報道。
動態(tài)驗證的時間選擇有兩種方案
1、 將動態(tài)驗證附加于每個交易包上。它使得發(fā)生一次數(shù)據(jù)通訊即進(jìn)行一次驗證。這種 方案具有最高的安全性,它確保了每一次的通訊都去判斷客戶端是否為假冒的。但是這種 方案的運算強(qiáng)度較大。
2、 以服務(wù)器端120的隨機(jī)時間選擇算法T + cj為時間間隔發(fā)生動態(tài)驗證。其中T是一 個人工調(diào)整因子,是人工指定的一個時間值。cj是計算機(jī)隨機(jī)選擇的一個-T +T之間的時間 值。實施時可根據(jù)應(yīng)用系統(tǒng)的重要性及安全級別來選擇。
因此,本實用新型的動態(tài)驗證是以客戶端110的動態(tài)令牌單元130為承載體,選定 SHA1-HMAC作為驗證算法,給出了動態(tài)驗證的時間選擇方案,再加上服務(wù)器端120就構(gòu) 成了一套完整的驗證方法,可以對客戶端110的用戶身份進(jìn)行有效的鑒偽,防止假冒客戶 端110的用戶身份而造成的損失。
權(quán)利要求1. 一種C/S架構(gòu)下客戶端身份的動態(tài)驗證系統(tǒng),其特征在于,包括客戶端和用于對客戶端作身份驗證的服務(wù)器端;連接客戶端的動態(tài)令牌單元,用于在客戶端與服務(wù)器端以挑戰(zhàn)/響應(yīng)認(rèn)證方式對客戶端身份進(jìn)行動態(tài)驗證過程中,使用動態(tài)驗證算法合成服務(wù)器端產(chǎn)生的挑戰(zhàn)碼和客戶端用戶輸入的身份信息,生產(chǎn)反饋至服務(wù)器端的響應(yīng)碼;其中,所述動態(tài)令牌單元包括接口單元,用于連接客戶端;密鑰存儲單元,用于存儲經(jīng)加密處理后的共享密鑰;驗證算法單元,用于提供動態(tài)驗證算法;具有防拷貝的安全控制單元,用于利用共享密鑰,使用動態(tài)驗證算法對服務(wù)器端產(chǎn)生的挑戰(zhàn)碼和客戶端用戶輸入的身份信息進(jìn)行合成處理,生產(chǎn)反饋至服務(wù)器端的響應(yīng)碼。
2、 根據(jù)權(quán)利要求1所述的C/S架構(gòu)下客戶端身份的動態(tài)驗證系統(tǒng),其特征在于,所述 接口單元為USB接口。
3、 一種C/S架構(gòu)下客戶端身份的動態(tài)險汪裝置,其特征在于,包括 接口單元,用于連接客戶端;密鑰存儲單元,用于存儲經(jīng)加密處理后的共享密鑰; 驗證算法單元,用于提供動態(tài)驗證算法;具有防拷貝的安全控制單元,用于利用共享密鑰,使用動態(tài)驗證算法對服務(wù)器端產(chǎn)生 的挑戰(zhàn)碼和客戶端用戶輸入的身份信息進(jìn)行合成處理,生產(chǎn)反饋至服務(wù)器端的響應(yīng)碼.
4、 根據(jù)權(quán)利要求3所述的C/S架構(gòu)下客戶端身份的動態(tài)^ii裝置,其特征在于,所述 接口單元為USB接口。
專利摘要本實用新型公開一種C/S架構(gòu)下客戶端身份的動態(tài)驗證系統(tǒng)和裝置,其中,該動態(tài)驗證系統(tǒng)包括客戶端和服務(wù)器端;連接客戶端的動態(tài)令牌單元,該動態(tài)令牌單元包括接口單元,用于連接客戶端;密鑰存儲單元,用于存儲經(jīng)加密處理后的共享密鑰;驗證算法單元,用于提供動態(tài)驗證算法;具有防拷貝的安全控制單元,用于利用共享密鑰,使用動態(tài)驗證算法對服務(wù)器端產(chǎn)生的挑戰(zhàn)碼和客戶端用戶輸入的身份信息進(jìn)行合成處理,生產(chǎn)反饋至服務(wù)器端的響應(yīng)碼。本實用新型解決了目前C/S架構(gòu)下對用戶身份鑒別的安全缺陷,在客戶端和服務(wù)器端的使用過程中隨時可發(fā)起動態(tài)驗證,避免了一次性登錄中,用戶身份極易偽造的缺陷;且具有使用簡便,客戶接受程度高的優(yōu)點。
文檔編號H04L9/16GK201100948SQ20082009170
公開日2008年8月13日 申請日期2008年1月15日 優(yōu)先權(quán)日2008年1月15日
發(fā)明者吳俊華, 崔若起, 張家浩, 李登輝, 穆敬東, 毅 米, 邱愛國, 黃海昌 申請人:深圳市九思泰達(dá)技術(shù)有限公司