摘 要: 分析比較了新Kerberos認(rèn)證協(xié)議" title="認(rèn)證協(xié)議">認(rèn)證協(xié)議與原Kerberos認(rèn)證協(xié)議,,指出了對(duì)Kerberos改進(jìn)的一些主要方面,,并指出了其局限性。在此基礎(chǔ)上提出了將公鑰" title="公鑰">公鑰密碼體制" title="密碼體制">密碼體制ECC與對(duì)稱密碼體制AES引入到Kerberos認(rèn)證協(xié)議中的方案,。該方案不僅解決了Kerberos認(rèn)證協(xié)議中密鑰的分配和管理問(wèn)題, 而且提高了Kerberos認(rèn)證協(xié)議的安全性,使其遭受口令攻擊的危險(xiǎn)得到降低,更好地解決了工業(yè)控制網(wǎng)絡(luò)" title="工業(yè)控制網(wǎng)絡(luò)">工業(yè)控制網(wǎng)絡(luò)的身份認(rèn)證問(wèn)題,。
關(guān)鍵詞: Kerberos協(xié)議 ECC算法 AES算法 Rijndael算法
美國(guó)麻省理工學(xué)院于2005年7月推出了新的Kerberos協(xié)議規(guī)范[1],是針對(duì)1993年Kerberos V5版本[2]的修改,。不但改正了諸多缺點(diǎn),,而且還給出了一些新的約定和新的操作選項(xiàng),使其更符合當(dāng)前應(yīng)用,,大大提高了其安全性及效率,。但由于對(duì)稱加密的固有特點(diǎn)使得新Kerberos協(xié)議仍有一定局限性,,因此提出將公鑰密碼體制與對(duì)稱密碼體制相結(jié)合,即將ECC+AES方法引入到Kerberos認(rèn)證協(xié)議中對(duì)其作進(jìn)一步改進(jìn)。
1 Kerberos協(xié)議
1.1 Kerberos協(xié)議原理描述
在Kerberos協(xié)議中,,AS為認(rèn)證服務(wù)器,,可在用戶登錄時(shí)確認(rèn)用戶身份。AS與密鑰分配中心KDC類似,,它與每個(gè)用戶共享一個(gè)密鑰,。TGS為票據(jù)分配服務(wù)器,為用戶之間的通信分配票據(jù),,使應(yīng)用服務(wù)器相信TGS持有者的身份真實(shí)性,。Kerberos協(xié)議具體實(shí)現(xiàn)過(guò)程如圖1所示。從圖1可知,,用戶C要訪問(wèn)目標(biāo)服務(wù)器S,,需要進(jìn)行六次協(xié)議交換,即:
(1)C->AS:C,,TGS,,Addr,TS1,。
(2)AS->C:{Kc,,tgs}Kc,TGT,,TGT:{TGS,,C,Addr,,TS2,,Lifetime2,Kc,,tgs}Ktgs,。
(3)C->TGS:S,TGT,,Authenticator1,;Authenticator1:{C,Addr,,TS3}Kc,,tgs。
(4)TGS->C:{Kc,,s}Kc,,tgs,Ts,;Ts:{S,,C,,Addr,TS4,,Lifetime4,,Kc,s}Ks,。
(5)C->S:S,,Ts Authenticator2;Authenticator2:{C,,Addr,,TS5}Kc,s,。
(6)S->C:{TS5+1}Kc,s,。
1.2 新Kerberos協(xié)議規(guī)范
Kerberos協(xié)議本身并不是無(wú)限安全的,,而且也不能自動(dòng)提供安全,它是建立在一些假設(shè)之上的[3],,即只有在滿足如下假定的環(huán)境中它才能正常運(yùn)行:①不存在拒絕服務(wù)攻擊,;主體必須保證他們的私鑰安全;②Kerberos無(wú)法應(yīng)付口令猜測(cè)攻擊,;③網(wǎng)絡(luò)上每個(gè)主機(jī)的時(shí)鐘必須是松散同步[4]的,。ITEF改進(jìn)了Kerberos協(xié)議規(guī)范(稱為新規(guī)范)并且取代了原來(lái)的Kerberos協(xié)議規(guī)范(稱為舊規(guī)范),新規(guī)范詳細(xì)闡明了很多在舊規(guī)范上沒(méi)有清楚描述的條款,,增加了一些推薦性的執(zhí)行選項(xiàng)和一些新操作,。其主要改進(jìn)有如下幾方面:
(1)為了與當(dāng)前應(yīng)用相適應(yīng),新規(guī)范采用了新的加密和校驗(yàn)方法[5][6],,這是最主要的改進(jìn),。同時(shí)刪除了一些已不夠強(qiáng)壯的方法,如DES和MD5,,而采用AES,。表1為DES與AES(Rijndael)加密算法的性能比較。針對(duì)密鑰的生成,,在新規(guī)范中,,用戶模式下私鑰“可能”來(lái)自用戶的口令,因?yàn)橛脩裘荑€可能存儲(chǔ)在智能卡上,,或者可以直接獲得而與口令無(wú)關(guān),,而以前用戶私鑰僅通過(guò)用戶輸入口令生成。
(2)新規(guī)范依賴KDC檢查傳輸域,,并將檢查標(biāo)志包含在票據(jù)內(nèi),,以表明該檢查已經(jīng)執(zhí)行,。目前Kerberos的執(zhí)行即使忽略域標(biāo)志或者不設(shè)置域標(biāo)志也不存在安全隱患。新規(guī)范增強(qiáng)了解析主機(jī)名的能力,,當(dāng)Kerberos為一個(gè)命名主體提供認(rèn)證時(shí),,能夠確保它所認(rèn)證的主體名字是完整的,并且就是它所期望通信的對(duì)象,。
(3)新規(guī)范首次在參考文獻(xiàn)中提出應(yīng)用公開(kāi)密鑰算法對(duì)認(rèn)證進(jìn)行初始化,。
(4)新規(guī)范增強(qiáng)了Kerberos的擴(kuò)展性及兼容性。
1.3 新Kerberos協(xié)議的局限性
新規(guī)范雖然彌補(bǔ)了舊規(guī)范的許多環(huán)境缺陷和技術(shù)缺陷,,但由于歷史原因,,它還是存在許多局限性。作為一個(gè)認(rèn)證服務(wù),,Kerberos在網(wǎng)絡(luò)上為主機(jī)身份的驗(yàn)證提供了一種方法,,但Kerberos本身并不提供認(rèn)證。如應(yīng)用程序不應(yīng)該接受Kerberos 服務(wù)器上所發(fā)布的服務(wù)票據(jù)作為授權(quán)票據(jù),,因?yàn)樵谶@種情況下可能會(huì)使應(yīng)用程序在其他密鑰分發(fā)系統(tǒng)內(nèi)部變得十分脆弱,。
(1)密鑰管理" title="密鑰管理">密鑰管理和維護(hù)問(wèn)題。新Kerberos防止口令猜測(cè)攻擊的能力還很弱,,每一個(gè)主體必須對(duì)自身的密鑰保密,。如果密鑰被某個(gè)入侵者獲得,就會(huì)偽裝成該主機(jī)或者其他關(guān)聯(lián)主機(jī)的服務(wù)器,。
(2)對(duì)時(shí)間同步性要求很高,。在整個(gè)認(rèn)證過(guò)程中都要通過(guò)時(shí)間戳的比較,才能判明合法身份,。這就要求對(duì)整個(gè)網(wǎng)絡(luò)內(nèi)的時(shí)鐘實(shí)現(xiàn)準(zhǔn)同步,。這對(duì)于一個(gè)擁有不同類型終端的分布式網(wǎng)絡(luò)來(lái)說(shuō)是很難實(shí)現(xiàn)的。
(3)主機(jī)標(biāo)識(shí)符在一段時(shí)間內(nèi)禁止重復(fù)使用,。訪問(wèn)控制的一個(gè)典型模式使用訪問(wèn)控制列表(ACL)向特定主機(jī)授權(quán)許可,。如果過(guò)時(shí)的入口仍然保存著已經(jīng)被刪除的主機(jī),而該主機(jī)標(biāo)識(shí)符是新的,,則該新的主機(jī)會(huì)繼承舊的記錄在ACL入口的權(quán)限,。即當(dāng)不再重新使用主機(jī)標(biāo)識(shí)符時(shí),無(wú)意的接入威脅即可避免,。
2 Kerberos協(xié)議的改進(jìn)方案
2.1 基于對(duì)稱密碼體制的Kerberos協(xié)議的改進(jìn)
參考文獻(xiàn)[7]和[8]中提出了利用公開(kāi)密鑰加密進(jìn)行對(duì)稱加密密鑰分配的方法,。該方法是在通信雙方通過(guò)公開(kāi)密鑰證書(shū)得到對(duì)方的公開(kāi)密鑰的基礎(chǔ)上實(shí)現(xiàn)的。
2.2 基于ECC+AES的數(shù)據(jù)傳輸加密的Kerberos改進(jìn)方案
在Kerberos認(rèn)證協(xié)議中,,全都采用公開(kāi)密鑰密碼體制傳送機(jī)密信息是不夠安全的,。在傳送機(jī)密信息的Client/Server雙方,如果使用某個(gè)對(duì)稱密鑰密碼體制并同時(shí)使用不對(duì)稱密鑰密碼體制傳送對(duì)稱密鑰密碼體制的密鑰,就可以綜合發(fā)揮兩種密碼體制的優(yōu)點(diǎn),,即對(duì)稱密鑰密碼體制的高速性,、簡(jiǎn)便性和不對(duì)稱密鑰密碼體制的密鑰管理的方便性、安全性,。AES算法與RSA算法,、ECC算法的特點(diǎn)比較如表2所示。
由于AES和RSA,、ECC各具所長(zhǎng),,而ECC與RSA在相同安全強(qiáng)度下具有更快的速度和更低的存儲(chǔ)要求,更符合高實(shí)時(shí)性工業(yè)控制網(wǎng)絡(luò)的要求,。綜合AES和ECC的優(yōu)點(diǎn),,得到一種新的加密方案,其基本原理為:數(shù)據(jù)在Kerberos Client/Server雙方通信之前,,發(fā)送方隨機(jī)生成一個(gè)加密密鑰,,用AES算法對(duì)需傳送的數(shù)據(jù)加密。然后再用ECC算法對(duì)該密鑰進(jìn)行加密并實(shí)現(xiàn)數(shù)字簽名,。這樣接收方在接收到該密文和被加了密的密鑰后,,同樣用ECC解密出此隨機(jī)密鑰,再用此隨機(jī)密鑰對(duì)密文解密,。這樣的加密方案既有AES算法的快捷特點(diǎn),,又有ECC算法的保密性和方便性特點(diǎn),。
2.3 具體改進(jìn)方案
改進(jìn)后的Kerberos認(rèn)證過(guò)程如圖2所示,。
改進(jìn)后的Kerberos認(rèn)證過(guò)程如下:
(1)C->AS:C,TGS,,Pc,。
(2)AS->C:Cc,Ctgs,;Cc:{C,,Pc,T1}P-1ca,;Ctgs:{TGS,,Ptgs,T2}P-1ca,。
(3)C->TGS:TGS,,{Kr,Cc,,Authenticator,,T3}Ptgs;Authenticator:{C,,TGS,,Ptgs,,Kr,T3}P-1c,。
(4)TGS->C:TGT,,{C,TGS,,Kc,,tgs,T4}Kr,;TGT:{TGS,,C,Addr,,T5,,Lifetime5,Kc,,tgs}Ptgs,。
(5)C->TGS:S,TGT,,Authenticator1,;Authenticator1:{C,Addr,,TS3}Kc,,tgs。
(6)TGS->C:{Kc,,s}Kc,,tgs,Ts,;Ts:{S,,C,Addr,,TS4,,Lifetime4,Kc,,s}Ks,。
(7)C->S:S,Ts,,Authenticator2,;Authenticator2;{C,Addr,,TS5}Kc,,s。
(8)S->C:{TS5+1}Kc,,s,。
以上描述中,關(guān)鍵是對(duì)1.1節(jié)中的描述步驟(1)和(2)的改進(jìn),,修改后變成現(xiàn)在的(1)~(4)步,;而步驟(5)~(8)與1.1節(jié)中的步驟(3)~(6)一樣。這里主要對(duì)前四步進(jìn)行說(shuō)明:
(1)用戶發(fā)送自己的公鑰,、用戶名和TGS服務(wù)器名向CA請(qǐng)求自己和TGS的公鑰證書(shū),。
(2)CA檢查用戶身份合法后用自己的私鑰為用戶和TGS簽發(fā)公鑰證書(shū),證書(shū)中包含有用戶,、TGS的信息以及證書(shū)的簽發(fā)時(shí)間,。
(3)用戶收到公鑰證書(shū)后,用已由安全通道得到的CA的公鑰解密,,得到TGS的公鑰,。然后用TGS的公鑰加密報(bào)文向TGS發(fā)送,請(qǐng)求驗(yàn)證身份,,請(qǐng)求報(bào)文包括用戶公鑰證書(shū),、隨機(jī)產(chǎn)生的一次性會(huì)話密鑰Kr、時(shí)間截和證書(shū),。時(shí)間T3是該報(bào)文的產(chǎn)生時(shí)間,,TGS在收到該報(bào)文后,計(jì)算T3和收到報(bào)文時(shí)間的差值,,如果相差太大則拒絕接受該請(qǐng)求報(bào)文,,這樣做可以防止重放攻擊,。Kr用于TGS對(duì)應(yīng)答報(bào)文進(jìn)行加密,。證書(shū)用于驗(yàn)證用戶的身份。TGS收到用戶的請(qǐng)求報(bào)文后,,首先用自己的私鑰解密,,得到用戶公鑰證書(shū)、一次性會(huì)話密鑰Kr和證書(shū),。然后TGS用證書(shū)中的用戶公鑰對(duì)證書(shū)進(jìn)行解密,,用得到的信息驗(yàn)證用戶身份。
(4)TGS通過(guò)對(duì)用戶的身份驗(yàn)證后,,產(chǎn)生應(yīng)答報(bào)文,。應(yīng)答報(bào)文包括兩部分,一部分是訪問(wèn)TGS用的票據(jù)TGT,TGT與傳統(tǒng)Kerberos協(xié)議中的TGT完全相同,;另一部分是加密數(shù)據(jù),,包含用戶名、TGS服務(wù)器名,、用戶與TGS共享的會(huì)話密鑰以及認(rèn)證時(shí)間,,這些數(shù)據(jù)用一次性會(huì)話密鑰加密,用戶收到后,,就得到訪問(wèn)TGS的票據(jù)TGT,。用Kr對(duì)加密的數(shù)據(jù)解密后,就得到與TGS會(huì)話的密鑰Kc,、tgs,,這樣用戶就可以用TGT、Kc和tgs向TGS發(fā)送傳統(tǒng)的TGS請(qǐng)求,。
改進(jìn)后的Kerberos身份驗(yàn)證系統(tǒng)的安全性得到了極大提高,,如表3所示。
本文深入研究了新的Kerberos認(rèn)證協(xié)議規(guī)范,,指出了其局限性,。提出了在Kerberos協(xié)議中引入ECC+AES的數(shù)據(jù)傳輸加密的改進(jìn)方法,在一定程度上克服了傳統(tǒng)Kerberos認(rèn)證協(xié)議中密鑰管理困難,、容易受到口令攻擊和對(duì)時(shí)間同步性要求高的缺點(diǎn),,提高了Kerberos認(rèn)證協(xié)議的安全性,同時(shí)提高了身份認(rèn)證速度,,使其更符合工業(yè)控制網(wǎng)絡(luò)的高實(shí)時(shí)性要求,,可以更好地解決工業(yè)控制網(wǎng)絡(luò)的身份認(rèn)證問(wèn)題。
參考文獻(xiàn)
1 C Neuman.The kerberos network authentication service(V5).Internet RFC 4120,,July 2005
2 C Neuman.The kerberos network authentication service(V5).Internet RFC 1510,,September 1993
3 Frederick Butler,Iliano Cervesato,,Aaron D Jaggard et al. A formal analysis of some properties of kerberos 5 using MSR.IEEE COMPUTER SOCIETY,,2002;(11)
4 Ian Downnard.Public-key cryptography extensions into Kerberos.2002 IEEE POTENTIAL,,2003
5 K Raeburn.Encryption and Checksum Specifications for Kerberos 5.Internet RFC 3961,,F(xiàn)ebruary 2005
6 K Raeburn.Advanced encryption standard(AES) encryption for kerberos 5.Internet RFC 3962,F(xiàn)ebruary 2005
7 劉克龍,,卿斯?jié)h,,蒙 楊.一種利用公鑰體制改進(jìn)Kerberos協(xié)議的方法.軟件學(xué)報(bào),2001,;(12):874~877
8 莫 燕,,張玉清,,李學(xué)干.對(duì)Kerberos協(xié)議的攻擊及對(duì)策研究.計(jì)算機(jī)工程,2005,;(5):66~98
9 肖國(guó)鎮(zhèn),,白恩健,劉曉娟.AES密碼分析的若干新進(jìn)展.電子學(xué)報(bào),,2003,;(10):1549~1554
10 Joan Daemen Vincent Rijmen.高級(jí)加密標(biāo)準(zhǔn)(AES)算法-Rijndael的設(shè)計(jì).北京:清華大學(xué)出版社,2003