Kerberos:網絡認證協議
(Kerberos: Network Authentication Protocol)
Kerberos 是一種網絡認證協議,其設計目標是通過密鑰系統為客戶機 / 服務器應用程序提供強大的認證服務。該認證過程的實現不依賴于主機操作系統的認證,無需基于主機地址的信任,不要求網絡上所有主機的物理安全,并假定網絡上傳送的數據包可以被任意地讀取、修改和插入數據。在以上情況下, Kerberos 作為一種可信任的第三方認證服務,是通過傳統的密碼技術(如:共享密鑰)執行認證服務的。
認證過程具體如下:客戶機向認證服務器(AS)發送請求,要求得到某服務器的證書,然后 AS 的響應包含這些用客戶端密鑰加密的證書。證書的構成為: 1) 服務器 “ticket” ; 2) 一個臨時加密密鑰 (又稱為會話密鑰 “session key”) 。客戶機將 ticket (包括用服務器密鑰加密的客戶機身份和一份會話密鑰的拷貝)傳送到服務器上。會話密鑰可以(現已經由客戶機和服務器共享)用來認證客戶機或認證服務器,也可用來為通信雙方以后的通訊提供加密服務,或通過交換獨立子會話密鑰為通信雙方提供進一步的通信加密服務。
上述認證交換過程需要只讀方式訪問 Kerberos 數據庫。但有時,數據庫中的記錄必須進行修改,如添加新的規則或改變規則密鑰時。修改過程通過客戶機和第三方 Kerberos 服務器(Kerberos 管理器 KADM)間的協議完成。有關管理協議在此不作介紹。另外也有一種協議用于維護多份 Kerberos 數據庫的拷貝,這可以認為是執行過程中的細節問題,并且會不斷改變以適應各種不同數據庫技術。
協議結構
Kerberos 信息:
客戶機/服務器認證交換
信息方向 | 信息類型 |
客戶機向 Kerberos | KRB_AS_REQ |
Kerberos 向客戶機 | KRB_AS_REP或KRB_ERROR |
客戶機/服務器認證交換 |
信息方向 | 信息類型 |
客戶機向應用服務器 | KRB_AP_REQ |
[可選項] 應用服務器向客戶機 | KRB_AP_REP或 KRB_ERRORR |
票證授予服務(TGS)交換 |
信息方向 |
信息類型 |
客戶機向 Kerberos |
KRB_TGS_REQ |
Kerberos 向客戶機 |
KRB_TGS_REP或KRB_ERROR |
KRB_SAFE 交換 KRB_PRIV 交換 KRB_CRED 交換 |