kerberos這一名詞**於希臘神話「三個頭的狗——地獄之門守護者」。
系統設計上採用客戶端/伺服器結構與des加密技術,並且能夠進行相互認證,即客戶端和伺服器端均可對對方進行身份認證。可以用於防止竊聽、防止replay攻擊、保護資料完整性等場合,是一種應用對稱金鑰體制進行金鑰管理的系統。
支援sso(single sign on),使用者只需輸入一次身份驗證資訊就可以憑藉此驗證獲得的票據(ticket-granting ticket)訪問多個服務。
由於在每個client和service之間建立了共享金鑰,使得該協議具有相當的安全性。
先看下圖:
這裡出現的角色有三個分別是:
其中kdc有兩個服務:
金鑰兩個:
第一步:
使用者傳送自己的使用者資訊給kdc,kdc訪問as服務,獲得tgt,並用金鑰a加密tgt以及乙個session key給使用者。使用者得到加密資料後,使用金鑰a解密得到tgt和session key(這裡簡稱為sk)。
其中,tgt用於第二步請求各種服務的tickets;sk主要用於service對client的身份鑑別,在步驟二中會體現。
第二步:
如圖:
1. client將之前獲得tgt和要請求的服務資訊(服務名等)傳送給kdc,認證使用者合法後,kdc中的tgs將sk(第一步中產生)和使用者名稱,使用者位址(ip),服務名,有效期, 時間戳一起包裝成乙個ticket,並用金鑰b加密,傳送給client;
2. 此時client沒有金鑰b所以他無法檢視ticket中的內容,於是client將ticket直接**給service。
3. 同時client將自己的使用者名稱,使用者位址(ip)打包成authenticator,用之前獲得的sk加密也傳送給service。
4. service 收到ticket後利用它與kdc之間的金鑰b將ticket中的資訊解密出來,從而獲得sk和使用者名稱,使用者位址(ip),服務名,有效期。然後再用sk將authenticator解密從而獲得使用者名稱,使用者位址(ip)將其與之前ticket中解密出來的使用者名稱,使用者位址(ip)做比較,從而驗證client的身份。
5. 如果service有返回結果,將其返回給client。
kerberos工作原理
最近調研了kerberos。看了網上學多關於kerberos的文章,我認為這篇文章比較好。這篇文章對麻省理工的 進行翻譯。該 以四幕話劇的形式緩緩道來,有點像 研究之美 通過兩個人的頭腦風暴講解kerberos的原理。一 使用kerberos進行驗證的原因 1.可靠 hadoop 本身並沒有認證功能...
kerberos工作原理
最近調研了kerberos。看了網上學多關於kerberos的文章,我認為這篇文章比較好。這篇文章對麻省理工的 進行翻譯。該 以四幕話劇的形式緩緩道來,有點像 研究之美 通過兩個人的頭腦風暴講解kerberos的原理。一 使用kerberos進行驗證的原因 1.可靠 hadoop 本身並沒有認證功能...
簡單理解 kerberos
實現過程 起始階段.傳送者和kdc之間進行聯絡,傳送者證明自己的身份,獲取tgt,sa kdc是什麼?在kerberos當中可信任第三方 ttp 扮演乙個特別重要的角色,在kerberos當中可信任第三方就是kdc 金鑰分發中心 如何證明自己的身份?傳送者傳送和kdc之間的通訊金鑰ka來進行驗證自己...