(大連理工大學 管理學院, 遼寧大連 116085)
摘 要:
在分析現有基于挑戰/應答一次性口令方案不足的基礎上,設計了一種新的基于hash函數和公開密鑰加密算法的一次性口令身份認證方案。該方案不僅能夠提供通信雙方的相互認證、避免各種攻擊,而且克服了傳統挑戰/應答方案認證開銷大的缺點,有效地保護了用戶身份信息,能防止重放攻擊等攻擊手段。最后對方案的安全性和效率作了分析。
關鍵詞:一次性口令; 身份認證; hash函數; 公開密鑰加密
中圖分類號:TP393.08文獻標志碼:A
文章編號:1001-3695(2009)02-0716-03
One-time password scheme based on hash function and public key encryption
WANG Ning, QIU Xu-dong, LUO Pin
(School of Management, Dalian University of Technology, Dalian Liaoning 116085, China)
Abstract:Analyzed some shortages of the existing one-time password based on challenge/response authentication protocols, and designed a new one-time password authentication scheme based on hash function and public key encryption, which provi-ded client/server with mutual authentication and could avoid different attacks. It also overcame the existing challenge/response protocol weakness of server’s overhead and could protect user’s identity. Finally, analyzed its security and efficiency character.
Key words:one-time password; authentication; hash function; public key encryption
隨著Internet 在各行各業的廣泛應用,基于Web 獲取和交互信息的方式已廣為流行。這種信息交互方式存在著信息安全問題,一些對信息安全要求較高的系統如電子政務、電子商務等,其網絡和信息的安全性必須受到足夠重視[1]。對于Web 訪問方式,傳統的模式是用戶提供用戶名和密碼交給服務器驗證,但是這種靜態的口令驗證方式存在著許多固有的弱點[2]。為了解決靜態口令的不足之處,安全專家提出了一次性口令(OTP)方案,其在登錄過程中加入不確定因子,使得每一次登錄的口令都不同,從而提高系統的安全性。雖然OTP沒有規律可言,其保密性和可靠性大大增加,但是這也會產生一個驗證開銷的問題,因此相應的口令技術就出現了口令序列、Lamport方案[3]、時間同步、應答式等幾種方式。
1 現有基于挑戰/應答一次性口令方案分析
目前基于挑戰/應答模式設計的一次性口令方案研究較廣,但是大都存在一些問題。文獻[1,4~7]是挑戰/應答模式下基于對稱密鑰的一次性口令認證方案,可以滿足保證身份驗證和信息的安全性的需要,但是服務器要為每一位用戶分配和維護一組對稱密鑰;另外在身份認證過程中需要多次計算hash值,如文獻[1]中在一次身份認證過程中服務器需執行三次hash 運算,客戶端需執行五次hash 運算,這使客戶端和服務器端都有較大的運算負擔。文獻[8~11]是基于公開密鑰加密算法的身份認證方案,它們的共同問題是用戶和服務器分別擁有自己的公開密鑰對,也增加了認證的開銷;此外,文獻[11]在信息傳輸的過程還需要對稱加密算法輔助。這些算法與基于對稱加密的算法一樣運算負擔也相當大,如文獻[8]在一次完整的認證過程中,服務器端需要執行三次hash 運算,一次RSA加密操作、兩次RSA 解密操作;客戶端需要執行四 次hash 運算、一次RSA 加密操作、一次RSA 解密操作。
雖然挑戰/應答方案存在一些不足,但其優勢還是很明顯:實現比較靈活,可以在挑戰數中引入新的屬性值;采用C/S模式,易于在網絡環境下實現;客戶端與服務器端通過種子密鑰鑒別,密鑰不在網絡上傳輸;通過不斷改變挑戰數來防止重放攻擊;可用于認證多個不同的系統[12,13]。為了克服現有基于挑戰/應答的一次性口令方案的不足,增強網絡傳輸的安全性、減少服務器的額外開銷,本文利用hash函數和公開密鑰加密算法提出一種新的基于挑戰/應答一次性口令身份認證方案。
2 方案設計
2. 1 方案設計原則
本方案用于網絡環境中的遠程用戶認證,遵循下列設計原則:a)提供用戶和服務器的相互認證;b)采用安全的散列函數,盡量滿足輸出相對簡短且安全性較高;c)盡量減少hash運算的次數;d)盡量使傳送的消息簡短,減少相互傳遞的信息數,以減少網絡通信量;e)用戶的身份標志不可直接在網絡上傳輸;f)雖然用戶與系統之間通過hash函數和密鑰鑒別,但為安全起見,hash函數和私鑰不能在網絡上傳送。
具體的實現設計如下:
a)相互認證的實現。方案中通信雙方都將收到動態質詢并作出響應,質詢函數值的計算中引入隨機數。
b)身份標志的處理。將身份標志的某種函數值作為認證依據保存在服務器端,驗證時用戶端需采集活體指紋特征值。
c)散列函數的選擇。由于MD系統算法的安全性已經遭遇重大挑戰[14],可選擇SHA-1,其輸出為160 bit的報文摘要。
為便于方案描述,約定符號如下:
Ui表示用戶i,S表示服務器端;
Uidi表示Ui的指紋特征值;Uid*i表示用戶Ui的活體指紋特征值;
PK表示服務器公開密鑰,SK表示服務器私有密鑰;
hi表示用戶Ui與服務器S共享的安全單向散列函數;
list是用戶Ui的Uidi經過hi計算得到的列表;
=>表示一個安全的通信線路;
->表示一個一般的通信線路;
PK (A)表示利用公開密鑰加密數據A,SK (A) 表示利用私有密鑰加密數據A;
PK (SK (A))表示利用公開密鑰解密經私有密鑰加密的數據A,SK (PK (A))表示利用私有密鑰解密經公開密鑰加密的數據A;
PK(A)?表示PK操作能否實現,A=?B表示判斷A是否等于B;
(A‖B)表示兩個比特串A和B的連接。
本方案分兩個階段實現,即初始注冊階段和認證階段。注冊過程只執行一次,而認證過程在用戶每次登錄系統時都要執行一次。
2. 2 注冊過程
用戶在使用本身份認證方案之前必須先向服務器注冊,完成系統的初始化操作。具體的注冊流程(圖1)如下所示:
a)當客戶端用戶i向服務器提出注冊請求時,必須提供個人信息和身份標志信息(本方案采用指紋特征值)。提取用戶指紋特征數據生成指紋模板,并根據指紋特征生成指紋特征值Uidi。
b)用戶i 將個人信息和Uidi通過安全通道傳送到服務器,同時獲取服務器的公開密鑰PKi并存儲。
c)服務器計算hi(Uidi),生成hi(Uidi)與用戶i對應關系的list表;將Uidi、hi(Uidi)、list用服務器公開密鑰加密并存儲,以便隨后的身份認證過程使用。至此注冊過程結束。
2. 3 認證過程
以用戶i一次身份驗證過程為例,流程(圖2)如下所示:
a)采集用戶Ui的Uid*i,計算H′i=hi(Uid*i),將H′i發送給S進行身份驗證。
b)S在收到上述信息后,判斷H′i∈?list。若H′i不屬于list,則說明Ui為非法用戶,終止與其會話;否則,說明此用戶是合法用戶,產生隨機數RS。利用hi算法計算Hs=hi(RS),然后使用服務器私鑰加密,使A=SK(HS,RS),最后將A發送給Ui。
c)Ui收到S發送的消息后,使用服務器公開密鑰解密數據A,如果不能解密,則說明服務器S不是用戶Ui要提交的服務器,終止與其會話;否則取出RS計算hi(RS‖H′i)與傳過來的Hs比較。如果不相等,也說明服務器不正確,終止與其會話,重新登錄系統進行身份認證;如果相等,則驗證S是真正的服務器。
d)(a)在客戶端也產生一個隨機數RU;
(b)計算Hss使Hss=hi(Hs‖RU),然后生成M= PK(Hss,RU);
(c)將M傳給服務器。
e)S收到M后,首先對M進行解密,得到Hss、RU,計算hi(Hs‖RU)并驗證Hss=? hi(Hs‖RU)。如果不相等說明該用戶可能沒有收到Hs或者不擁有hi,則該用戶可能是冒充剛才驗證的身份,拋棄傳過來的數據;否則驗證用戶身份。至此雙向身份驗證通過。
3 安全性和效率分析
3. 1 方案的安全性
a)重放攻擊。由于每次認證所生成的隨機數RS、RU各不相同且絕不重復,保證了每次傳輸的認證數據不相同,所以入侵者重放已經截獲的信息也無法進行重放攻擊。
b)冒充攻擊。
(a)入侵者如果冒充服務器S,則由于服務器的私鑰僅服務器自己擁有,沒有在網上傳輸,冒充者在客戶端驗證PKi(A)時無法通過,這樣冒充者頂多得到hi(Uid*i),無法得到有價值的信息。
(b)入侵者如果冒充用戶則有兩種情況:第一種是非法用戶,則無法取得Hi?∈list驗證;第二種情況是合法用戶冒充另一合法用戶,由于它并不知道用戶的hi,無法計算正確的H′i,從而也無法通過H′i∈?list驗證。此外,又可通過直接截獲Hi來通過服務器的初步認證,但是由于其并不知道用戶的hi,無法通過Hss=? hi(Hs‖RU)驗證,從而冒充攻擊被終止。
c)身份信息的保護。用戶驗證身份時,Uid*i經過單向哈希函數處理后發給服務器。由安全散列函數的特性,其他用戶不可能得到Uid*i;即便是服務器,如果不查看list與具體對應用戶的情況,也無法得知具體用戶情況,從而很好地保護了用戶身份信息。
d)信息的保密。在整個驗證過程中僅有hash函數值和隨機數在網絡上傳輸,且傳輸的大部分過程都是經過密鑰加密傳輸的,所以在傳輸過程中任何人想通過截聽報文探知有價值信息都是不可能的。因此具有很好的信息保密性。
3. 2 方案的優點
a)協議結構簡單。身份認證過程由通信雙方完成,不需要第三方協助。
b)通信次數少。整個驗證過程只需三次通信,這是兩方問答式協議最有效的通信方式。
c)計算量少。從協議過程可以看出,用戶端需要三次hash計算、一次RSA 解密、一次RSA 加密、一次隨機數的生成和存儲;服務器需要兩次hash計算、一次RSA 加密、一次RSA 解密、一次隨機數的提取和存儲。相比較以前的算法驗證雙方的計算量都很小。
d)服務器開銷少。服務器與用戶之間只需維持一對公開密鑰即可(私鑰由服務器獨占,公開密鑰由所有合法用戶共享,用以驗證服務器身份和向服務器加密傳輸數據),比較現有方案的開銷有較大節省。
e)運行效率高。本方案生成的隨機數RU 、RS僅用于hash計算和身份驗證,不需要其他存取,大大減少了服務器的開銷,提高了服務器的運行效率。
f)驗證強度提高。雖然運算次數和服務器開銷減少,但驗證強度較以前有所提高。客戶端有PKi(A)?、Hs=?hi(RS‖ H′i)兩次對服務器的驗證;服務器端有H′i∈?list、SK(PK(Hss,RU))、Hss=? hi(H′sRU)三次對客戶端的驗證。
g)登錄靈活。并不像借助計數器的協議,用戶只能使用特定的客戶端才能通過認證,只要有識別指紋裝置的客戶端都可以。
4 結束語
本文在不降低安全性的前提下,基于挑戰/應答模式,結合hash函數和公開密鑰設計了一種新的能有效適用于網絡環境的一次性身份認證方案。相比現有的挑戰/應答的一次性口令方案,其能有效地克服現有方案開銷大的弱點,減少加密算法和hash函數的計算次數,并且實現簡單、執行效率高,可與應用系統(特別是安全系統如防火墻)集成,用于應用系統本身的身份認證,以增強應用系統的安全性。
參考文獻:
[1]孫克強,劉嘉勇,丁光華.基于Hash 函數和對稱加密算法的一次性口令方案[J].信息與電子工程. 2007,5(6):449-452.
[2]AGI I, GONG Li. An empirical study of secure MPEG video transmission[C]//Proc of Symposium on Network and Distributed Systems Security. Washington DC: IEEE Computer Society, 1996:137-144.
[3] MAP LES T B, SPANOS G A. Performance study of a selective en
cryption scheme for the security of networked, real-time video[C]//Proc of the 4th International Conference on Computer Communications and Net-works. Washington DC: IEEE Computer Society, 1995:2-10.
[4]王春枝,唐皓.一種新型的一次口令機制與實現[J].科技文匯, 2006,2(2):187-188.
[5]湯鵬志,李黎青,左黎明.基于SHA的一次性口令認證技術[J].華東交通大學學報, 2005,22(2):55-59.
[6]王濱,張遠洋.一次性口令身份認證方案的分析與改進[J].計算機工程, 2006,32(14):149-150.
[7]張宏,陳志剛.一種新型一次性口令身份認證方案的設計與分析[J].計算機工程, 2004,30(17):112-114.
[8]陳航,周劍嵐,馮珊.基于SHA和RSA算法實用有效的雙向身份認證系統[J].計算機安全,2006,4(3):6-8.
[9]劉剛,司漸美.對一個雙向身份認證方案的改進[J].計算機安全,2006,10(5):7-8.
[10]劉濤,嚴楠,甘潔靜.基于RSA 算法動態相互身份認證的設計[J].安徽工程科技學院學報,2006, 21(1):29-33.
[11]宋金秀,楊秋翔.一種一次性口令身份認證方案的設計與分析[J].山西電子技術, 2007(4):62-63.
[12]李濤,曾英,甄姬娜.一種新的基于動態口令的遠程雙向認證[J].信息安全,2007,23(11):38-40.
[13]王濤,謝冬青,周洲儀.一種新的雙向認證的一次性口令系統TAO-TP[J].計算機應用研究,2005,22(9):128-130.
[14]SHI Chang-gui, WANG Sheng-yi, BHARGAVA B. MPEG video encryption in real-time using secret key cryptography[C]//Proc of International Conference on Parallel and Distributed Processing Techniques and Applications. 1999: 2822-2828.