Windows安全認證是如何進行的?[NTLM篇]

作者: Artech  來源: 博客園  發布時間: 2011-01-27 10:42  閱讀: 587 次  推薦: 0   原文鏈接   [收藏]  

   《上篇》中我們介紹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的用戶如果試圖訪問服務器資源,需要向對方發送一個請求。該請求中包含一個以明文表示的用戶名。

image

  步驟二

  服務器接收到請求后,生成一個16位的隨機數。這個隨機數被稱為Challenge或者Nonce。服務器在將該Challenge發送給客戶端之前,該Challenge會先被保存起來。Challenge是以明文的形式發送的。

image

  步驟三

  客戶端在接收到服務器發回的Challenge后,用在步驟一中保存的密碼哈希值對其加密,然后再將加密后的Challenge發送給服務器。

image  步驟四

  服務器接收到客戶端發送回來的加密后的Challenge后,會向DC(Domain)發送針對客戶端的驗證請求。該請求主要包含以下三方面的內容:客戶端用戶名;客戶端密碼哈希值加密的Challenge和原始的Challenge。

image  步驟五、六

  DC根據用戶名獲取該帳號的密碼哈希值,對加密的Challenge進行解密。如果機密后的Challenge和服務器發送的原始值一致,則意味著用戶擁有正確的密碼,驗證通過,否則驗證失敗。DC將驗證結果發給服務器,并最終反饋給客戶端。

0
0
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()