步驟一
用戶通過輸入Windows帳號和密碼登錄客戶端主機。在登錄之前,客戶端會緩存輸入密碼的哈希值,原始密碼會被丟棄(“原始密碼在任何情況下都不能被緩存”,這是一條基本的安全准則)。成功登錄客戶端Windows的用戶如果試圖訪問服務器資源,需要向對方發送一個請求。該請求中包含一個以明文表示的用戶名。

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

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

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

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