基于TCP/IP應(yīng)用層密碼認(rèn)證協(xié)議的研究
從圖可知,在Kerberos認(rèn)證協(xié)議中,存在4種不同的角色:客戶端,即用戶(C),提供某種服務(wù)的服務(wù)器(S),認(rèn)證服務(wù)器(AS)和票據(jù)準(zhǔn)許服務(wù)器(TGS).它們之間通過對稱加密機(jī)制作為加密/解密算法,每個用戶(C)必須擁有一個認(rèn)證密鑰Kc,該認(rèn)證密鑰由用戶和認(rèn)證服務(wù)器AS之間共享一對對稱加密密鑰Ktgs,而票據(jù)準(zhǔn)許服務(wù)器(TGS)和服務(wù)器(S)之間共享一對對稱加密密鑰Ks.
總體來說, Kerberos認(rèn)證協(xié)議可以分為以下3個步驟:
第一步:認(rèn)證服務(wù)交換.包括消息(1)和(2),用戶(C)向認(rèn)證服務(wù)器(AS)證明自己的身份,以便獲得票據(jù)許可票據(jù)(TGT).協(xié)議的形式化描述如下:
(1)C → AS (2)AS → C
第二步:票據(jù)許可服務(wù)交換.包括消息(3)和(4),用戶向票據(jù)準(zhǔn)許服務(wù)器(TGS)索取訪問服務(wù)器(S)的服務(wù)許可票據(jù)(SGT).協(xié)議的形式化描述如下:
(3)TGS → C (4)C → TGS
第三步:用戶與服務(wù)器交換.包括消息(5)和(6),用戶使用所請求的服務(wù).
(5)C → S (6)S → C
從以上的過程分析中,我們可以發(fā)現(xiàn)Kerberos認(rèn)證協(xié)議存在以下問題:
1). 所有的用戶(C)帳號信息都存放在一臺認(rèn)證服務(wù)器(AS)中,如果該服務(wù)器被入侵,則一定會危及整個網(wǎng)絡(luò)的安全。
2).原有的認(rèn)證服務(wù)可能被存儲或替換.雖然時間戳是專門用于防止重放攻擊的,但在票據(jù)的有效時間內(nèi)仍然可能奏效.因為事實上,攻擊者可以事先把偽造的消息準(zhǔn)備好,一旦得到票據(jù)就馬上發(fā)出偽造的票據(jù),在相當(dāng)短的時間內(nèi)是難以檢查出來的。
3).服務(wù)許可票據(jù)的正確性是基于網(wǎng)絡(luò)中所有的時鐘保持同步,如果主機(jī)的時間發(fā)生錯誤,則原來的認(rèn)證票據(jù)就是可能被替換的。因為大多數(shù)網(wǎng)絡(luò)的時間協(xié)議是不安全的,所以,分布式計算機(jī)系統(tǒng)中這將導(dǎo)致極為嚴(yán)重的問題。
4). Kerberos防止口令猜測攻擊的能力很弱,攻擊者通過長期監(jiān)聽可以收集大量的票據(jù),經(jīng)過計算和密鑰分析進(jìn)行口令猜測。當(dāng)用戶選擇的口令不夠強(qiáng)時,就不能有效地防止口令猜測攻擊。
5).Kerberos服務(wù)器與用戶共享的秘密是用戶的口令字,服務(wù)器在回應(yīng)時不驗證用戶的真實性,而是假設(shè)只有合法用戶擁有口令字。如果攻擊者記錄申請回答報文,就易形成代碼本攻擊。
6).實際上,最嚴(yán)重的攻擊是惡意軟件攻擊。Kerberos認(rèn)證協(xié)議依賴于Kerberos軟件的絕對可信,而攻擊者可以用執(zhí)行Kerberos協(xié)議和記錄用戶口令的軟件來代替所有用戶的Kerberos軟件,達(dá)到攻擊的目的。一般而言,裝在不安全計算機(jī)內(nèi)的密碼軟件都會面臨這一問題。
7).雖然Kerberos認(rèn)證協(xié)議可以在較大規(guī)模網(wǎng)絡(luò)環(huán)境中使用,但是在分布式系統(tǒng)中,認(rèn)證中心星羅棋布,共享密鑰的管理分配、存儲和更新是一個非常困難的問題.以及它的配置也不是一件簡單的事情。
從對于Kerberos的局限性和問題分析中可以得出,其很多缺陷均是由于單獨采用對稱密鑰技術(shù)造成的。因此建議可以將公鑰加密機(jī)制有機(jī)地融合到Kerberos認(rèn)證協(xié)議中去,便能克服其保密性不強(qiáng),擴(kuò)展性差等缺點。
應(yīng)用層其他安全認(rèn)證協(xié)議的研究
除了Kerberos認(rèn)證協(xié)議以外, TCP/IP的應(yīng)用層安全認(rèn)證協(xié)議還包括用戶口令認(rèn)證協(xié)議(PAP),挑戰(zhàn)-握手協(xié)議(CHAP)和X.509協(xié)議.下面從系統(tǒng)的實用性,擴(kuò)展性和管理性等幾個方面進(jìn)行綜合對比,給出其優(yōu)缺點和使用環(huán)境,以作參考.如下表3.1所示:
以上通過應(yīng)用層安全認(rèn)證協(xié)議的對比可以看出,X.509認(rèn)證協(xié)議是目前基于公鑰體制的使用最為廣泛的認(rèn)證標(biāo)準(zhǔn)和協(xié)議,其次就是Kerberos認(rèn)證協(xié)議.因此,在實際的應(yīng)用中,我們可以根據(jù)所用系統(tǒng)的實用性,擴(kuò)展性,管理性以及成本等方面來綜合考慮,來決定選用哪種安全認(rèn)證協(xié)議[8].
結(jié)束語
認(rèn)證是信息安全防護(hù)系統(tǒng)中的核心和基礎(chǔ),是許多安全處理過程的前提.本文簡單對TCP/IP應(yīng)用層上的安全認(rèn)證協(xié)議進(jìn)行研究,并且從系統(tǒng)的實用性,擴(kuò)展性和管理性等幾個方面進(jìn)行綜合對比評價,給出其參考的使用環(huán)境.其中重點對Kerberos認(rèn)證協(xié)議進(jìn)行詳細(xì)地討論,并提出了對其改進(jìn)的認(rèn)證協(xié)議設(shè)計思想.希望這對當(dāng)前網(wǎng)絡(luò)信息安全的應(yīng)用有一定的技術(shù)價值和理論意義.