windows登入過程 winlogon/gina/Kerberos/kdc

來源:互聯網
上載者:User
http://topic.csdn.net/t/20060301/15/4585911.html#

先說說登入過程吧,首先聲明,winlogon.exe可不是隨意可更換的,我們更換的是GINA,而非winlogon.exe,如果處理不當,可能WINDOWS就起不來了.  
   
  在“互動式登入”過程中,Winlogon調用了GINA組檔案,把使用者提供的帳號和密碼傳達給GINA,由GINA負責對帳號和密碼的有效性進行驗證,然後把驗證結果反饋給Winlogon程式。在與Winlogon.exe對話時,GINA會首先確定Winlogon.exe的目前狀態,再根據不同狀態來執行不同的驗證工作。通常Winlogon.exe有三種狀態:  
   
    1.已登入狀態  
   
    顧名思義,使用者在成功登入後,就進入了“已登入狀態”。在此狀態下,使用者可以執行有控制許可權的任何操作。  
   
    2.已登出狀態  
   
    使用者在已登入狀態下,選擇“登出”命令後,就進入了“已登出狀態”,並顯示Winlogon案頭,而由GINA負責顯示登入對話方塊或歡迎畫面。  
   
    3.鎖定狀態  
   
    當使用者按下“Win+L”鍵鎖定電腦後,就進入了“鎖定狀態”。在此狀態下,GINA負責顯示可供使用者登入的對話方塊。此時使用者有兩種選擇,一種是輸入目前使用者的密碼返回“已登入狀態”,另一種是輸入管理員帳號和密碼,返回“已登出狀態”,但原使用者狀態和未儲存資料丟失。  
   
    ////登入到原生過程  
   
    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對使用者登入稍作處理後,完成整個登入過程。  
   
    ////登入到域的過程  
   
    登入到域的驗證過程,對於不同的驗證協議也有不同的驗證方法。如果網域控制站是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.客戶將票據直接提交到需要訪問的網路服務上,通過服務票據就能證明使用者的標識和針對該服務的許可權,以及服務對應使用者的標識。   

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.