1. 程式人生 > >Windows登入--本地登入和域登入

Windows登入--本地登入和域登入

登入到本機的過程 

1. 使用者首先按Ctrl+Alt+Del組合鍵。   

2. Winlogon檢測到使用者按下SAS鍵,就呼叫GINA,由GINA顯示登入對話方塊,以便使用者輸入賬號和密碼。  

3. 使用者輸入賬號和密碼,確定後,GINA把資訊傳送給LSA進行驗證。   

4. 在使用者登入到本機的情況下,LSA會呼叫Msv1_0.dll這個驗證程式包,將使用者資訊處理後生成金鑰,同SAM資料庫中儲存的金鑰進行對比。   

5. 如果對比後發現使用者有效,SAM會將使用者的SID(Security Identifier——安全標識),使用者所屬使用者組的SID,和其他一些相關資訊傳送給LSA。  

6. LSA將收到的SID資訊建立安全訪問令牌,然後將令牌的控制代碼和登入資訊傳送給Winlogon.exe。  

7. Winlogon.exe對使用者登入稍作處理後,完成整個登入過程。

所以在GINA中的介面WlxLoggedOutSAS中有:


登入到域的過程 

登入到域的驗證過程,對於不同的驗證協議也有不同的驗證方法。

如果域控制器是Windows NT 4.0,那麼使用的是NTLM驗證協議,其驗證過程和前面的“登入到本機的過程”差不多,區別就在於驗證賬號的工作不是在本地SAM資料庫中進行,而是在域控制器中進行;

而對於Windows 2000和Windows 2003域控制器來說,使用的一般為更安全可靠的Kerberos V5協議

。通過這種協議登入到域,要向域控制器證明自己的域賬號有效,使用者需先申請允許請求該域的TGS(Ticket-Granting Service——票據授予服務)。獲准之後,使用者就會為所要登入的計算機申請一個會話票據,最後還需申請允許進入那臺計算機的本地系統服務。

過程如下:   

1. 使用者首先按Ctrl+Alt+Del組合鍵。   

2. Winlogon檢測到使用者按下SAS鍵,就呼叫GINA,由GINA顯示登入對話方塊,以便使用者輸入賬號和密碼。   

3. 使用者選擇所要登入的域和填寫賬號與密碼,確定後,GINA將使用者輸入的資訊傳送給LSA進行驗證。   

4. 在使用者登入到本機的情況下,LSA將請求傳送給Kerberos驗證程式包

。通過雜湊演算法,根據使用者資訊生成一個金鑰,並將金鑰儲存在證書快取區中。   

5. Kerberos驗證程式向KDC(Key Distribution Center——金鑰分配中心)傳送一個包含使用者身份資訊和驗證預處理資料的驗證服務請求,其中包含使用者證書和雜湊演算法加密時間的標記。   

6. KDC接收到資料後,利用自己的金鑰對請求中的時間標記進行解密,通過解密的時間標記是否正確,就可以判斷使用者是否有效。   

7. 如果使用者有效,KDC將向用戶傳送一個TGT(Ticket-Granting Ticket——票據授予票據)。該TGT(AS_REP)將使用者的金鑰進行解密,其中包含會話金鑰、該會話金鑰指向的使用者名稱稱、該票據的最大生命期以及其他一些可能需要的資料和設定等。 使用者所申請的票據在KDC的金鑰中被加密,並附著在AS_REP中。在TGT的授權資料部分包含使用者賬號的SID以及該使用者所屬的全域性組和通用組的 SID。注意,返回到LSA的SID包含使用者的訪問令牌。票據的最大生命期是由域策略決定的。如果票據在活動的會話中超過期限,使用者就必須申請新的票據。

8. 當用戶試圖訪問資源時,客戶系統使用TGT從域控制器上的Kerberos TGS請求服務票據(TGS_REQ)。然後TGS將服務票據(TGS_REP)傳送給客戶。該服務票據是使用伺服器的金鑰進行加密的。同時,SID被Kerberos服務從TGT複製到所有的Kerberos服務包含的子序列服務票據中。   

9. 客戶將票據直接提交到需要訪問的網路服務上,通過服務票據就能證明使用者的標識和針對該服務的許可權,以及服務對應使用者的標識。