跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
Taiwan Tongues 台語維基
搜尋
搜尋
外觀
建立帳號
登入
個人工具
建立帳號
登入
檢視 Kerberos 的原始碼
頁面
討論
臺灣正體
閱讀
檢視原始碼
檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀
檢視原始碼
檢視歷史
一般
連結至此的頁面
相關變更
特殊頁面
頁面資訊
外觀
移至側邊欄
隱藏
←
Kerberos
由於以下原因,您無權編輯此頁面:
您請求的操作只有這些群組的使用者能使用:
使用者
、taigi-reviewer、apibot
您可以檢視並複製此頁面的原始碼。
'''Kerberos'''(/ ˈkərbərəs /)是一種電腦網路授權協定,用來佇非安全網路內底,對個人通信以安全的手段進行身份認證。這个詞閣指麻省理工學院為這个協定開發的一套電腦軟體。軟體的設計採用客戶捀 / 侍服器結構,並且會當進行互相認證,即客戶捀和侍服器捀均會當對方進行身份認證。會當用於防止竊聽、防止重放攻擊、保護資料完整性等場合,是一種應用對稱金鎖體制進行金鎖管理的系統。Kerberos 的擴充產品也使用公開金鎖加密方法進行認證。 當有 N 個人使用這个系統的時陣,為確保在任意兩个人之間進行秘密對話,系統至少儲存有伊佮逐个人的共享金鎖,所需要的上無對談金鎖數為 N 個。 ==歷史== 麻省理工學院研發 Kerberos 協定來保護雅典娜工程(Project Athena)提供的網路侍服器。這个協定以希臘神話中的人物 Kerberos(抑是講 Cerberus)號名,伊咧希臘神話中是 Hades 的一條歹猛的三頭保衛神犬。這馬該協定存在一寡版本,版本一爿三攏干焦麻省理工內部發行。 Kerberos 版本四的主要設計者 Steve Miller 和 Clifford Neuman,佇一九八空年代尾期發佈這个版本。這个版本主要針對雅典娜工程。版本五由 John Kohl 和 Clifford Neuman 設計的,佇咧一九九三年作為 RFC 一千五百十頒布(佇二空空五年由 RFC 四千一百二十取代), 目的是佇咧克服版本四的局限性佮安全問題。 麻省理工佇咧作權允准的狀況之下,來製造一个 Kerberos 的免錢實現工具,這種情形類似 BSD。佇二空空七年,麻省理工組成一个 Kerberos 協會,以此推動 Kerberos 的繼續發展。 因為使用資料加密標準(DES)加密演算法(用五十六 bit 金鎖), 美國出口管制當局共 Kerberos 歸類做軍需品,並禁止其出口。一个非美國設計的 Kerberos 版本四的實現工具 KTH-KRB 由瑞典皇家工學院研製,伊予這套系統佇美國更加改密碼出口管理條例進前(大約是佇二空空年), 佇美國境外就會當使用。瑞典的實現工具是一个叫做 eBones 的版本,而且 eBones 對麻省理工對外發行的所在 Kerberos 版本四的修補程式九的 Bones(跳過加密公式佮對𪜶的函式呼叫)。 遮一定程度決定 Kerberos 是按怎無予人叫做 eBones 版。Kerberos 版本五的實現工具,Heimdal,基本上嘛是由發佈 KTH-KRB 的仝一組人發佈。 佇二空空五年,網際網路工程任務組(IETF)Kerberos 工作小組更新矣規範,更新包括: * " Kerberos 五加密佮校驗佮規範 "(RFC 三千九百六十一)。 * " Kerberos 五進階加密標準(AES)加密 "(RFC 三千九百六十二)。 * " Kerberos 網路認證服務(版本五)"(RFC 四千二十)— Kerberos 版本的五規範的新版本。這个版本廢棄早前的 RFC 一千五百十,用較幼化佮明確的解說說說明協定的一寡細節佮使用方法。 * " Kerberos 五通用安全服務應用程式介面(GSS-API)機制:版本二 "(RFC 四千一百二十一)— 通用安全服務應用程式介面(GSS-API)規範的新版本。 Windows 兩千和後壁的作業系統使用 Kerberos 為其預設認證方法。RFC 三千兩百四十四 " 微軟 Windows 兩千 Kerberos 變閣較密碼佮設定密碼協定 " 記錄整理一寡軟軟著 Kerberos 協定軟體套件的添加。RFC 四千七百五十七記錄整理微軟著 RC 四密碼的使用。雖然微軟仔使用 Kerberos 協定,煞並無用麻省理工的軟體。 蘋果的 Mac OS X 嘛使用 Kerberos 的客戶佮侍服器版本。Red Hat Enterprise Linux 四佮後續的作業系統使用 Kerberos 的客戶佮侍服器版本。 ==基本是咧講== Kerberos 使用 Needham-Schroeder 協定做伊的基礎。伊使用一个由兩个獨立的邏輯的部份:認證侍服器佮票據授權侍服器組成的 " 可信賴的第三方 ",術語叫金鎖分發中心(KDC)。 Kerberos 工作咧用證明使用者身份的 " 票據 " 的基礎頂面。 KDC 持有一个金鎖資料庫;逐个網路實體—— 無論是客戶猶是侍服器—— 共享一套干焦伊家己佮 KDC 知影的金鎖。金鎖的內容用佇證明實體的身份。對兩个實體間的通批,KDC 產生一个對談金鎖,用來加密𪜶之間的互相資訊。 ==協定內容== 協定的安全主要依賴賴參加者對時間的鬆散仝步佮短周期的號做 Kerberos 票據的認證聲明。 下跤是對這个協定的一个簡化描述,將使用以下縮寫: * AS(Authentication Server)=認證侍服器 * KDC(Key Distribution Center)=金鎖分發中心 * TGT(Ticket Granting Ticket)=票據授權票據,票據的票據 * TGS(Ticket Granting Server)=票據授權侍服器 * SS(Service Server)=特定服務提供捀客戶捀使用者傳送家己的使用者名稱到 KDC 侍服器之向 AS 服務進行認證。KDC 侍服器會生做相應的 TGT 票據,拍上時間鑿,佇本地資料庫當中走揣應該使用者的密碼,閣用這个密碼著 TGT 進行加密,將結果發還予客戶捀使用者。該操作干焦佇使用者登入抑是 kinit 申請的時陣來進行。 客戶捀收著該資訊,閣使用家己的密碼來進行解密了後,就用會著 TGT 票據矣。這乎 TGT 會佇一段時間了後失效,嘛有一寡程式(session manager)會當佇使用者登陸期間進行自動更新。 做客戶捀使用者需要使用一寡特定服務(Kerberos 術語內底用「principal」表示)時,該客戶捀就傳送 TGT 到 KDC 侍服器內底 TGS 服務。做該使用者的 TGT 驗證通過而且其有權存取所申請的服務的時陣,TGS 服務會生做一个愛服務所對應的 ticket 和 session key,閣有行還予客戶捀。客戶捀共服務請求佮該 ticket 做伙傳送予相應的侍服器捀。具體的流程請看下跤的描述。 其在網路通訊協定中屬於顯示層。 簡單講,使用者先用共享金鎖對某認證侍服器得著一个身分證明。隨後,使用者使用這个身份證明和 SS 通批,攏無使用共享金鎖。 ==具體的流程== ( 注意:現流程使用矣嘿稱加密;此流程發生在某'''一个'''Kerberos'''領域'''中;小寫字母 c , d , e , g 是客戶捀發出的訊息,大寫字母 A , B , E , F , H 是各个侍服器發轉來的訊息。) 首先,使用者使用客戶捀(使用者家己的機器)上的程式進行登入: 一 . 使用者輸入使用者 ID 佮密碼到客戶捀。 二 . 客戶端程式執行一个單向函式(大多數攏是雜鬥)共密碼轉換做金鎖,這就是客戶捀(使用者)的「使用者金鎖」( user's secret key )。 隨後,'''客戶捀認證'''(客戶捀 ( Client ) 對認證侍服器 ( AS ) 取得票據授權票據(TGT)): 一 . 客戶捀向 AS 傳送一條明文訊息,申請基於這个使用者所應該有的服務,比如講「使用者 Sunny 欲請求服務」(Sunny 是使用者 ID)。(注意:使用者不向 AS 傳送「使用者金鎖」,也無傳送密碼)該 AS 會當對本地的資料庫內底查詢著愛申請使用者的密碼,並通過相仝途徑轉換做相仝的「使用者金鎖」。 二 . AS 檢查該使用者 ID 敢是佇本地的資料庫內底,若使用者存在倒轉來二條訊息: * 訊息 A:'''客戶捀 / TGS 對談金鎖 ( Client / TGS Session Key )'''(該對講金鎖用佇咧將來客戶捀佮 TGS 的通批(對談)上), 通過「使用者金鎖」進行加密 * 訊息 B:'''TGT'''(TGT 包括講:訊息 A 中的「客戶捀 / TGS 對談金鎖」,使用者 ID,使用者網址,TGT 有效期), 通過「TGS 金鎖」( TGS's secret key ) 進行加密三 . 一旦客戶捀收著訊息 A 佮訊息 B,客戶捀首先來試看覓家己的「使用者金鎖」解密訊息 A,若使用者輸入的密碼佮 AS 資料庫內底的密碼無符,是袂當成功解密訊息 A。輸入正確的密碼並通過隨之生成的「使用者金鎖」才有法度解密訊息 A,對會到「客戶捀 / TGS 對談金鎖」。(注意:客戶捀袂當解密訊息 B,因為乎 B 是用「TGS 金鎖」加密的)。 有矣「客戶捀 / TGS 對談金鎖」,客戶捀就足好的 TGS 進行認證矣。 然後,'''服務授權'''(客戶捀對 TGS 取得票據 ( client-to-server ticket )): 一 . 當客戶捀需要申請特定的服務的時陣,其向 TGS 傳送以下二條訊息: * 訊息 c:即訊息 B 的內容(「 TGS 金鎖」加密了後的時陣 TGT), 閣想欲取得的服務的服務 ID(注意:毋是使用者 ID) * 訊息 d:'''認證符 ( Authenticator )'''(Authenticator 包括講:使用者 ID,時間抽), 通過「客戶捀 / TGS 對談金鎖」進行加密二 . 收著訊息 c 佮訊息 d 後,TGS 第一呢先檢查 KDC 資料庫內底敢有存在需要的服務,走揣著了後,TGS 用家己的「TGS 金鎖」解密訊息 c 中的訊息 B(也就是講 TGT), 對進前生的「客戶捀 / TGS 對談金鎖」。 TGS 閣用這个對談金鎖解密訊息 d 得著包含使用者 ID 佮時間咧揬的 Authenticator,並著 TGT 和 Authenticator 進行驗證,驗證通過了後倒轉來二條訊息: * 訊息 E:'''客戶捀-侍服器票據 ( client-to-server ticket )'''(該票據包括:「 客戶捀 / SS 對談金鎖」( Client / Server Session Key), 使用者 ID,使用者網址,有效期), 提供該服務的「侍服器金鎖」( service's secret key )'''進行加密''' * 訊息 F:'''客戶捀 / SS 對談金鎖 ( Client / Server Session Key )'''(該對講金鎖用佇咧將來客戶捀佮 SS 的通批(對談)上), 通過「客戶捀 / TGS 對談金鎖」進行加密三 . 客戶捀收著遮的訊息了後,用「客戶捀 / TGS 對談金鎖」解密訊息 F,得著「客戶捀 / SS 對談金鎖」。(注意:客戶捀袂當解密訊息 E,因為乎 E 是用「侍服器金鎖」加密的)。 最後咧,'''服務請求'''(客戶捀對 SS 取得服務): 一 . 得著「客戶捀 / SS 對談金鎖」了後,客戶捀就會使使用侍服器提供的服務矣。客戶捀向指定 SS 發出二條訊息: * 訊息 e:即上一步內底的訊息 E「客戶捀-侍服器票據」,已經通過「侍服器金鎖」進行加密 * 訊息 g:新的'''Authenticator'''(包括講:使用者 ID,時間抽), 通過「客戶捀 / SS 對談金鎖」進行加密二 . SS 用家己的「侍服器金鎖」解密訊息 e 對會到 TGS 提供的「客戶捀 / SS 對談金鎖」。 閣用這个對談金鎖解密訊息 g 得著 Authenticator,(仝 TGS 仝款)對票據和 Authenticator 進行驗證,驗證通過則倒轉來一條訊息(確認函:確證的身份真實,樂於提供服務): * 訊息 H:'''新時間咧揬'''(新時間咧揬是:客戶捀傳送的時間內底揬加一,v 已經取消這一做法), 通過「客戶捀 / SS 對談金鎖」進行加密三 . 客戶捀通過「客戶捀 / SS 對談金鎖」解密訊息 H,得著新時間揬並驗證其敢有正確。驗證通過的話是客戶捀會當信賴 SS,並向 SS 傳送的服務請求。 四 . SS 向客戶捀提供相應的服務。 ==缺陷==* 單點故障:伊需要中心侍服器的繼續回應。當 Kerberos 服務延機時,就無人會當連接著侍服器。這缺陷會當通過使用複合 Kerberos 侍服器佮缺失認證的機制彌補。 * Kerberos 要求參與通信的主機的時鐘仝步。票據具有一定有效期,所以,若主機的時鐘佮 Kerberos 侍服器的時鐘無仝步,認證會失敗。預設定要求時鐘的時間相差無超過十分鐘。咱佇實踐中,通常用網路時間協定後台程式來保持主機時鐘仝步。 * 管理協定並無標準化,佇遮侍服器實在工具有一寡差別。RFC 三千兩百四十四描述了密碼更改。 * 因為所有使用者使用的金鎖攏儲存佇咧中心侍服器內底,危及侍服器的安全行為將危及所有使用者的金鎖。 * 一个危險客戶機將危及使用者密碼。 ==參考資料== ==延伸閱讀== ==外部連結== * Kerberos Consortium * Kerberos page at MIT website * Kerberos Working Group at IETF website * Kerberos Sequence Diagram [[分類: 待校正]]
返回到「
Kerberos
」。