天天看點

Kerberos網絡身份認證協定介紹及SMB檔案系統對其的支援一、Kerberos網絡身份認證協定簡介Kerberos網絡身份認證協定的關鍵實體介紹Kerberos網絡身份認證互動過程主要消息及内容:網絡認證互動過程:Kerberos的優缺點:優點:缺點:Windows對Kerberos網絡身份認證協定的支援二、Windows SMB協定檔案系統對Kerberos網絡身份認證的支援三、小結:四、阿裡雲SMB協定檔案存儲服務基于AD域系統的使用者身份認證及通路控制的相關文章

在《 阿裡雲SMB協定檔案存儲服務支援基于AD域的使用者身份認證及權限通路控制介紹 》中,我們介紹了檔案系統的使用者身份認證和通路權限控制的一些基本概念,以及阿裡雲SMB協定檔案存儲服務目前支援基于AD域系統的使用者身份認證及通路權限控制的實作。在這個支援AD域系統的使用者身份認證的實作中,我們采用的是Kerberos網絡身份認證協定。那麼,為了更好地了解這個基于域的身份認證過程,我們在這裡介紹一下Kerberos網絡身份認證協定,以及SMB檔案系統中是如何支援Kerberos網絡身份認證的。

一、Kerberos網絡身份認證協定簡介

Kerberos是由MIT研發的一種第三方網絡身份認證協定,它提供了一種在不安全的網絡環境中用戶端/伺服器模型下的各個實體安全地認證對方身份的協定-即客戶和應用服務互相認證對方的身份。Kerberos一般使用共享密鑰系統,但是需要一個可信的第三方,稱為密鑰配置設定中心KDC(Key Distribution Center)。它定義了客戶/服務和第三方認證服務即密鑰配置設定中心之間的安全認證互動過程。

最早的Kerberos是MIT為了保護Athena項目的服務而開發的。前三個版本都隻是在MIT内部使用。從1983年開始的第四版本開始為外部使用。我們現在一般使用的是1993年開發的第五版本,即Kerberos 5。

Kerberos網絡身份認證協定的關鍵實體介紹

  1. 密鑰分發中心 KDC(Key Distribution Center)。 KDC是Kerberos身份認證協定中最為關鍵的實體,也就是用戶端和應用伺服器都信任的第三方實體。它首先提供了傳統的密碼管理的功能,維護者所有安全主體的賬戶資訊,包括各個安全主體的加密密鑰,也就是安全主體的長效密鑰,即是由安全主體的密碼生成的密鑰。另外,KDC還負責Kerberos協定中的密鑰分發職責。具體的過程我們會在下面協定互動章節中詳細介紹。

基于上面的兩個主要功能,KDC由認證服務和票據授權服務組成:

認證服務AS (Authentication Service): 認證服務的主要功能是進行管理安全主體的身份和密鑰,對客戶的身份進行确認,頒發票據授權票據。

票據授權服務 TGS (Ticket Granting Service) :票據授權服務主要是進行票據授權票據的确認,确認使用者的身份并頒發服務票據。

  1. 用戶端 Client: 要通路某個應用服務的計算機軟體實體。在用戶端/伺服器模型中,用戶端也就是服務請求方。在Kerberos認證協定中,一般用戶端會以某個在KDC中注冊的身份通路特定的服務。
  2. 應用伺服器 Server :支援Kerberos第三方認證服務的某個應用伺服器, 也稱為Kerberized Server。在用戶端/伺服器模型中,應用伺服器也就是服務提供方或者請求處理方。在Kerberos認證協定中,應用伺服器也需要在KDC中注冊相應的服務身份。
  3. 票據 Ticket: 用于通路某個服務的通路資訊,一般包含使用者身份,用戶端網絡資訊,票據有效期,會話密鑰,并用服務端密鑰加密。在Kerberos認證協定的互動中,票據一般有票據授權票據和服務票據。
  4. 密鑰:用來對互動的資訊封包進行加解密的資料流,分為長效密鑰(由安全主體的密碼哈希而來)和會話密鑰(用于加密一個會話的内容,隻在一個會話周期内有效)。

