Kerberos認證流程簡述
前言
Kerberos這個名字來源于希臘神話,是冥界守護神獸的名字。Kerberos是一個三頭怪獸,之所以用它來命名一種完全認證協(xié)議,是因為整個認證過程涉及到三方:客戶端、服務端和KDC(Key Distribution Center)。
Kerberos實際上是一種基于票據(jù)(Ticket)的認證方式。客戶端要訪問服務器的資源,需要首先購買服務端認可的票據(jù)。但是這張票不能直接購買,需要一張認購權證,這張認購權證和進入服務器的入場券均有KDC發(fā)售。
前提條件
Client與KDC, KDC與Service 在協(xié)議工作前已經(jīng)有了兩兩共享密鑰。
認證過程
1.???? 獲得“認購權證”
認購權證有個專有的名稱——TGT(Ticket Granting Ticket),而TGT的是KDC一個重要的服務——認證服務(KAS:Kerberos Authentication Service)。
當某個用戶通過輸入域帳號和密碼試圖登錄某臺主機的時候,本機的Kerberos服務會向KDC的認證服務發(fā)送一個認證請求。該請求主要包括兩部分內(nèi)容,明文形式的用戶名和經(jīng)過加密的認證單(可以理解為僅限于驗證雙反預先知曉的內(nèi)容,相當于聯(lián)絡暗號)用于證明訪問者身份。
當KDC接收到請求之后,通過AD獲取該用戶的信息。通過獲取的密碼信息生成一個秘鑰對認證單進行解密。如果解密后的內(nèi)容和已知的內(nèi)容一致,則證明請求者提供的密碼正確,即確定了登錄者的真實身份。
KAS成功認證對方的身份之后,會先生成一個用于確保該用戶和KDC之間通信安全的會話秘鑰——Logon Session Key,并采用該用戶的秘鑰進行加密。KAS接著為該用戶創(chuàng)建“認購權證”——TGT。TGT主要包含兩方面的內(nèi)容:用戶相關信息和Logon Session Key,而整個TGT則通過KDC自己的密鑰(TGS Key,此密鑰只有認證服務器和TGS知道)進行加密。最終,被不同密鑰加密的Logon Session Key和TGT返回給客戶端。
2.? 通過“認購權證”購買“入場券”
客戶將第一個報文解密得到會話密鑰Logon Session Key,然后生成一個認證單(Authenticator),包括客戶實體名、地址及時間印記,并用會話密鑰Logon Session Key對認證單進行加密。
然后,向TGS發(fā)出請求,申請接入某一目標服務器的門票(Ticket)。此請求包括目標服務名稱、收到Kerberos發(fā)來的加過密的TGT以及加密的認證單。
TGS用其密鑰(TGS Key)對TGT進行解密,使用TGT中的會話密鑰Logon Session Key對認證單進行解密。然后將認證單中的信息與TGT中的信息進行比較。此時,TGS產(chǎn)生新的會話密鑰Service Session Key供客戶實體與目標服務器使用,利用客戶實體和TGS用的會話密鑰Logon Session Key將新的會話密鑰Service Session Key加密;還將新的會話密鑰Service Session Key加入客戶向該服務器提交的有效門票之中,門票中還包括客戶實體名、網(wǎng)絡地址、服務器名、時間印記、時限等,并用目標服務器的秘密密鑰將此門票加密;
然后將這兩個報文發(fā)送給客戶
3.? 憑票入場
客戶將接收到的報文使用Logon Session Key解密后,獲得與目標服務器共用的會話密鑰Service Session Key。這時,客戶制作一個新的認證單,并用獲得的Service Session Key會話密鑰對該認證單進行加密。將加密的認證單和從TGS收到的門票一起發(fā)送給目標服務器。由于此認證單有會話密鑰加密的明文信息,從而證明發(fā)信人知道該密鑰。
服務器在接收到請求之后,先通過自己密碼派生的秘鑰解密門票,并從中提取Service Session Key。然后通過提取出來的Service Session Key解密Authenticator,進而驗證了客戶端的真實身份。
MapReduce服務
版權聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權內(nèi)容。
版權聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權內(nèi)容。