在 Windows 中的 NTLM 使用者驗證

文章翻譯 文章翻譯
文章編號: 102716 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文將告訴您,NTLM Windows 中的使用者驗證下列方面:
  • 帳戶資料庫中的密碼存放
  • 藉由使用 MSV1_0 驗證封裝的使用者驗證
  • 通過驗證

其他相關資訊

帳戶資料庫中的密碼存放

使用者記錄都會儲存在安全性帳戶管理員 (SAM) 資料庫中] 或 [Active Directory 資料庫中。每個使用者帳戶是兩個密碼相關聯: LAN 管理員相容密碼與 Windows 密碼。每個密碼是加密並儲存在 SAM 資料庫,或在 Active Directory 資料庫中。

區域網路管理員相容密碼不相容於使用區域網路管理員的密碼。這個密碼根據原始設備製造商 (OEM) 字元集。這個密碼不區分大小寫,而且最多為 14 個字元長。這個密碼 OWF 版本也稱為是 LAN Manager OWF 或 ESTD 版本。這個密碼計算方式是使用 DES 加密來加密以純文字密碼的常數。LAN Manager OWF 密碼是 16 個位元組。 前的 7 個位元組的純文字密碼用來計算 LAN Manager OWF 密碼第一個 8 個位元組。第二個的 7 個位元組的純文字密碼用來電腦 LAN Manager OWF 密碼第二個 8 個位元組。

Windows 密碼是以 Unicode 字元集為基礎。這個密碼是區分大小寫,而且可能會向上到 128 個字元長。這個密碼 OWF 版本也稱為是 Windows OWF 密碼。這個密碼是使用 RSA MD-4 的加密演算法來計算出來的。這個演算法計算的純文字密碼位元組的可變長度字串的 16 位元組摘要。

區域網路管理員密碼] 或 [Windows 密碼,可能會缺少任何使用者帳戶。不過,每次嘗試維護密碼的兩個版本。比方說如果使用者帳戶,會藉由使用 PortUas,移植從 LAN Manager UAS 資料庫,或從區域網路管理員用戶端或工作群組用戶端的 Windows 變更密碼,只有 LAN 管理員版本的密碼將會存在。如果設定或變更 Windows 用戶端上密碼並密碼有沒有 LAN Manager 表示,將會存在只有 Windows 版本的密碼。(密碼可能會有沒有 LAN Manager 表示因為密碼不超過 14 個字元,或因為不能以 OEM 字元集來表示字元)。在 Windows 中的使用者介面限制不要讓 Windows 密碼超過 14 個字元。稍後在本文中討論這項限制的含意。

在 Windows 2000 Service Pack 2 和更新版本的 Windows 中,是較為可讓您防止 Windows 儲存 LAN Manager 雜湊的密碼。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
299656如何防止 Windows 在 Active Directory 和本機 SAM 資料庫中儲存您的密碼的 LAN 管理員雜湊
附註Microsoft 不支援手動或以程式設計的方式改變 SAM 資料庫。

藉由使用 MSV1_0 驗證封裝的使用者驗證

Windows 會使用 LsaLogonUser API 的所有種類的使用者驗證。LsaLogonUser API 會藉由呼叫驗證封裝驗證使用者。預設情況下,LsaLogonUser 呼叫 MSV1_0 MSV 驗證封裝。這個套件所隨附 Windows NT。[MSV 驗證封裝存放區使用者資料庫中的記錄 SAM。此封裝使用 Netlogon 服務,其他網域中支援通過驗證的使用者。

在內部,MSV 驗證封裝被分成兩部分。MSV 驗證封裝的第一個部分會在連接到電腦上執行。第二個部分會在包含使用者帳戶的電腦上執行。當同一台電腦上,執行這兩個部分時,MSV 驗證封裝的第一個部分會呼叫第二個部分但不涉及 Netlogon 服務。MSV 驗證封裝的第一個部分會辨識該傳遞驗證是必要的因為會傳遞的網域名稱不是它自己網域的名稱。傳遞驗證需要時 MSV 會將要求傳遞 Netlogon 服務。再 Netlogon 服務會將要求路由到目的電腦上的 Netlogon 服務。將依序 Netlogon 服務要求傳遞至其他部份 MSV 驗證封裝在該電腦上。

LsaLogonUser 支援互動式登入、 服務登入及網路登入。MSV 驗證封裝中所有形式的登入會都傳遞包含該的使用者帳戶的網域名稱及某些功能之使用者的密碼之使用者帳戶的名稱。不同種類的登入代表的密碼以不同方式時將它傳遞至 LsaLogonUser。

互動式登入、 批次登入和服務登入,登入用戶端是在執行 MSV 驗證封裝的第一個部分的電腦上。在這種情況下純文字密碼被傳送 LsaLogonUser 和 MSV 驗證封裝中第一個部份。服務登入和批次登入,服務控制管理員] 和 [工作排程器提供更安全方式儲存帳戶的認證。

MSV 驗證封裝的第一個部分將對 LAN Manager OWF 密碼和 Windows NT OWF 密碼轉換純文字密碼。然後,封裝的第一個部分會傳遞純文字密碼 NetLogon 服務,或是第二個封裝的一部份。第二個部分然後查詢 OWF 密碼的 SAM 資料庫,並可確保它們完全相同。

進行網路登入連接到電腦用戶端先前給予 16 位元組挑戰或"nonce]。如果用戶端區域網路管理員用戶端用戶端會計算出加密 16 位元組挑戰以 16 位元組 LAN Manager OWF 密碼 24 位元組挑戰回應。區域網路管理員用戶端再傳遞這到伺服器的 「 LAN 管理員挑戰回應 」。如果用戶端 Windows 用戶端一個 「 Windows NT 挑戰回應 」 是使用相同的演算法來計算。不過,Windows 用戶端使用 16 位元 Windows OWF 資料,而不是 LAN Manager OWF 資料。Windows 用戶端接著會在 LAN Manager 挑戰回應、 Windows NT 挑戰回應到伺服器傳遞。不論是哪一種伺服器會驗證使用者,藉由將所有下列都傳遞給 LsaLogonUser API:
  • 網域名稱
  • 使用者名稱
  • 原始的挑戰
  • LAN Manager 挑戰回應
  • 選擇性的 Windows NT 挑戰回應
MSV 驗證封裝的第一個部分會傳遞這項資訊不會變更到第二個部分。第二個部分會先,查詢 OWF 密碼從 SAM 資料庫或從 Active Directory 資料庫。然後,第二個部分會計算挑戰回應藉由使用 OWF 密碼從資料庫和傳入的挑戰。 第二個部份再比較計算的挑戰回應,以傳入的挑戰回應。

附註NTLMv2 也可讓用戶端傳送一起與協助減少常見的攻擊風險的工作階段索引鍵使用一項挑戰。

如先前所述,任一版本的密碼可能會遺失從 SAM 資料庫或從 Active Directory 資料庫。而且,任一版本的密碼可能遺漏 LsaLogonUser,呼叫。如果可用的 SAM 資料庫的密碼 Windows 版本以及從 LsaLogonUser 密碼 Windows 版本,兩者會使用。否則,密碼的 LAN 管理員版本用於比較。此規則有助於網路登入發生從 Windows Windows 時強制區分大小寫。這個規則也允許針對回溯相容性。

通過驗證

NetLogon 服務會實作通過驗證。它會執行下列功能:
  • 選取要傳遞驗證要求到網域。
  • 選取在網域中的伺服器。
  • 將驗證要求透過傳遞到選取的伺服器。
選取網域很直接了當。網域名稱會傳遞給 LsaLogonUser。網域名稱處理,如下所示:
  • 如果網域名稱必須符合 SAM 資料庫名稱,在驗證處理,在這台電腦上。成員的網域名稱的 Windows 工作站上的 SAM 資料庫被視為是電腦的名稱。在一個 Active Directory 網域控制站,帳戶資料庫的名稱會是網域的名稱。 不是網域成員電腦上所有的登入處理要求在本機上。
  • 如果指定的網域名稱受此網域,驗證要求會透過傳遞給受信任的網域。Active Directory 網域控制站上受信任網域的清單是容易取得的。在 Windows 網域的成員,要求是永遠透過傳遞給讓判斷指定的網域是信任的網域主控工作站的主要網域。
  • 如果指定的網域名稱不受網域,指定的網域名稱就像該網域名稱連接到電腦上處理驗證要求。NetLogon 並不區分不存在的網域、 未受信任的網域以及不正確地鍵入的網域名稱。
NetLogon 依照稱為探索程序,在網域中選取一個伺服器。Windows 工作站會發現其中一個其主要的網域中的 Windows Active Directory 網域控制站的名稱。Active Directory 網域控制站探索每個受信任網域中的 Active Directory 網域控制站名稱。不會探索此元件是 Netlogon 服務在執行 [DC 定位程式。DC 定位程式會使用 NETBIOS 或 DNS 名稱解析,來找出需要伺服器的網域和已設定的信任類型而定。

屬性

文章編號: 102716 - 上次校閱: 2006年11月1日 - 版次: 2.2
這篇文章中的資訊適用於:
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows XP Professional
關鍵字:?
kbmt kbinfo kbhowto KB102716 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:102716
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com