官术网_书友最值得收藏!

1.3.3 NTLM網絡認證

1.NTLM認證協議

NTLM基于挑戰/響應驗證機制,對域上主機進行身份驗證。當用戶主機請求訪問與域關聯的服務時,服務會向用戶主機發送質詢,要求用戶主機使用其身份驗證令牌進行驗證,然后將此操作的結果返回給服務。該服務可以驗證結果或將其發送到域控制器進行驗證。如果服務或域控制器確認用戶主機的身份令牌正確,則用戶主機使用該服務。目前NTLM已經不被微軟推薦,因為它不支持很多新型的加密方式,微軟已經使用Kerberos認證協議作為首選的身份驗證方式。

2.NTLM認證流程

NTLM是Windows網絡認證協議中的一種,它以NTLM哈希作為憑據的方式進行認證,采用挑戰/響應(Challenge/Response)的消息交換模式。NTLM認證協議分三步走。

1)協商(Negotiate):主要用于確認雙方協議版本。

2)質詢(Question):就是挑戰/響應。

3)驗證(Auth):主要是在質詢完成后驗證結果。

3.NTLM協議類型

NTLM協議認證包含NTLM v1和NTLM v2兩個版本,其中使用最多的是NTLM v2。

NTLM v1:NTLM v1協議是NTLM第一版協議,它在服務器與客戶端之間的挑戰/響應中同時使用NT哈希和LM哈希。

NTLM v2:NTLM v2也可稱為NTLM第二版協議,是NTLM v1的改進版本,它通過強化認證協議及安全身份認證機制來提升NTLM的安全性。

NTLM v1與NTLM v2兩者的區別在于Challenge和加密算法不同:NTLM v1的Challenge有8位數值,主要加密算法為DES;NTLM v2的Challenge有16位數值,主要加密算法為HMAC-MD5。

4.NTLM協議認證方式

NTLM協議的認證方式可以分成交互式NTLM身份驗證和非交互式NTLM身份驗證兩類,具體說明如下。

(1)交互式NTLM身份驗證

交互式NTLM身份驗證通常涉及用戶請求身份驗證的客戶端系統、保留與用戶密碼相關信息的域控制器這兩種系統,主要應用于用戶登錄客戶端的場景。

(2)非交互式NTLM身份驗證

非交互式NTLM身份驗證通常涉及用于請求身份驗證的客戶端系統、保存資源的服務器、代表服務器進行身份驗證計算的域控制器這三種系統,這種認證方式無須進行交互式提供憑據,用戶只需成功登錄一次就可以訪問所有相互信任的應用系統及共享資源。

5.工作站環境中的NTLM工作機制

圖1-23詳細描述了NTLM在工作站環境中的工作機制,具體如下。

1)用戶輸入賬號和密碼并登錄客戶端時,客戶端會將用戶的賬號和密碼轉換為NTLM哈希并進行緩存,原始密碼將會被丟棄(因Windows安全準則要求,原始密碼在任何情況下都不能被緩存)。

2)當成功登錄客戶端的用戶試圖訪問服務器的某個資源時,客戶端就會向服務器發送Type1協商消息進行請求認證,該協商消息包含客戶端支持和服務器請求的功能列表。

3)收到客戶端發送的Type1協商消息認證請求后,服務器會生成一個16位數值的隨機數,簡稱“質詢”(Challenge)或“隨機數”(Nonce),并通過Type2質詢消息對客戶端進行響應,該響應消息包含服務器支持同意列表以及由服務器產生的16位數值的Challenge挑戰碼。

4)接收到服務器發來的Challenge挑戰碼后,客戶端使用之前轉換緩存的NTLM哈希對Challenge進行加密運算,得到Response,并通過Type3身份驗證消息回復服務器的質詢。該身份驗證消息包含Response、Username以及加密后的Challenge。

5)接收到由客戶端加密的Challenge后,服務器會使用自己密碼的NTLM哈希對Challenge進行加密計算,得到Net NTLM哈希值,并與客戶端發送的Net NTLM哈希值進行匹配。如匹配成功,則證明客戶端輸入的密碼正確,認證成功;反之,認證失敗。

圖1-23 工作站環境中的NTLM工作機制

6.域環境中的NTLM工作機制

圖1-24詳細描述了NTLM在域環境中的工作機制,具體如下。

1)域用戶輸入賬號和密碼登錄客戶端時,客戶端會將用戶的賬號和密碼轉換為NTLM哈希并進行緩存,原始密碼將會被丟棄。

2)當成功登錄客戶端的用戶試圖訪問服務器的某個資源時,客戶端就會向服務器發送Type1協商消息進行請求認證,該協商消息包含客戶端支持和服務器請求的功能列表。

3)收到客戶端發送的Type1協商消息認證請求后,服務器會生成一個16位數值的隨機數,并通過Type2質詢消息對客戶端進行響應。該響應消息包含服務器支持同意列表以及由服務器產生的16位數值的Challenge挑戰碼。

4)接收到服務器端發來的Challenge挑戰碼后,客戶端使用之前轉換緩存的NTLM哈希對Challenge進行加密運算,得到Response,并通過Type3身份驗證消息回復服務器的質詢。該身份驗證消息包含Response、Username以及加密后的Challenge。

5)接收到由客戶端加密的Challenge后,服務器會通過Netlogon協議向DC(域控制器)發送針對客戶端的驗證請求,同時將Type1、Type2、Type3全部發送給DC。

6)DC根據Username從AD中查詢該用戶賬號和密碼的NTLM哈希,并將使用此NTLM哈希加密Challenge得到的NetNTLM哈希值與服務器收到的NetNTLM哈希值進行比對和驗證,最終將比對驗證結果發送給服務器。

7)服務器根據DC反饋的結果對客戶端進行最后的校驗。

圖1-24 域環境中的NTLM工作機制

主站蜘蛛池模板: 夏河县| 乾安县| 宜君县| 溧阳市| 义乌市| 平和县| 吉林省| 宁晋县| 焉耆| 明光市| 土默特左旗| 兴隆县| 北京市| 新化县| 修文县| 丘北县| 芒康县| 郴州市| 天气| 定日县| 临高县| 长顺县| 旬阳县| 雅江县| 临沭县| 沂南县| 舒城县| 白山市| 新和县| 南丹县| 久治县| 洛扎县| 应城市| 郸城县| 唐山市| 斗六市| 长岭县| 巴南区| 彭泽县| 鹤壁市| 唐海县|