資訊與網路安全技術:第十四章 Kerberos 認證系統 上一頁 |
14-6 Kerberos V5 認證系統
隨著 Kerberos 漸漸普遍,系統亦不斷的擴張下,第四版本已漸不符新環境的需求,Kerberos V5 因而被發展出來,且已被發佈為 RFC 1510,許多應用系統也已率先安裝該版本,用來處理客戶與系統之間的認證問題。 14-6-1 Kerberos V5 系統簡介 制定 V5 的主要目的是為了解決 V4 兩個缺點:環境與技術上的缺點 [86],以下分別說明之:
14-6-2 Kerberos V5 運作程序 大致上,版本 V5 的運作程序與 V4 相同,祇不過在訊息方面增加一些參數;V5 的運作程序如圖 14-12 所示(請先參考 V4 的運作程序,圖 14-9),在此先討論增加的那些參數:
圖 14-12 Kerberos V5 協定之運作程序 版本 V5 將各種訊息都給予一個特殊的名稱(如圖 14-12 所示),並把『認證伺服器』(Authentication Server, AS)所授與通往『門票核准伺服器』(Ticket- Granting Server, TGS)的門票,稱之為『門票核准票』(Ticket-Granting Ticket, TGT),亦將TGS 所發行通往應用伺服器的門票,稱之為『服務門票』(Service Ticket, ST)。我們以圖 14-12 來說明其特殊功能:
TicketTGS = EKtgs [Flages || KA, TGS || RealmA || IDA || Times || Authen_Data]
TicketB = EKb [Flages || KA, B || RealmA || IDA || Times || Authen_Data] Authen_1A = EKa, tgs [IDA || RealmA || TS1]
Authen_2A = EKa, b [IDA || RealmA || TS2 || Subkey || Seq#] 14-6-3 Ticket 旗號 無論是 TGT 或 ST 門票都如圖 14-13 的格式,在 RFC 1510 中是利用 ASN.1 語法所描述;我們用圖形來描述它,或許能讓讀者更容易接受。未加密的部分包含有:版本(Version)、領域(Realm)、持有者名稱(Principal Name);其它加密的參數已在前面介紹過,這裡不再重複。至於『門票旗號』(Ticket Flags)是作為表示該門票的屬性,以位元設定(True 或 False)表示某一功能的啟動否。較重要的旗號有:
圖 14-13 門票的格式
14-6-4 安全機制選項 Kerberos V4 的加密演算法係採用非標準的 DES 模式 —『傳導式密文區塊串接』(Propagating Cipher Block Chaining, PCBC)模式,並已證明該模式不夠安全 [84]。Kerberos V5 提供選項欄位,可讓客戶依照傳輸資料安全性的需求,協議不同的密碼系統,並且這些密碼都屬於標準規範,較容易與其他應用系統銜接。Kerberos 將安全性區分為:『檢查集』(Checksum)與『加密系統』(Encryption)等兩個層次,其中檢查集僅包含完整性功能,加密系統則包含隱密性與完整性功能。 【(A)檢查集】 目前 Kerberos V5(RFC 1510,1993 年)並沒有將較新的演算法加入選項之中,規範內的完整性檢查的標準規範有:
由此可見,Kerberos V5 也不例外,大多以 MAC(Message Authentication Code) 來製作完整性檢查的認證碼(除了 CRC-32 之外)。但為了增加複雜度,V5 將每一筆訊息之前加入一個『混亂碼』(Confounder),再經過雜湊演算法計算,同時將此混亂碼一併傳送給對方。 我們以 RSA-MD5-DES 為範例,來說明產生完整性檢查碼的方法與認證步驟。MAC 產生方法如下:
接收者收到訊息之後,如何利用訊息中的 MAC 來確認訊息完整性,步驟如下:
由上述的範例可以看出,V5 的安全性比 V4 的 PCBC 安全性高許多。 【(B)加密系統】 Kerberos V5 的加密系統(Encryption)亦包含檢查碼(Checksum),所以除了提供隱密性功能,亦包含完整性檢查的功能;在 RFC 1510 上規範有下列加密系統:
基本上,還是以 DES 加密系統的 CBC 操作模式為基礎(請參考 2-7-2 節介紹);另外,加入完整性檢查有 CRC(Cyclic Redundancy Check)[3]、MD4 與 MD5 等演算法。 接下來,我們來探討 Kerberos 加密系統的製作方法,步驟如下:
其中 Checksum 欄位可能是 32 bits(CRC-32)或 128 bits(MD4、MD5);Padding 欄位是將整個訊息補滿 64 bits 倍數的亂數。
雖然目前 Kerberos V5 並未將安全性較高的加密系統(如 ASE)或 MAC 演算法(如 SHA-1)加入規範之中,但我們相信這些系統應該漸漸會被植入 V5 系統之內。 14-7 結論 用戶認證算是比較複雜的運作系統,主要目的是要確認對方的身份、以及分配會議鑰匙;亦是,經過認證身份之後,再依照所分配的會議鑰匙來通訊。因此,一般安全性的通訊,可將通訊連線分為兩個階段,如圖 14-14 所示。第一階段係利用使用者主密鑰(KA、或稱共享密鑰)或公開鑰匙來確認身份。參與認證工作的系統可以是一個專屬系統(如 Kerberos)、或是將認證協定植入應用系統內(如 IKE 協定,第十七章介紹),由應用系統自行處理。經過第一階段處理無誤之後,使用者與應用伺服器兩者已取得會議鑰匙(KS),再進入第二階段處理。然而,第二階段主要採秘密鑰匙系統作傳輸資料,如此才可以提高傳輸效率,既然所分配的會議鑰匙可能只使用一次(或短時間使用),攻擊者欲於短時間內破解會議鑰匙,談何容易。此外,第二階段也許會採用不同的密碼系統(如 DES、ASE 或 RSA),各種密碼系統的鑰匙長度也不一樣,因此,認證系統在分配會議鑰匙時,應該會考慮到鑰匙的長度。但為了能合乎不同系統的需求,一般認證系統所分配鑰匙的長度都取較高位元(如 128 bits);至於如何由此較長的鑰匙中,擷取出所需要會議鑰匙的長度(如 64 bits),可依照各應用系統的協定來規劃。
圖 14-14 安全性的通訊 |
翻轉工作室:粘添壽
資訊與網路安全技術
翻轉電子書系列:
|