登录到域的验证过程,对于不同的验证协议也有不同的验证方法。如果域控制器是WindowsNT 4.0,那么使用的是NTLM验证协议,其验证过程和前面的“登录到本机的过程”差不多,区别就在于验证账号的工作不是在本地SAM数据库中进行,而是在域控制器中进行。
而对于Windows2000和Windows 2003域控制器来说,使用的一般为更安全可靠的KerberosV5协议。通过这种协议登录到域,要向域控制器证明自己的域账号有效,用户需先申请允许请求该域的TGS(Ticket-GrantingService--票据授予服务)。获准之后,用户就会为所要登录的计算机申请一个会话票据,最后还需申请允许进入那台计算机的本地系统服务。
其过程如下:
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-GrantingTicket--票据授予票据)。该TGT(AS_REP)将用户的密钥进行解密,其中包含会话密钥、该会话密钥指向的用户名称、该票据的最大生命期以及其他一些可能需要的数据和设置等。用户所申请的票据在KDC的密钥中被加密,并附着在AS_REP中。在TGT的授权数据部分包含用户账号的SID以及该用户所属的全局组和通用组的SID。注意,返回到LSA的SID包含用户的访问令牌。票据的最大生命期是由域策略决定的。如果票据在活动的会话中超过期限,用户就必须申请新的票据。
8.当用户试图访问资源时,客户系统使用TGT从域控制器上的KerberosTGS请求服务票据(TGS_REQ)。然后TGS将服务票据(TGS_REP)发送给客户。该服务票据是使用服务器的密钥进行加密的。同时,SID被Kerberos服务从TGT复制到所有的Kerberos服务包含的子序列服务票据中。
9.客户将票据直接提交到需要访问的网络服务上,通过服务票据就能证明用户的标识和针对该服务的权限,以及服务对应用户的标识。
附:
PORT STATE SERVICE
53/tcp open domain
88/tcp open kerberos-sec
135/tcp open msrpc
139/tcp open netbios-ssn
389/tcp open ldap
445/tcp open microsoft-ds
464/tcp open kpasswd5
593/tcp open http-rpc-epmap
636/tcp open ldapssl
2179/tcp open vmrdp
3268/tcp open globalcatLDAP
3269/tcp open globalcatLDAPssl
3389/tcp open ms-term-serv
5666/tcp open nrpe