《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于DESX的Kerberos協議的分析與改進
基于DESX的Kerberos協議的分析與改進
來源:微型機與應用2013年第13期
王崇霞1,高美真2
(1.長治學院 計算機系,山西 長治 046010; 2.焦作師范高等專科學校 計算機與信息工程學院
摘要: Kerberos協議是一種基于可信第三方的身份認證協議,針對Kerberos協議具有口令猜測攻擊、重放攻擊等缺陷,提出一種基于DESX算法和SHA函數的Kerberos協議改進方案,通過分析比較,改進協議不但摒棄了原Kerberos協議存在的缺陷,且以相對較小的開銷使Kerberos協議認證過程更安全可靠。
Abstract:
Key words :

摘  要: Kerberos協議是一種基于可信第三方的身份認證協議,針對Kerberos協議具有口令猜測攻擊、重放攻擊等缺陷,提出一種基于DESX算法和SHA函數的Kerberos協議改進方案,通過分析比較,改進協議不但摒棄了原Kerberos協議存在的缺陷,且以相對較小的開銷使Kerberos協議認證過程更安全可靠。
關鍵詞: Kerberos協議;身份認證;DESX;安全性;票據

 Kerberos協議是麻省理工學院(MIT)在20世紀80年代為Athena計劃開發(fā)的一種基于可信第三方協助的統(tǒng)一身份認證協議,它可以在不安全的網絡環(huán)境中實現用戶對遠程服務器的訪問,并提供自動鑒別、數據安全性和完整性服務,其特點是用戶只需輸入一次身份驗證信息就可以憑此驗證獲得訪問服務器的票據。至今,Kerberos已經有5個版本,前3個版本是內部應用版本,Kerberos V4是被公諸于眾的第1個版本,Kerberos V5針對V4存在的不足作了改進。但由于Kerberos協議基于對稱加密算法DES實現,仍然存在口令猜測攻擊、密鑰管理困難等不足[1]。針對這些不足,學者們提出了很多對Kerberos協議的改進方案,如參考文獻[1]利用公鑰密碼體制對Kerberos協議進行了改進;參考文獻[2]基于動態(tài)密碼體制對Kerberos協議進行修正;參考文獻[3]基于橢圓曲線的零知識證明方法解決字典攻擊問題;參考文獻[4]提出基于混合加密體制和Daffier-Hellman密鑰協商對Kerberos協議的修正方案;參考文獻[5]提出用ECC算法作為加密和簽名工具對Kerberos協議進行改進。這些方案雖然從不同角度對Kerberos協議進行了修正和補充,彌補了Kerberos協議的不足,但也在很大程度上修改了Kerberos協議算法,增加了運算復雜度,提高了系統(tǒng)開銷。
 本文在深入分析Kerberos協議結構和認證過程的基礎上,提出了基于DESX及SHA-2函數對Kerberos協議的改進方案,不但摒棄了Kerberos協議存在的不足,增加了Kerberos協議的安全性,而且由于DESX算法是DES算法的變型,在不改變Kerberos協議認證模型及開銷較小的情況下彌補和修正了Kerberos協議的缺陷。
1 Kerberos協議及其安全性分析
1.1 Kerberos認證協議

 Kerberos體系結構由密鑰分配中心KDC(Key Distribution Center)、應用服務器和客戶3個部分組成,KDC在整個認證系統(tǒng)中處于核心地位,由認證服務器AS(Authentication Server)、票據授權服務器TGS(Ticket Granting Service)及認證數據庫組成。
 Kerberos協議以域為單位進行管理,每個域中包含若干客戶、1個認證服務器AS、1個票據授權服務器TGS和若干應用服務器。因此,Kerberos認證協議分為兩種認證模式:域內認證和跨域認證。本文主要從域內認證模式闡述對Kerberos協議的改進。Kerberos協議認證流程共有6個步驟,如圖1所示。

 本文用到的符號定義:
 C:客戶;
 S:應用服務器;
 IDc:用戶的身份標識;
 ADc:用戶的地址;
 Kx:X與AS的共享密鑰;
 Kx,y:x、y共享的會話密鑰;
 Ticketx,y:訪問時的票據;
 Lifetime:生存時間;
 TS:時間戳,信息的發(fā)送時間;
 Authenticationc:由客戶產生,用于驗證用戶所持票據的真實性;
 {M}Kc:密鑰Kc加密信息M;
 Option:可選項,用于請求在票據中設置相應的標志位,通過設置相應的標志,可以在協議中添加一些控制;
 Nonce:一個保鮮數,它表示回應的信息是新鮮的,預防遭到重放攻擊;
Times:客戶請求在票據中設置時間,包括請求票據的起始時間、過期時間和過期時間的更新時間,從而允許票據擁有任意長度的有效期;
 Subsky:子密鑰,用以保護某一特定的應用程序會話;
 Seq:可選項,說明在此次會話中服務器向客戶發(fā)送消息的序列號,將消息排序可以防止重放攻擊。
 Kerberos協議的信息交換過程共分3個階段6個步驟[6-7]:
 (1)客戶C請求AS發(fā)放訪問TGS的許可票據Tickettgs。C發(fā)送明文請求消息到AS,AS返回1張加密過的票據,加密密鑰Kc由用戶口令Password得到。當AS回應的信息到達客戶端,客戶提示用戶C輸入口令,由此產生密鑰Kc,并對收到的報文解密,得到Tickettgs,若口令正確,票據正確解密,恢復加密的許可票據Tickettgs,否則提示錯誤返回。
 ①C→AS:{Options,IDc,IDtgs,Times,Nonce1}
 ②AS→C:{IDc,Tickettgs{Kc,tgs,Times,Nonce1,IDtgs}Kc}
 Tickettgs={flags,Kc,tgs,IDc,ADc,Times}Ktgs
 (2)客戶C訪問TGS獲得訪問應用服務器S的服務許可票據Tickets。TGS對收到的許可票據Tickettgs解密,并核查解密后的信息,檢查票據有效期Times和新鮮數Nonce2,核定該票據是否過期;比較票據中的用戶信息與收到的數據包中的用戶鑒別信息是否一致,確定用戶是否為合法用戶,如用戶合法,發(fā)放訪問應用服務器的許可票據Tickets。用戶鑒別信息Authenticationc1由用戶C與TGS之間的共享密鑰加密Kc,tgs。
 ③C→TGS:{Options,IDs,Times,Nonce2,Tickettgs,Authenticationc1}
Authenticationc1={IDc,TS1}Kc,tgs
 ④TGS→C:{IDc,Tickets,{Kc,s,Times,Nonce2,IDs}Kc,tgs}
Tickets={flags,Kc,s,IDc,ADc,Times}Ks
 (3)客戶C據許可票據Tickets訪問應用服務器,并進行相互身份驗證。客戶持許可票據Tickets申請訪問應用服務器S,S解密信息(實現客戶對應用服務器身份確認),并根據Tickets和用戶鑒別信息Authenticationc2,驗證用戶身份,構建回應信息包。客戶產生與應用服務器間會話的子密鑰Subkey和序列號seq,來確保信息傳輸的安全性和信息傳輸的順序性。
 ⑤C→S:{Options,ickets,Authenticationc2}
Authenticationc2={IDc,TS2,Subkey,Seq.#}Kc,s
 ⑥S→C:{TS2,Subkey,Seq.#}Kc,s
1.2 Kerberos的安全性分析
 Kerberos協議是目前計算機網絡環(huán)境中應用最廣泛的第三方認證協議,Kerberos協議雖然能夠實現身份認證,并提供數據完整性和保密性服務,但卻存在著一定的安全缺陷。參考文獻[1]、[7]、[8]列舉了Kerberos V4協議存在的安全問題,主要有以下幾方面:
 (1)口令猜測攻擊:Kerberos協議中,AS并不直接驗證用戶的口令,只是通過用戶口令產生的密鑰能否解密來判斷用戶的合法身份,若攻擊者捕獲該消息,并嘗試各種口令解密,如果解密成功,攻擊者即可得到用戶口令,進而冒充用戶身份訪問服務器。
 (2)重放攻擊:雖然Kerberos V4采用時間戳預防重放攻擊,但在時間戳許可的有效時間內,攻擊者若把事先準備好的偽造消息發(fā)出,服務器就很難判斷信息是否是偽造的。
 (3)票據有效期有限:Kerberos V4用8 bit表示票據的有效期,因此其最大有效期約256×5=1 280 min[8]。
 除了以上所描述的缺陷,Kerberos V4還存在消息字節(jié)順序由發(fā)送者決定、域間認證不完善、采用非標準的PCBC加密模式、多次使用同一個會話密鑰等不足。Kerberos V5在V4的基礎上進行了修改,改用了標準的CBC加密模式、對消息字節(jié)的發(fā)送順序也作了一定的規(guī)定,并且可以設置一些標志位,增加了Nonce保鮮數、機動設置票據時間、用戶訪問應用服務器時產生子密鑰、添加發(fā)送消息的序列號等,解決了大部分Kerberos V4存在的問題,但Kerberos V5依然存在口令猜測攻擊的致命缺陷。
2 Kerberos協議改進方案
2.1 DESX加密算法

 數據加密標準DES(Data Encryption Standard)是由IBM公司研制的一種分組對稱加密算法,自發(fā)布以來,DES在各行各業(yè)得到廣泛應用。DESX算法是RSA數據安全公司對DES算法的改進,它采用白化技術來掩飾輸入和輸出,除了有DES的56 bit密鑰外,DESX還有附加的隨機密鑰,將總密鑰長度擴展到184 bit,即使用3個64 bit的密鑰K1、K2和K3對數據塊加密,充分保證了數據的安全。DESX加密過程分為3個步驟:(1)使用K2對數據塊C做XOR運算;(2)使用K1對上一步結果做DES加密運算;(3)使用K3對第二步的結果進行XOR運算得到密文。即DESKk1,k2,k3(C)=k3?茌Desk1(k2?茌C)(密鑰K=k1.k2.k3符號“.”表示級聯)[9]。
 與DES和3DES相比,DESX只做了1次DES運算,計算開銷和普通DES相當,但密鑰長度提高到184 bit,在保證安全性前提下,極大地提高了執(zhí)行效率,且白化技術迫使攻擊者不僅要猜出算法密鑰,而且必須猜出1個白化鍵,因此DESX抵御各種網絡攻擊的能力更強。
當DESX的密鑰K=k1.k2.k3=k1.064.064時,DESX與DES兼容[9]。
2.2 SHA-2函數
 Hash函數可以將任意長的數據映射為定長的Hash碼,也稱為數據摘要,即h=H(M)。它具有單向性、抗碰撞性等特點,在身份認證、數字簽名和完整性檢驗等方面得到了廣泛應用。
 安全散列算法(SHA)是由美國國家標準與技術協會NIST設計發(fā)布的安全Hash函數,1995年發(fā)布了FIPS180-1,稱之為SHA-1;由于SHA-1存在安全隱患,2002年,NIST又發(fā)布其修訂版FIPS180-2,并稱為SHA-2,其中包含3種新的Hash函數,因其Hash值長度分別為256 bit、384 bit和512 bit,故分別稱為SHA-256、SHA-384和SHA-512。
 SHA-2是一種迭代結構的Hash函數,它可以把任意長度的輸入數據壓縮成固定長度的數據摘要。SHA-2不但具有Hash函數抗碰撞性、計算不可逆等特點,且SHA-2的數據分組和摘要信息都比SHA-1大,所以它具有更高的安全性[10],其在信息安全領域的應用也越來越多。
2.3 建議的Kerberos協議改進方案
 通過1.2節(jié)對Kerberos協議安全性的分析,對Kerberos協議的改進主要從以下幾個方面進行:
 (1)針對加密算法,原Kerberos協議采用的DES算法密鑰較短、強度較弱、存在互補對稱性等缺陷,建議Kerberos協議以184 bit密鑰的DESX算法對數據進行加密,提高了Kerberos協議的安全性。
 (2)針對口令猜測攻擊,取消認證過程中的直接口令認證,改為采用SHA-2函數計算的多參數密鑰認證, 并在數據通信過程中多次實現對用戶的身份確認。
建議的Kerberos協議模型與原Kerberos協議模型相似,認證過程中每個階段的修改主要有以下幾點:
 (1)CAS,客戶C請求認證服務器AS發(fā)放訪問票據授權服務器TGS的許可票據Tickettgs。
客戶C發(fā)送認證信息給認證服務器,認證服務器收到信息后反饋一個密鑰Kc加密的信息及票據Tickettgs,客戶收到信息后,輸入口令Passwork作為解密密鑰Kc。在原Kerberos協議中,密鑰Kc即用戶口令Password,而建議的Kerberos協議中密鑰采用SHA-2函數計算得到,即:
 Kc=Hash(Password+用戶信息+Times)
 Password是用戶在系統(tǒng)中注冊的口令信息,KDC認證數據庫中僅存儲用戶Password,認證服務器在需要使用Kc加密數據時,通過Hash函數計算得到Kc;用戶信息關于用戶的一些信息,也可以是IDc或ADc等;Times為客戶在請求票據中設置的時間,包括票據的起始時間、到期時間和到期時間的更新時間。
 (2)C TGS客戶C訪問TGS獲得訪問應用服務器S的服務許可票據Tickets。
客戶收到Ktgs加密的票據Tickettgs,同IDc、Times、Authenticationc1等信息一起發(fā)送到票據授權服務器TGS,其中用戶鑒別信息Authenticationc1的作用是驗證用戶所持票據的真實性,確保票據是被擁有者所持有。但是如果攻擊者捕獲該票據,并冒用IDc從另一個工作站上發(fā)送消息,會誤導票據授權服務器TGS授權給攻擊者。所以建議的Kerberos協議在Authenticationc1中添加用戶身份信息,確保信息發(fā)送者是服務器授權的用戶身份。
 Authenticationc1={IDc,ADc,TS1}Kc,tgs
 (3)S C,客戶C訪問應用服務器S,并實現C和S的雙向身份認證。
客戶通過與應用服務器間會話的子密鑰Subkey和序列號Seq來確保信息傳輸的安全性和順序性。客戶持授權票據Tickets訪問應用服務器S,應用服務器通過客戶所持票據Tickets對其身份進行認證,同時在用戶鑒別信息Authenticationc2中添加用戶信息ADc,防止攻擊者冒充客戶身份,實現應用服務器和客戶的雙向確認。
Authenticationc2={IDc,ADc,TS2,Subkey,Seq.#}Kc,s
2.4 改進的Kerberos協議分析
 (1)加密算法的改進
 在建議的Kerberos方案中采用DESX加密算法,DESX算法是為了克服DES算法容易受到口令猜測攻擊而提出的改進加密算法,它采用當前密碼學中流行的級聯密碼和白化技術,將密鑰長度擴展到184 bit,其密鑰K2、K3被稱為白化鍵,它采用混合計算排列的輸入和輸出來掩蓋密鑰[9]。因此采用DESX加密算法的Kerberos協議安全性更強。
 (2)口令猜測攻擊
 在原Kerberos協議中,認證服務器通過用戶是否能解密信息來判斷用戶的合法身份,且用戶密鑰是預先存儲在AS中的不變的用戶信息,由于通常用戶所選擇的密碼比較簡單或具有明顯的特征,極易遭到口令猜測攻擊。而建議的Kerberos方案中,用戶密鑰是通過多參數的Hash函數計算而來,且每次用戶認證時,密鑰會隨當時認證時間、參數等信息不同而不同,由于Hash函數的不可逆性,攻擊者通過口令猜測攻擊能得到是不可能實現的。
 (3)重放攻擊
 Kerberos V4協議中,在時間戳允許的范圍內,攻擊者可以把事先準備好的偽造消息發(fā)出,進行重放攻擊。在建議的Kerberos方案中不僅設置了時間戳TS、生存期Times和保鮮數Nonce,并且在認證過程中協商產生序列號Seq,杜絕了重放攻擊的發(fā)生。另外在與TGS和AS的交互過程中,鑒別信息Authenticationc1和Authenticationc2中添加用戶身份信息ADc,防止攻擊者冒充客戶身份訪問服務器,更加強了對重放攻擊的預防。
 (4)用戶身份確認

 


 在建議的Kerberos協議的實現過程中,每個階段都對用戶的身份進行確認,第一次,通過密鑰解密信息來確認用戶身份,第二次和第三次分別是客戶與TGS和AS交互過程中,通過在加密了的鑒別信息Authenticationc1和Authenticationc2中添加用戶身份信息ADc,實現對用戶身份的確認,保障認證過程中每個階段對客戶身份的鑒別,防止攻擊者冒充客戶身份。
 建議的Kerberos改進方案采用DESX作為加密算法,DESX算法的計算開銷和普通DES相當,且協議認證過程僅需執(zhí)行一次Hash計算,因此在協議實現復雜度與加解密速度上,較參考文獻[1]、[2]、[3]、[4]、[5]提議的Kerberos改進方案[11-12],存在明顯的改善。
 本文詳細分析了Kerberos認證協議,并針對Kerberos協議存在的安全隱患,提出了一種基于DESX加密算法和SHA-2函數的Kerberos改進方案。通過分析比較,建議的Kerberos改進方案彌補了原Kerberos協議存在的口令猜測攻擊和重放攻擊等缺陷,提高了協議認證過程的安全性,加強了協議認證過程中各階段對客戶身份的鑒別,有效防范了攻擊者冒充客戶身份,并且建議的協議方案與原協議實現模型類似,在Kerberos協議逐漸淘汰DES加密算法的過程中,具有很好的實用意義。
參考文獻
[1] RAVI GANESAN. Yaksha: Augmenting Kerberos with Public Key Cryptography[J]. Network and Distributed System Security, 1995(6):132-143.
[2] 盧小良,袁丁.對一種基于動態(tài)密碼體制的Kerberos協議的改進[J].四川師范大學學報,2006,29(2):239-242.
[3] 張健,戴威嶺,郝善勇.基于橢圓曲線的零知識證明方法對Kerberos系統(tǒng)的改進[J].計算機工程,2002,28(10):143-144.
[4] 胡宇,王世倫.基于混合體制的Kerberos身份認證協議的研究[J].計算機應用,2009,29(6):1659-1661.
[5] 文鐵華,谷士文.增強Kerberos協議安全性的改進方案[J].通信學報,2004,25(6):76-79.
[6] FREDERICK BUTLER, ILIANO CERVESATOB, AARON D. Jaggardc, Andre Scedrovd, Christopher Walstadd, Formal analysis of Kerberos 5[J]. Theoretical Computer Science,2006:57-87.
[7] STEVEN M. BELLOVIN, MICHAEL MERRITT. Limitations of the Kerberos Authentication System[J]. http://hdl.handle.net/10022/AC:P:9123,1999.
[8] 周倜,王巾盈,李夢君,等.Kerberos協議版本的分析與比較[J].計算機學報,2009,36(2):119-123.
[9] JOE KILIAN. How to Protect DES Against Exhaustive Key Search (an Analysis of DESX)[J]. Journal of Cryptology,2001(14):1,17-35.
[10] CHU HSING LIN, YI SHIUNG YEH, HUNG SHENG CHIEN, et al. Generalized secure hash algorithm: SHA-X[J].International Conference on Computer as a Tool (EUROCON), IEEE, 2011:27-29.
[11] 莫燕,張玉清,李學干.對Kerberos協議的攻擊及對策研究[J].計算機工程,2005,30(10):66-69.
[12] NEUMAN,  KERBEROS B C. An authentication service for computer networks[J]. Communications Magazine,IEEE.1994,32(9):33-38.

此內容為AET網站原創(chuàng),未經授權禁止轉載。
主站蜘蛛池模板: 91免费看国产 | 六月伊人| 精品国产91久久久久久久a | 美女18网站 | 99久久精品国产一区二区小说 | 亚洲成人午夜影院 | 成人毛片免费观看视频大全 | 欧美成人ass | 日本二区免费一片黄2019 | 欧美国产成人精品一区二区三区 | 亚洲在线播放 | a级片在线免费观看 | 亚洲美女自拍视频 | 91最新地址永久入口 | 自拍偷在线精品自拍偷无码专区 | 国产精品区在线12p 国产精品人成 | 国产亚洲精品影达达兔 | 99久久精品国产一区二区成人 | 亚洲欧美中文日韩二区一区 | 中文字幕 亚洲精品 第1页 | 日韩精品一区二区三区免费观看 | 欧美性色黄大片在线观看 | 亚洲偷偷| 亚欧精品一区二区三区 | 欧美一级专区免费大片野外交 | 日韩成人黄色片 | 国产一级毛片亚洲久留木玲 | 韩国a级毛片 | 国产精品深爱在线 | 久久精品a亚洲国产v高清不卡 | 亚洲性色视频 | 性色a v 一区 | 国内自拍网红在线综合 | 久久久综合网 | 亚洲一区视频 | 亚洲狠狠狠一区二区三区 | 欧美一级www | 国产欧美一区二区三区视频在线观看 | 91精品国产乱码久久久久久 | 青青影院一区二区免费视频 | 久久久久久国产精品视频 |