金鑰散發
秘密金鑰驗證技術不會說明用戶端和伺服器如何取得秘密 工作階段金鑰 ,以彼此搭配使用。 如果他們是人員,他們可以在秘密中開會,並同意金鑰。 但是,如果用戶端是在工作站上執行的程式,而伺服器是在網路伺服器上執行的服務,該方法將無法運作。
用戶端會想要與許多伺服器通訊,而且每個伺服器都需要不同的金鑰。 伺服器會與許多用戶端通訊,而且每個用戶端也需要不同的金鑰。 如果每個用戶端需要每個伺服器的不同金鑰,而且每部伺服器都需要不同的金鑰,則金鑰散發會變成問題。 此外,在多部電腦上儲存和保護許多金鑰的需求,會產生極大的安全性風險。
Kerberos 通訊協定的名稱會建議其金鑰散發問題的解決方案。 Kerberos (或 Cerberus) 是傳統希臘文中的一個圖,這是一隻保持三頭狗的狗,讓他無法進入下界。 就像安全防護一樣,Kerberos 通訊協定有三個頭:用戶端、伺服器,以及信任的協力廠商,以在兩者之間進行媒體處理。 此通訊協定中的受信任媒介是金鑰發佈中心 (KDC) 。
KDC 是實體安全伺服器上執行的服務。 它會為其領域中的所有 安全性主體 維護具有帳戶資訊的資料庫。 領域是 Windows 中網域的 Kerberos 對等專案。
除了每個安全性主體的其他資訊之外,KDC 只會儲存主體和 KDC 已知的密碼編譯金鑰。 這是每個安全性主體與 KDC 之間交換時所使用的 主要金鑰 。 在 Kerberos 通訊協定的大部分實作中,此主要金鑰是使用安全性主體密碼中的 雜湊 函式來衍生。
當用戶端想要建立與伺服器的安全連線時,用戶端會從將要求傳送至 KDC 開始,而不是傳送至想要連線的伺服器。 KDC 會建立並傳送給用戶端的唯一 工作階段金鑰 ,供用戶端和伺服器用來彼此驗證。 KDC 可以存取用戶端的主要金鑰和伺服器的主要金鑰。 KDC 會使用伺服器的主要金鑰來加密伺服器工作階段金鑰的複本,並使用用戶端的主要金鑰來加密用戶端的複本。
KDC 可能會直接將工作階段金鑰傳送給涉及的每個安全性主體,但實際上,基於許多原因,此程式將無法運作,以作為信任的媒介。 相反地,KDC 會將這兩個加密的工作階段金鑰傳送給用戶端。 伺服器的工作階段金鑰包含在 會話票證中。