ASP.NET : Kerberos網路認證過程

來源:互聯網
上載者:User

今天抽時間初略學習了一下kerberos網路認證過程,作為筆記整理如下,希望與大家分享。

一、Kerberos初步定義:

Kerberos這一名詞來源於希臘神話“三個頭的狗——地獄之門守護者”。Kerberos 是一種網路認證協議,其設計目標是通過密鑰系統為客戶機 / 伺服器應用程式提供強大的認證服務。該認證過程的實現不依賴於主機作業系統的認證,無需基於主機地址的信任,不要求網路上所有主機的物理安全,並假定網路上傳送的資料包可以被任意地讀取、修改和插入資料。在以上情況下, Kerberos 作為一種可信任的第三方認證服務,是通過傳統的密碼技術(如:共用密鑰)執行認證服務的。

Kerberos 服務是單點登入系統,這意味著您對於每個會話只需向服務進行一次自我驗證,即可自動保護該會話過程中所有後續事務的安全。服務對您進行驗證後,即無需在每次使用基於 Kerberos 的命令(如ftp 或 rsh)或訪問 NFS 檔案系統上資料時都進行自我驗證。因此,無需在每次使用這些服務時都在網路上發送口令(口令在網路上可能會被攔截)。

 

二、Kerberos認證工作過程:

主要分要兩大步驟,見圖進行說明:

步驟一:申請並擷取TGT,具體步驟如下
1.Client向KDC發送自己的身份資訊(Info C)
2. KDC收到Client的身份資訊後,從Ticket Granting Service得到TGT(ticket-granting ticket)
3. KDC用協議開始前產生的Client與KDC之間的密鑰(Key A)將TGT加密回複給Client。
4. Client使用Key A把加密後的TGT解密得到非加密的TGT。由於此密鑰是Client與KDC之間的密鑰,所以此時只有真正的Client才能利用它與KDC之間的密鑰將加密後的TGT解密,從而獲得TGT。(此過程避免了Client直接向KDC發送密碼,以求通過驗證的不安全方式)

步驟二: Client利用之前獲得的TGT向KDC請求其他Service的Ticket,從而通過其他Service的身份鑒別。具體步驟如下:
5. Client將之前獲得TGT和要請求的服務資訊(Info CS )發送給KDC
6. KDC中的Ticket Granting Service將為Client和Service之間產生一個Session Key用於Service對Client的身份鑒別。
7. KDC將這個Session Key和使用者名稱,使用者地址(IP),服務名,有效期間, 時間戳記一起封裝成一個Ticket--(Service Tictket) (這些資訊最終用於Service對Client的身份鑒別)發送給Service, 不過Kerberos協議並沒有直接將Ticket發送給Service,而是通過Client轉寄給Service.所以有了第8-11步。

8. 此時KDC將剛才的Ticket轉寄給Client。由於這個Ticket是要給Service的,不能讓Client看到,所以KDC用協議開始前KDC與Service之間的密鑰(Key C)將Ticket加密後再發送給Client。同時為了讓Client和Service之間共用那個秘密(KDC在第一步為它們建立的Session Key), KDC用Client與它之間的密鑰將Session Key加密隨加密的Ticket一起返回給Client。也即是說:Client與Service之間的Session Key(Key B)發出了兩個副本,一個是發給Client的,一個是發給Service的,發給Client的可由Client解密取出使用,但發給Service的由於是由Key C加密,經由Client轉寄給Service,所以,Client不能取出,到了Service端後可由Service端取出。
9. 為了完成Ticket的傳遞,Client將剛才收到的Service Ticket轉寄到Service. 由於Client不知道KDC與Service之間的密鑰,所以它無法算改Ticket中的資訊,只能老老實實地完成轉寄任務。
10.Client將收到的Session Key解密出來(用Key A解密)
11.Client將自己的使用者名稱,使用者地址(IP)打包成Authenticator用前面得到的Session Key(Key B)加密後也發送給Service。
12.Service 收到Ticket後利用它與KDC之間的密鑰(Key C)將Ticket中的資訊解密出來,從而獲得Session Key和使用者名稱,使用者地址(IP),服務名,有效期間。然後再用Session Key(Key B)將Authenticator解密從而獲得使用者名稱,使用者地址(IP)將其與之前Ticket中解密出來的使用者名稱,使用者地址(IP)做比較從而驗證Client的身份。
13.  如果Service有返回結果,將其返回給Client。

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.