Kerberos網絡身份認證互動過程

Kerberos網絡身份認證協定主要定義了三個互動過程,即認證服務互動,票據授權服務互動,客戶伺服器互動。下面的流程描述了Kerberos網絡身份認證的整個過程。下面我們首先解釋主要的消息以及内容,然後我們對每個具體的互動過程具體說明。

Kerberos網絡身份認證協定介紹及SMB檔案系統對其的支援一、Kerberos網絡身份認證協定簡介Kerberos網絡身份認證協定的關鍵實體介紹Kerberos網絡身份認證互動過程主要消息及内容:網絡認證互動過程:Kerberos的優缺點:優點:缺點:Windows對Kerberos網絡身份認證協定的支援二、Windows SMB協定檔案系統對Kerberos網絡身份認證的支援三、小結:四、阿裡雲SMB協定檔案存儲服務基于AD域系統的使用者身份認證及通路控制的相關文章

主要消息及内容:

消息A:使用者/用戶端密鑰加密的票據授權會話密鑰

消息B:用票據授權密鑰加密的票據授權票據(包括用戶端ID,有效期,票據授權會話密鑰)

消息C:消息B 加上應用服務端ID

消息D:用票據授權會話密鑰加密的使用者認證卡

消息E:用應用服務密鑰加密的服務票據(包括用戶端ID,有效期,服務會話密鑰)

消息F:用票據授權會話密鑰加密的服務會話密鑰

消息G:用服務會話密鑰加密的使用者認證卡

消息H: 用服務會話密鑰加密的使用者認證卡中的時間戳

網絡認證互動過程:

  1. 認證服務互動(Authentication Service Exchange):該操作一般在使用者登入的時候進行,或者在用戶端第一次使用某個KDC管理的身份通路系統資源的時候進行。在上圖中,認證服務互動包括1和2 這兩個請求和回複過程。在這個過程中, 用戶端向KDC的認證服務AS發送自己的使用者名進行身份認證。認證服務AS首先會在本地資料庫中查找該使用者,如果存在,則用使用者的密碼hash作為使用者的用戶端密鑰。同時,認證服務AS會生成票據授權會話密鑰,用使用者的用戶端密鑰進行加密後生成消息A,并生成票據授權票據,包含用戶端ID,有效期,票據授權會話密鑰,用票據授權服務密鑰進行加密後生成消息B。用戶端收到用戶端密鑰加密的票據授權會話密鑰(消息A)後,用用戶端密鑰解密得到票據授權會話密鑰,并将收到的票據授權票據(消息B)儲存在本地的票據緩存中。
  2. 票據授權服務互動(Ticket-Granting Service Exchange):用戶端把票據授權票據(消息B)和需要通路的應用伺服器的資訊生成消息C,以及 用票據授權會話密鑰加密的使用者認證卡資訊(包括用戶端使用者身份和時間戳,即消息D),發給票據授權服務TGS。票據授權服務TGS用它的票據授權服務密鑰解密票據授權票據(消息B),得到其中的票據授權會話密鑰,然後用票據授權會話解密使用者認證卡資訊(消息D),進行使用者認證身份的比對以及時間戳和票據有效期的驗證。如果通過驗證,則根據要通路服務的資訊,得到服務端密鑰。同時生成用戶端和伺服器通信的服務會話密鑰, 以及包含用戶端ID,有效期,服務會話密鑰的服務票據。服務票據用服務密鑰進行加密生成消息E,連同用票據授權會話密鑰加密的服務會話密鑰(消息F),發送給用戶端。當用戶端收到上面的消息以後,用 票據授權會話密鑰解密消息F得到服務會話密鑰,把服務會話密鑰和收到的服務票據(消息E)都儲存在本地的票據緩存裡。
  3. 客戶服務互動(Client/Server Exchange):這裡的服務一般是指某個支援Kerberos認證的應用伺服器。用戶端給應用伺服器發請求,該請求包括之前收到的服務票據(消息E),用服務會話密鑰加密的使用者認證卡(消息G),是否需要雙向驗證的标志。應用伺服器收到該資訊以後,用自己的密鑰解密服務票據(消息E), 進而拿到服務會話密鑰和使用者身份資訊,然後用服務會話密鑰解密使用者認證卡(消息G)拿到使用者的身份資訊和相關的時間戳,并對兩個消息中的使用者身份資訊和時間戳進行核對。如果該請求是合法的,應用伺服器進一步檢查是否需要雙向驗證。如果需要,應用伺服器用服務會話密鑰加密收到的時間戳傳回給用戶端(消息H)。用戶端可以根據收到時間戳确定應用伺服器的身份。之後,所有的用戶端和伺服器的通路就通過服務會話密鑰進行加密。

