巨瑜芳
中國(guó)礦業(yè)大學(xué),江蘇 徐州 221000
Kerberos一種為網(wǎng)絡(luò)通信提供可信第三方服務(wù)的面向開放系統(tǒng)的認(rèn)證機(jī)制,其設(shè)計(jì)目標(biāo)是通過密鑰系統(tǒng)為客戶機(jī)/服務(wù)器應(yīng)用程序提供強(qiáng)大的認(rèn)證服務(wù)。該認(rèn)證過程的實(shí)現(xiàn)不依賴于主機(jī)操作系統(tǒng),無(wú)需基于主機(jī)地址的信任,不要求網(wǎng)絡(luò)上所有主機(jī)的物理安全,并假定網(wǎng)絡(luò)上傳送的數(shù)據(jù)包可以被任意地讀取、修改和插入數(shù)據(jù)。它通過傳統(tǒng)的密碼技術(shù)執(zhí)行認(rèn)證服務(wù)的。
Kerberos是由用戶,服務(wù)器,認(rèn)證服務(wù)器(AS),票據(jù)授予服務(wù)器(TGS)等組成。整個(gè)的Kerberos認(rèn)證過程中用到兩類憑證:票據(jù)和識(shí)別碼來(lái)驗(yàn)證用戶的身份,兩種證書都需加密,但加密的密鑰不同。票據(jù)用來(lái)安全的在認(rèn)證服務(wù)器和用戶請(qǐng)求的服務(wù)之間傳遞用戶的身份。識(shí)別碼則是提供用戶的信息與票據(jù)中的信息進(jìn)行比較來(lái)驗(yàn)證票據(jù)中的用戶就是他所聲稱的用戶。
Kerberos認(rèn)證過程可分為3個(gè)階段:
1)客戶向認(rèn)證服務(wù)器(AS)發(fā)送請(qǐng)求,要求得到某服務(wù)器的證書,然后AS將包含訪問票據(jù)授予服務(wù)器的票據(jù)以及請(qǐng)求的服務(wù)器的標(biāo)識(shí)碼時(shí)間戳等信息發(fā)送給用戶作為響應(yīng)。其中票據(jù)是用TGS的公鑰加密。
(1)C → AS :IDC‖IDtgs‖TS1
(2)AS → C :EKc[ KC,tgs‖IDtgs‖TS2‖LT2‖Tickettgs]
其中 :Tickettgs=EKtgs[ KC,tgs‖IDC‖ADC‖IDtgs‖TS2‖LT2]
2)票據(jù)許可服務(wù)器的交互,用于獲取服務(wù)許可票據(jù)。用戶將請(qǐng)求的服務(wù)器的標(biāo)識(shí)以及第一步得到的票據(jù)和自己的識(shí)別碼發(fā)送給TGS,TGS驗(yàn)證用戶的信息并將用戶訪問請(qǐng)求服務(wù)器的密鑰KC,S,以及訪問請(qǐng)求服務(wù)器的票據(jù)發(fā)送給用戶。
(1)C → TGS :IDS‖Tickettgs‖AUC
(2)TGS → C :EKc,tgs[ KC,S‖IDS‖TS4‖TicketS]
其中:

3)用戶持第二步收到的票據(jù)向服務(wù)器請(qǐng)求服務(wù)。整個(gè)的驗(yàn)證過程結(jié)束。

其中:

其中ID:用戶標(biāo)識(shí),AD:用戶網(wǎng)絡(luò)地址,TS:時(shí)間戳,LT:生存時(shí)間,Ka:a的私有密鑰,Ka,b:a,b的會(huì)話密鑰。
但是Kerberos認(rèn)證協(xié)議還存在一定的局限性
1) 口令猜測(cè)攻擊。用戶聯(lián)機(jī)時(shí)通過用戶平臺(tái)鍵入口令獲得與認(rèn)證服務(wù)器共享的密鑰。口令很容易被竊聽和截取,入侵者可以記錄下聯(lián)機(jī)會(huì)話,通過計(jì)算密鑰分析記錄下的會(huì)話進(jìn)行口令猜測(cè)攻擊。它使用DES作為協(xié)議的基礎(chǔ),這就帶來(lái)了密鑰交換存儲(chǔ)以及管理的困難,N個(gè)用戶想同時(shí)通信,就需要N*(N-1)/2個(gè)密鑰,沒有提供有效抵御口令猜測(cè)攻擊的手段,同時(shí)還存在鐘同步問題。
2)系統(tǒng)程序的安全性、完整性問題。實(shí)際上,最嚴(yán)重的攻擊是惡意軟件攻擊。Kerberos認(rèn)證協(xié)議依賴于Kerberos軟件的絕對(duì)可信,而攻擊者可以用執(zhí)行Kerberos協(xié)議和記錄用戶口令的軟件來(lái)代替所有用戶的Kerberos軟件,達(dá)到攻擊目的。如果裝有Kerberos的平臺(tái)的安全遭到損害,Kerberos的安全性也將部分或全部喪失。
針對(duì)以上問題可通過在終端平臺(tái)加入TPM(TPM是一個(gè)含有密碼運(yùn)算部件和存儲(chǔ)部件的小型片上的系統(tǒng),由CPU、存儲(chǔ)器、I/O、密碼運(yùn)算器、隨機(jī)數(shù)產(chǎn)生器和嵌入式操作系統(tǒng)等部件組成),使得在平臺(tái)向AS請(qǐng)求Kerberos認(rèn)證時(shí),不需要輸入用戶口令,而是對(duì)平臺(tái)的可信測(cè)量值用AIK私鑰進(jìn)行簽名,AS通過向可信第三方Privacy–CA驗(yàn)證用戶平臺(tái)的簽名,并把平臺(tái)提供的平臺(tái)可信性測(cè)量值與Kerberos認(rèn)證系統(tǒng)中保存的該平臺(tái)的可信測(cè)量值比較,若一致,則通過認(rèn)證,否則拒絕。這樣避免了口令猜測(cè)攻擊,并且保證終端平臺(tái)的完整性,沒有受到惡意軟件的攻擊。
用TPM增強(qiáng)Kerberos安全性的步驟如下:
首先,建立一個(gè)信任根:信任根的可信性由物理安全和管理安全確保。
其次,建立一條信任鏈:從信任根開始到硬件平臺(tái)、到BIOS、到操作系統(tǒng),一級(jí)測(cè)量認(rèn)證一級(jí),一級(jí)信任一級(jí),從而把這種信任擴(kuò)展到整個(gè)計(jì)算機(jī)系統(tǒng)。此過程中的日志將會(huì)被存儲(chǔ)到存儲(chǔ)器中,每一步的測(cè)量值將會(huì)存儲(chǔ)到TPM中。最后,把日志及TPM中的各種測(cè)量值報(bào)告給操作系統(tǒng)(OS),由操作系統(tǒng)綜合日志及測(cè)量值判斷此平臺(tái)是否符合可信標(biāo)準(zhǔn),若可信,再把這種信任傳遞到應(yīng)用,最后傳遞到Kerberos認(rèn)證的網(wǎng)絡(luò)中。
通過向Kerberos認(rèn)證中心嵌入TPM,使得通過Kerberos認(rèn)證的用戶平臺(tái)進(jìn)入網(wǎng)絡(luò)時(shí)都是可信的,并且加強(qiáng)了Kerberos認(rèn)證時(shí)無(wú)條件信任的第三方Kerberos認(rèn)證中心的安全性。為Kerberos認(rèn)證協(xié)議的廣泛應(yīng)用提供了強(qiáng)有力的技術(shù)支持。
[1]曹天杰,張永平,畢方明.計(jì)算機(jī)系統(tǒng)安全.第2版.高等教育出版社,2009.
[2]文鐵華,谷士文.增強(qiáng)Kerberos協(xié)議安全性的改進(jìn)方案2003.
[3]RFC1510-The Kerberos NetWork AuthenticationService(V5).