微軟NTLM認(rèn)證協(xié)議的特點(diǎn)講解
原創(chuàng)【51CTO獨(dú)家特稿】NTLM是一個微軟專用協(xié)議,它基于挑戰(zhàn)/響應(yīng)模型認(rèn)證用戶和計算機(jī)。NTLM(NT LanMan)是所有Windows NT系列產(chǎn)品都使用的認(rèn)證方式。與它的前任LanMan相似,NTLM使用挑戰(zhàn)/響應(yīng)模型來證實(shí)客戶端的身份,而不需要在網(wǎng)絡(luò)上發(fā)送口令或散列的口令。NTLM認(rèn)證具有下述特點(diǎn):
NTLM認(rèn)證是微軟專用的NT LAN Manager認(rèn)證,它只適用于Microsoft Internet Explorer。
集成的Windows認(rèn)證的工作方式與消息摘要認(rèn)證相同。
Windows Challenge/Response (NTLM) 是用在包括著Windows操作系統(tǒng)的網(wǎng)絡(luò)中的一種認(rèn)證(authentication)協(xié)議, 也用在stand-alone系統(tǒng)上.
在網(wǎng)絡(luò)環(huán)境中, Microsoft Kerberos 比NTLM添加了更多的安全性. 盡管Microsoft Kerberos 是一個不錯的選擇, NTLM現(xiàn)在還是被支持的. NTLM必須被使用在stand-alone的系統(tǒng)上, 用來做登錄的認(rèn)證.
NTLM的credential是基于在交互登錄過程中維護(hù)的數(shù)據(jù)上的, 這里的數(shù)據(jù)包括域名, 用戶名, 還有一個用戶密碼的單向hash串. NTLM使用加密的challenge/response 協(xié)議來認(rèn)證一個用戶, 用戶的密碼不會被在線路上傳輸. 取明文密碼而代之的是, 系統(tǒng)會執(zhí)行一個計算, 通過這個計算證明他已經(jīng)訪問到了安全的NTLM credentials。
網(wǎng)路上的交互式NTLM認(rèn)證典型地涉及到兩個系統(tǒng): 一個客戶端系統(tǒng), 在這個系統(tǒng)上, 用戶請求認(rèn)證; 一個域控制器, 其中存放著用戶的密碼.
非交互式的認(rèn)證里, 其中一個已經(jīng)登錄了的用戶要訪問一個資源(比如說服務(wù)器應(yīng)用程序), 這里典型地會涉及到三個系統(tǒng): 一個客戶端, 一個服務(wù)器, 和一個域控制器. 域控制器會代替服務(wù)器進(jìn)行authentication的計算.
下面的步驟展現(xiàn)了一個NTLM非交互式的認(rèn)證過程:
用戶提供NTLM credential, 這僅屬于非交互式authentication過程的部分.
(僅非交互式authentication)一個用戶訪問一個客戶端計算機(jī), 提供一個域名, 用戶名, 和密碼. 客戶端計算機(jī)會計算出一個加密的密碼哈希值, 并丟掉真實(shí)的密碼.
客戶端把用戶名發(fā)送給服務(wù)器(使用純文本發(fā)送plaintext)
服務(wù)器生成一個十六個字節(jié)的隨機(jī)數(shù), 叫做一個challenge 或 nonce. 并把這個challenge發(fā)送給客戶端.
客戶端使用用戶密碼的hash來加密這個challenge, 然后把這個加密后的結(jié)果返回給服務(wù)器, 這叫做response.
服務(wù)器發(fā)送下面的三項數(shù)據(jù)給域控制器:
用戶名
發(fā)送給客戶端的Challenge
從客戶端收回來的Response
域控制器使用用戶名來從Security Account Manager 數(shù)據(jù)庫中取得用戶密碼的hash值. 域控制器使用這個hash值來加密challenge.
域控制器比較它自己加密的值和從客戶端收來的加密的值. 如果它們是一樣的, 那么認(rèn)證成功.
域控制器發(fā)送一個信號給應(yīng)用程序服務(wù)器, 告訴它說這個用戶的認(rèn)證成功了, 他是某某人. 應(yīng)用程序服務(wù)器確認(rèn)這個用戶有權(quán)訪問自己后, 于是開放某些資源給這個用戶訪問.
用戶的應(yīng)用程不能直接訪問NTLM security package, 取而代之的是, 它應(yīng)該使用Negotiate security package. 如果authentication涉及到的操作系統(tǒng)允許的話, Negotiate 允許你的應(yīng)用程序來使用高級security protocols的優(yōu)勢. 當(dāng)前, Negotiate security package 的選擇包括Kerberos 和NTLM兩種. Negotiate 會選擇Kerberos, 除非Kerberos不被牽扯到authentication的操作系統(tǒng)支持.
【51CTO獨(dú)家特稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處?!?/p>
【編輯推薦】
- Windows系統(tǒng)中如何完成Kerberos認(rèn)證協(xié)議
- NTFS權(quán)限的兩大要素以及六種方案選擇
- 七步輕松完成NTFS文件系統(tǒng)的權(quán)限審核