Kerberos的優缺點:

任何一種協定都有其優缺點。這裡簡單介紹一下Kerberos網絡身份認證協定的優缺點。

優點:

  1. 安全的防護多種不同的侵入攻擊,比如Impersonation和replay attach等。
  2. 使用票據的傳輸,在認證過程中可以不需要傳輸任何長效密鑰,而且用戶端和應用伺服器之間可以不需要知道對方的密鑰資訊
  3. 有很好的互操作性,不同的平台可以基于Kerberos認證協定進行廣泛的互操作。
  4. 可以實作雙向驗證。其他的類似NTLM的認證協定,都是基于一個假設,即遠端的服務是可信的。實際上,仿冒伺服器在如今的Internet是一個比較常見的。Kerberos認證協定很好的解決了服務身份認證的問題。

缺點:

  1. 存在單點故障。Kerberos身份認證過程需要KDC的持續可用。到KDC出現問題時,使用者就不能被認證登入或者使用依賴Kerberos的服務。一般情況下,這種單點故障可以通過部署多台KDC并通過認證過程的Failover機制可以解決。
  2. Kerberos需要各個實體采用相同并且嚴格的時間戳。這就需要各個實體必須配置相同的時鐘或者通過類似NTP的機制進行時鐘同步。
  3. 如果在Kerberos環境中使用對稱密鑰則存在很大的安全隐患。黑客一旦控制了KDC,則他可以仿冒所有實體。
  4. 需要所有實體在Kerberos KDC中被信任,無法滿足網絡中非信任實體的通路認證。

Windows對Kerberos網絡身份認證協定的支援

在微軟的身份認證體系中,以前使用的都是NTLM(NT Lan Manager)進行認證。在Windows2000以後的版本中引入了對Kerberos網絡身份認證的支援,并在有active directory domain的情況下優先用Kerberos作使用者身份認證協定。Kerberos的安全性和複雜性都比NTLM的幾個協定版本要高的多。微軟的實作基于Kerberos v5并有擴充 ([RFC4120],[MS-KILE], [MS-PAC]),其中主要的擴充是采用了Privilege Attribute Certificate Data Structure這樣一種機制來傳輸Windows身份認證資訊,包括SID,組等windows特有的安全主體資訊。

二、Windows SMB協定檔案系統對Kerberos網絡身份認證的支援

SMB協定小傳

》中,我們介紹了SMB協定以及SMB2會話的六個生命階段,即SMB協定協商,建立SMB會話,連接配接檔案共享,檔案系統操作,斷開檔案共享,終止SMB會話六個階段。其中使用者認證是在建立SMB會話(Session Setup)這個階段來完成的。在協定協商階段,檔案服務會向用戶端傳回它支援的認證協定,即NTLM或者Kerberos。然後,在Session Setup階段,用戶端根據服務端支援的認證協定和它自身支援的協定來選擇一種認證協定完成身份認證。下面流程簡單描述了包括和AD域伺服器的Kerberos認證互動在内的整個SMB服務請求過程:

