jinfeng_wang

          G-G-S,D-D-U!

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks
          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.客戶將票據直接提交到需要訪問的網絡服務上,通過服務票據就能證明用戶的標識和針對該服務的權限,以及服務對應用戶的標識。   
           
          posted on 2007-07-26 17:56 jinfeng_wang 閱讀(2253) 評論(0)  編輯  收藏 所屬分類: OtherZZ
          主站蜘蛛池模板: 博客| 深水埗区| 宿迁市| 梧州市| 象山县| 绥阳县| 郎溪县| 岱山县| 固阳县| 河津市| 时尚| 台东县| 奇台县| 岑巩县| 栖霞市| 临汾市| 大化| 郑州市| 稷山县| 巴东县| 澜沧| 崇明县| 双流县| 宝坻区| 浮梁县| 政和县| 青冈县| 大埔区| 买车| 区。| 稷山县| 阜康市| 镇安县| 白水县| 金川县| 渝北区| 绥化市| 新巴尔虎左旗| 土默特左旗| 五常市| 横山县|