Windows安全認證是如何進行的?[NTLM篇]
《上篇》中我們介紹Kerberos認證的整個流程。在允許的環境下,Kerberos是首選的認證方式。在這之前,Windows主要采用另一種認證協議——NTLM(NT Lan Manager)。NTLM使用在Windows NT和Windows 2000 Server(or later)工作組環境中(Kerberos用在域模式下)。在AD域環境中,如果需要認證Windows NT係統,也必須采用NTLM。較之Kerberos,基於NTLM的認證過程要簡單很多。NTLM采用一種質詢/應答(Challenge/Response)消息交換模式,右圖反映了Windows2000下整個NTLM認證流程。
用戶通過輸入Windows帳號和密碼登錄客戶端主機。在登錄之前,客戶端會緩存輸入密碼的哈希值,原始密碼會被丟棄(“原始密碼在任何情況下都不能被緩存”,這是一條基本的安全準則)。成功登錄客戶端Windows的用戶如果試圖訪問服務器資源,需要向對方發送一個請求。該請求中包含一個以明文表示的用戶名。
步驟二
服務器接收到請求後,生成一個16位的隨機數。這個隨機數被稱為Challenge或者Nonce。服務器在將該Challenge發送給客戶端之前,該Challenge會先被保存起來。Challenge是以明文的形式發送的。
步驟三
客戶端在接收到服務器發回的Challenge後,用在步驟一中保存的密碼哈希值對其加密,然後再將加密後的Challenge發送給服務器。
步驟四
服務器接收到客戶端發送回來的加密後的Challenge後,會向DC(Domain)發送針對客戶端的驗證請求。該請求主要包含以下三方麵的內容:客戶端用戶名;客戶端密碼哈希值加密的Challenge和原始的Challenge。
步驟五、六
DC根據用戶名獲取該帳號的密碼哈希值,對原始的Challenge進行加密。如果加密後的Challenge和服務器發送的一致,則意味著用戶擁有正確的密碼,驗證通過,否則驗證失敗。DC將驗證結果發給服務器,並最終反饋給客戶端。
Windows安全認證是如何進行的?[Kerberos篇]
Windows安全認證是如何進行的?[NTLM篇]
微信公眾賬號:大內老A
微博:www.weibo.com/artech
如果你想及時得到個人撰寫文章以及著作的消息推送,或者想看看個人推薦的技術資料,可以掃描左邊二維碼(或者長按識別二維碼)關注個人公眾號(原來公眾帳號蔣金楠的自媒體將會停用)。
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁麵明顯位置給出原文連接,否則保留追究法律責任的權利。
最後更新:2017-10-27 13:33:43