Kerberos網絡身份認證協定介紹及SMB檔案系統對其的支援一、Kerberos網絡身份認證協定簡介Kerberos網絡身份認證協定的關鍵實體介紹Kerberos網絡身份認證互動過程主要消息及内容:網絡認證互動過程:Kerberos的優缺點:優點:缺點:Windows對Kerberos網絡身份認證協定的支援二、Windows SMB協定檔案系統對Kerberos網絡身份認證的支援三、小結:四、阿裡雲SMB協定檔案存儲服務基于AD域系統的使用者身份認證及通路控制的相關文章

在SMB2協定Session Setup 請求中嵌入了上面提到的Kerberos認證第三個互動即客戶服務互動(Client/Server Exchange)的封包,然後SMB檔案服務從Session Setup請求中分解出這個封包後,得到了用票據授權會話密鑰加密的服務會話密鑰(消息F)和用服務會話密鑰加密的使用者認證卡(消息G),用自己的密鑰解密服務票據(消息E), 進而拿到服務會話密鑰和使用者身份資訊,然後用服務會話密鑰解密使用者認證卡(消息G)拿到使用者的身份資訊和相關的時間戳,并對兩個消息中的使用者身份資訊和時間戳進行核對。如果該請求是合法的,伺服器從傳入的PAC中分解出使用者SID,組等資訊,并傳回認證成功。之後所有從這個會話來的請求都會以這個使用者SID群組的身份對檔案系統進行操作。如果用戶端配置了傳輸加密,那麼之後所有的封包都會用會話密鑰進行加密。

三、小結:

本文簡單介紹了Kerberos網絡認證協定,以及SMB檔案系統對Kerberos認證的支援。希望本文有助于了解阿裡雲SMB協定檔案存儲服務的基于AD域系統的Kerberos使用者身份認證。

四、阿裡雲SMB協定檔案存儲服務基于AD域系統的使用者身份認證及通路控制的相關文章

如果要使用阿裡雲SMB協定檔案存儲服務的基于AD域系統的使用者身份認證及通路權限控制功能,請在阿裡雲檔案系統控制台打開配置該功能。具體請參考

将阿裡雲SMB協定檔案系統挂載點接入AD域

下面是使用基于AD域系統的使用者身份認證及通路權限控制可能需要的相關知識點:

  1. ,總體介紹阿裡雲SMB協定檔案存儲服務支援基于AD域的使用者身份認證及權限通路控制的設計實作。
  2. Kerberos網絡身份認證協定介紹及SMB檔案系統對其的支援 ,介紹Kerberos網絡身份認證協定以及與SMB協定問系統的互動。
  3. 安裝并啟用Active Directory域服務與DNS服務 ,介紹如何在VPC中安裝并啟用AD域服務和DNS服務。
  4. 将Windows系統機器加入AD域 ,介紹如何将windows機器加入AD域。
  5. ,介紹如何在AD域伺服器以及阿裡雲SMB協定檔案系統中進行必要的配置來支援基于AD域的使用者身份認證及權限通路控制。
  6. 從Windows以AD域使用者身份挂載使用阿裡雲SMB協定檔案系統 ,介紹如何從windows用戶端以域使用者身份挂載使用阿裡雲SMB協定檔案系統。
  7. Linux用戶端以AD域使用者身份挂載使用阿裡雲SMB協定檔案系統 ,介紹如何從Linux用戶端以域使用者身份挂載使用阿裡雲SMB協定檔案系統。
  8. 阿裡雲SMB協定檔案系統ACL權限控制使用指南 ,介紹如何正确地配置阿裡雲SMB協定檔案系統的ACL以及相應的規則描述。
  9. 阿裡雲SMB協定檔案系統AD身份認證和ACL權限控制使用場景 - Home Directory / User Profile ,介紹使用權限控制的域使用者Home Directory以及User Profile兩個場景下的相關配置及實作。
  10. MacOS用戶端連接配接阿裡雲NAS SMB檔案系統 ,介紹如何從MacOS用戶端挂載使用阿裡雲SMB協定檔案系統。

繼續閱讀