巨瑜芳
中國礦業大學,江蘇 徐州 221000
Kerberos一種為網絡通信提供可信第三方服務的面向開放系統的認證機制,其設計目標是通過密鑰系統為客戶機/服務器應用程序提供強大的認證服務。該認證過程的實現不依賴于主機操作系統,無需基于主機地址的信任,不要求網絡上所有主機的物理安全,并假定網絡上傳送的數據包可以被任意地讀取、修改和插入數據。它通過傳統的密碼技術執行認證服務的。
Kerberos是由用戶,服務器,認證服務器(AS),票據授予服務器(TGS)等組成。整個的Kerberos認證過程中用到兩類憑證:票據和識別碼來驗證用戶的身份,兩種證書都需加密,但加密的密鑰不同。票據用來安全的在認證服務器和用戶請求的服務之間傳遞用戶的身份。識別碼則是提供用戶的信息與票據中的信息進行比較來驗證票據中的用戶就是他所聲稱的用戶。
Kerberos認證過程可分為3個階段:
1)客戶向認證服務器(AS)發送請求,要求得到某服務器的證書,然后AS將包含訪問票據授予服務器的票據以及請求的服務器的標識碼時間戳等信息發送給用戶作為響應。其中票據是用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)票據許可服務器的交互,用于獲取服務許可票據。用戶將請求的服務器的標識以及第一步得到的票據和自己的識別碼發送給TGS,TGS驗證用戶的信息并將用戶訪問請求服務器的密鑰KC,S,以及訪問請求服務器的票據發送給用戶。
(1)C → TGS :IDS‖Tickettgs‖AUC
(2)TGS → C :EKc,tgs[ KC,S‖IDS‖TS4‖TicketS]
其中:

3)用戶持第二步收到的票據向服務器請求服務。整個的驗證過程結束。

其中:

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