(華中科技大學 計算機學院, 湖北 武漢 430074)
摘 要:針對SSL VPN的Web登錄方式所存在的缺陷,提出了一種利用動態密碼改進原有登錄方式的方法。該方法在保持SSL VPN原有靈活、方便等特點的基礎上,較大地提高了安全性,有效地防范了密碼猜測攻擊和木馬程序攻擊。
關鍵詞:SSL VPN; 動態密碼; NTRU
中圖法分類號:TP393.08文獻標識碼:A
文章編號:1001-3695(2006)08-0089-02
Research and Application of Dynamic Password in SSL VPN
ZHOU Jing li, WANG Yu, YU Sheng sheng
(College of Computer Science, Huazhong University of Science Technology, Wuhan Hubei 430074, China)
Abstract:To solve the disadvantage of Web entry method of SSL VPN, a method of using dynamic password to entry is pre sented.It can be used to prevent the password from being stolen and cracked,thus the security of SSL VPN system is improved.
Key words:SSL VPN; Dynamic Password; NTRU
1引言
SSL VPN是利用SSL協議為終端用戶提供HTTP、ERP、文件共享等服務的VPN技術。現在的SSL VPN大多提供的是Web登錄方式,即用戶名+靜態密碼,SSL協議保證了數據在傳輸中的安全性。但由于是靜態密碼,攻擊者很容易利用木馬程序或暴力破解獲得系統的訪問資格。針對SSL VPN原有登錄方式的安全隱患,提出了動態密碼認證方式,它是邏輯識別與物理識別的結合,一方面安全性有較高的提升,另一方面開發和運營管理成本較低。
動態密碼也稱為一次性密碼,其原理是在登錄時產生不確定因素,從而計算生成的密碼也就不會相同。按照不同的不確定因素,動態密碼生成有以下兩種方式:
(1)請求/應答方式。客戶端向服務端發送請求,服務端系統發送一個隨機數給客戶,客戶用單向散列函數將用戶口令和隨機數雜湊成一個摘要發送給服務端。服務端用相同的方法驗證用戶身份,S/key口令序列是改進后的請求/應答方式。
(2)時間同步方式。登錄時以時間作為隨機因素,客戶端利用特定算法產生密碼,服務端用相同算法驗證用戶的合法身份,這種方式對服務器和客戶端的時間準確度要求嚴格。
現在的SSL VPN一般均采用由額外設備實現的動態密碼,如比較有名的RSA SecurID。本應用中采用NTRU密碼體制對動態密碼進行軟實現。
2NTRU基本原理
NTRU是基于格中尋找最短向量困難問題的公鑰密碼體制,在保證同安全級別的基礎上,它比RSA要快上幾個數量級別,算法也易于實現,同時對系統要求低,不需要額外的硬件設備,所以本應用中采用NTRU密碼體制,產生公鑰私鑰對進行加解密運算。
NTRU 是一種基于多項式環的加密系統,它是由正整數(N,p,q) 以及四個(N-1) 次整系數多項式集合 Rf,Rg,Rr,Rm 來建構的。 N一般為一大質數,R為多項式截斷環,可表示成R=Z[X]/(XN-1)。
②隨機地從集合Rg選擇一個多項式g,并計算h=Fq*g(modq),h稱為公鑰。
(2)加密過程
①令 m為集合Rm中的待加密的明文, 隨機地從集合Rr中選擇一個多項式r。
②加密密文為e=r*h+m(modq)。
(3)解密過程
①用私鑰f,計算:a=f*e(modq)。
②將多項式a的系數作模q處理,b=a(modq)并調整于(-q/2,q/2) 區間之內。
③用私鑰Fp計算c=Fp*b(modp),所得的結果c即是解密的明文。
3改進后的SSL VPN的用戶認證方式
通常SSL VPN只包含VPN客戶端、VPN服務器和應用服務器。客戶端通過Web輸入用戶名和密碼,發送給VPN服務器,在VPN服務器上保存著所有合法的用戶名及其密碼的表單,VPN服務器通過比較表單進行身份認證從而授予用戶相應的訪問內網應用服務器的權限。在整個認證過程中,客戶端在網上傳送的認證信息都有加密保護,對網絡數據包監聽起到了很好的防護作用,然而SSL VPN是為滿足移動辦公提出的安全解決方案,所以其VPN客戶端很可能沒有進行過安全檢測,如網吧電腦。因此SSL VPN的登錄方式很容易使用戶密碼被木馬程序盜取,同時如果用戶不是使用強密碼的話,攻擊者也能夠通過密碼猜測獲得登錄許可。
針對SSL VPN的這個安全隱患,本文提出了一種利用Java Applet產生動態密碼的認證方式。改進后的SSL VPN增加了一個密碼服務器,它負責保存用戶注冊時產生的公鑰,并且在用戶登錄時會隨機產生一個密碼作為該用戶當前登錄的密碼。這樣能簡化SSL VPN網關功能,同時密碼服務器處于內網,也減小了它受到外部攻擊的危險。
改進后的SSL VPN在用戶注冊時,不是給用戶一個初始密碼,而是產生一個NTRU公鑰私鑰對,由用戶保管自己的私鑰。在實際應用中,用戶私鑰應當保存在移動存儲器中,這既是移動辦公的需要,同時也是防范私鑰被盜取的有效措施;公鑰保存在密碼服務器上。登錄時用戶發出登錄請求后,VPN服務器會將由用戶公鑰加密的本次登錄密碼和以Java Applet形式的解密算法發送給客戶端,用戶利用自己的私鑰解密密文,得到密碼登錄。具體的認證流程如圖2所示。
(1)客戶端向VPN服務器發出登錄請求,請求信息包括用戶名(userId),請求標志(request),表述為
VPN Client->VPN Server: userId, request
(2)VPN服務器向后臺密碼服務器申請該用戶本次登錄密碼,表述為
VPN Server->Password Server: userId, request
(3)密碼服務器通過用戶賬號找到用戶的公鑰pubKey,同時進行八次(隨機數字mod 62)運算,產生一組八位長的由字母和數字組成的密碼,用它作為一次性密碼(password);然后用公鑰加密密碼{password}pubKey將加密后的密文和密碼{password+{password}pubKey}發送給VPN服務器,表述為
Password Server->VPN Server:password,{password}pubKey
(4)VPN服務器保存密碼(userId,password),將收到的密文{password} pubKey發送給客戶端,表述為
VPN Server->VPN Client: {password} pubKey
(5)客戶端得到密文,用戶用私鑰解密密文得到一次性密碼password′=decode({password} pubKey, priKey),然后用賬號和密碼登錄,表述為
VPN Client->VPN Server: userId, password′
(6)VPN服務器驗證用戶輸入的密碼password′是否同password相同,然后向用戶發送驗證結果,VPN服務器刪除本次登錄,表述為
VPN Server->VPN Clinet:ACK
4性能分析
本方案應用NTRU密碼體制,NTRU系統的構建依賴于它的參數選擇,在這里我們利用NTRU提供的標準參數,如表1所示。
根據不同的需要,我們可以選擇不同的安全級別,在SSL VPN應用中我們可以選擇較低的安全級別。
因為動態密碼的隨機性,每次登錄密碼重復的可能性非常小,這樣從根本上消除了密碼猜測攻擊和暴力破解。如果我們密碼長度為8,由大小寫字母和數字組成,那么密碼被猜測到的概率為1/218 340 105 584 896。
5結論
本文針對SSL VPN現存的安全隱患,利用動態密碼的隨機性提出了基于NTRU密碼體制的認證方式,能夠有效地防范木馬程序盜取用戶登錄密碼、密碼的猜測攻擊和暴力破解。實際應用除了提高安全性以外還有以下優點:對原有系統改變很小;開發管理成本較低;用戶使用方便,客戶端不用做任何設置,也不需要任何設備。
參考文獻:
[1]Jeffrey Hoffstein, Jill Pipher, Joseph H Silverman. NTRU: A Ring based Public Key Cryptosystem[EB/OL]. http://www.ntru.com/cryptolab/articles.htm, 1998.
[2]Joseph H Silverman. Almost Inverses and Fast NTRU Key Creation, NTRU Cryptosystems Technical Report #014[EB/OL]. http://www.ntru.com/cryptolab/pdf/ NTRUTech014.pdf, 1999.
[3]Joseph H Silverman. Wraps Gaps, Lattice Constants, NTRU Cryptosystems Technical Report#011[EB/OL]. http://www.ntru.com/cryptolab/pdf/ NTRUTech011_v2.pdf, 2001.
[4]Haller N, Metz C. A One time Password System[S].RFC 2289,1998.
[5]吳世忠, 祝世雄,等.應用密碼學[M]. 北京:機械工業出版社,2000.
[6]包麗紅,李立亞.基于SSL 的VPN技術研究[J].網絡安全技術與應用,2004,(5):38-40.
作者簡介:周敬利(1946-),女,教授,博導,主要研究方向為計算機網絡存儲、多媒體網絡通信、計算機網絡安全;王宇(1980-),男,碩士研究生,主要研究方向為計算機網絡安全;余勝生(1944-),男,教授,博導,主要研究方向為多媒體系統技術、計算機接口技術、數字信號處理。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。