14-4 Kerberos 認證系統簡介
14-4-1 Kerberos 認證系統簡介 『Kerberos 認證系統』(Kerberos Authentication System)是由麻省理工學院(M. I. T)發展出來的,其命名係來自希臘神話中看守地獄入口那條三頭狗 Kerberos。設計 Kerberos最主要的目的是要讓使用者能安全地存取網路上資源,也是目前網路使用最廣泛的技術。到目前為止,Kerberos 較常用的有兩個版本,版本 4(V4)[26, 49, 111] 目前還被廣泛使用中,但僅能使用於 TCP/IP 網路;版本 5(V5)已作了許多修正,使它更適合其他網路環境,並已制定成 RFC 1510 標準規範。 基本上,Kerberos 祇採用秘密鑰匙系統認證用戶端,所以每一個使用者都必須在 Kerberos 伺服器上建立帳號名稱,並利用使用者密碼所建立的『主密鑰』,來確認使用者與伺服器之間的身份。因此屬於較封閉的分散式系統應用,但目前已有許多應用系統,將公開鑰匙系統植入 Kerberos 之中,但僅限於客戶端身份認證而已。從認證技術而言,Kerberos 主要延伸許多 Needham-Schroeder 協定的技術,並加入時間戳記作為防止重播攻擊。正因如此,在 Kerberos 系統上,參與認證的工作站或伺服器之間都必須保持時序的同步。 之前我們所介紹的認證程序,大多侷限於使用者(透過工作站)與伺服器之間身份的認證問題、以及會議鑰匙的分配工作。然而,在 Kerberos 認證協定上並沒有刻意劃分使用者(人)或機器(伺服器或工作站),它對每一個參與認證的實體(人或機器)都一視同仁,稱之為『主角』(Principal),這種觀念通常比較適合分散式處理。 我們可意識得到,Kerberos 可能是未來封閉型分散式系統(譬如,電子化辦公室)認證的主流;至於開放型的分散式系統(如 Internet 網路應用),則較頃向於 PKI 認證系統(利用數位憑證);但也未必如此,目前許多封閉式系統(如 Windows 2000)已將 Kerberos 與 PKI 系統整合使用。基本上,Kerberos 的認證程序算是複雜的,本章之前介紹了許多認證協定的運作程序,主要為 Kerberos 鋪路;本節以介紹 Kerberos V4為主,有了第四版本的概念之後,下一節再介紹第五版本可就容易多了。 14-4-2 Kerberos 動機 無論採用何種認證協定,主要的目標是確認通訊雙方的身份、與分配雙方通訊所需的會議鑰匙。我們採用了極複雜的運作程序,是為了要防止攻擊者從中破壞正常交易,至於如何達成上述兩個目標,其實到目前為止,也很難找出十全十美的方法。首先將攻擊者的破壞技巧歸類如下:
之前所介紹的幾種認證協定,大多著重於防止重播攻擊。假設,先撇開重播攻擊的問題,我們將圖 14-1 (b) 的基本認證程序加入了網路位址,便如圖 14-7 所示。其中ADA表示客戶工作站的位址,我們來討論一下可能出現的問題:
圖 14-7 附加網路位址的門票
第二個問題較簡單,我們先來討論第一個問題。記得我們在 14-5 節介紹過(如圖 14-20 所示),KDC 的概念是將客戶認證(與建立會議鑰匙)的工作分配給 KDC 伺服器管理;如果確定身份無誤之後,便可以發給客戶通往伺服器的門票,然而客戶是否有權利存取某一伺服器,仍需仰賴原伺服器自行管理(如建立 ACL 表)。如果我們另外建立一個伺服器,作為過濾客戶是否可以使用某一個伺服器的權利,此伺服器稱為『門票核准伺服器』(Ticket-Granting Server, TGS);如果該客戶有權利存取某一伺服器,則 TGS 便發給予通往該伺服器的門票。至於客戶存取該伺服器的權限如何,還是保存在原伺服器上管理。如此一來,原來 KDC 的工作便僅限於客戶身份的認證而已,因此,又稱為『認證伺服器』(Authentication Server, AS)。也就是說,我們將 KDC 的工作分配給 AS 與 TGS 兩個伺服器來承擔,如此一來,便可以解決客戶只要輸入一次密碼的問題。 14-4-3 Kerberos 基本構想 圖 14-8 為 Kerberos 的基本構想,運作程序的簡單程序是:客戶利用自己的主密鑰向 AS 伺服器申請到一張通往 TGS 伺服器的門票(TicketTGS),再利用此門票向 TGS 伺服器申請一張通往某伺服器的門票(TicketB),客戶端再利用伺服器的門票向該伺服器要求服務。兩張門票分別為: TGS 門票:TicketTGS = EKtgs [IDA || ADA || IDTGS || TS1 || Lifetime1] 伺服器門票:TicketB = EKb [IDA || ADA || IDB || TS2 || Lifetime2] 其中 ID 與 AD 分別為身分識別與網路位址,TS 是時間戳記,Lifetime 為有效時間。接下來,我們來討論利用兩個伺服器的認證有何特性:(如圖 14-8 所示)
圖 14-8 Kerberos 的基本構想
門票都利用接收端的主密鑰加密著,譬如,客戶傳送給 TGS 門票便利用 TGS 的主密鑰(KTGS)加密著;另外。客戶傳送給伺服器的門票,也利用該伺服器(假設 Bob)的主密鑰(KB)加密著。客戶與攻擊者都無法窺視到門票的內容,當然無法冒充或竄改它。接下來的問題是有效期間要多長?如果太短的話,當門票逾時之後,客戶端必須再重新輸入密碼取得新的門票。但如果有效期間過長,客戶登出之後,攻擊者可以冒充它的帳戶來使用門票,之間取捨難定,不過一般大多定在 8 個小時左右。 我們瞭解圖 14-8 的基本構想之後,大略可以完成身份認證的問題。我們再將會議鑰匙分配的程序加入圖 14-8 中,並規範標準的加密演算法與門票的格式,便能制定出一個完整的認證協定,這就是建構 Kerberos 的基本構想。 |
翻轉工作室:粘添壽
資訊與網路安全技術
翻轉電子書系列:
|