金鑰散發
秘密金鑰驗證技術不會說明客戶端和伺服器如何取得秘密 會話密鑰 彼此搭配使用。 如果他們是人,他們可以秘密見面,並同意密鑰。 但是,如果用戶端是工作站上執行的程式,而且伺服器是在網路伺服器上執行的服務,該方法將無法運作。
用戶端會想要與許多伺服器通訊,而且每個伺服器都需要不同的密鑰。 伺服器會與許多客戶端通訊,而且每個用戶端也需要不同的密鑰。 如果每個用戶端每個伺服器都需要不同的密鑰,而且每部伺服器對於每個用戶端都需要不同的密鑰,密鑰散發就會成為問題。 此外,在許多計算機上儲存和保護許多密鑰的需求會產生巨大的安全性風險。
Kerberos 通訊協定的名稱 建議其解決密鑰散發問題。 Kerberos(或 Cerberus)是希臘古典神話中的人物——一隻兇猛的三頭狗,他一直活著入侵者進入黑社會。 與神話防護一樣,Kerberos 通訊協定有三個前端:客戶端、伺服器,以及信任的第三方來調解它們。 此通訊協定中的受信任媒介是金鑰發佈中心 (KDC)。
KDC 是在實體安全伺服器上執行的服務。 它會為其領域的所有安全性主體維護帳戶信息的資料庫。 領域是 Windows 中網域的 Kerberos 對等專案。
除了每個安全性主體的其他資訊,KDC 會儲存只有主體和 KDC 已知的密碼編譯密鑰。 這是 主要金鑰 用於每個安全性主體與 KDC 之間的交換。 在 Kerberos 通訊協定的大部分實作中,此主要密鑰是使用安全性主體密碼中的 哈希 函式來衍生。
當用戶端想要建立與伺服器的安全連線時,用戶端會從將要求傳送至 KDC 開始,而不是傳送至想要連線的伺服器。 KDC 會為用戶端建立並傳送唯一的 會話密鑰, 客戶端和伺服器用來驗證彼此。 KDC 可以存取用戶端的主要金鑰和伺服器的主要金鑰。 KDC 會使用伺服器的主要金鑰來加密伺服器會話金鑰的複本,並使用用戶端的主要金鑰來加密客戶端的複本。
KDC 可以藉由將會話密鑰直接傳送給所涉及的每個安全性主體,以履行其作為信任媒介的角色,但實際上,基於許多原因,此程式將無法運作。 相反地,KDC 會將兩個加密的會話密鑰傳送至用戶端。 伺服器的工作階段金鑰包含在 工作階段票證中,。