本篇文章主要讲解一下用户要访问本地域的资源时,如何申请会话票证

1、 用户打开“网上邻居”,找到要访问的目标服务器,双击服务器图标

2、 网络重定向器向LSA请求目标服务器的会话票证,因为本地LSA不是KDC,无法颁发会话票证,于是他向Kerberos协议请求帮助

3、 Kerberos协议从缓存中获得TGT的一个拷贝,并用它来构建一个目标服务器的会话票证请求,这个请求会用缓存中的会话密钥来进行加密

4、 KDC接受到请求后,并用它自己的会话密钥来解密会话票证请求。如果解密失败就表明这个票证被劫持了。通过解密成功,KDC则继续操作

5、 KDC构建了一个到目标服务器的会话票证。并复制TGT中一份PAC拷贝到新的会话票证中。这个会票证中包含一个新的会话密钥。KDC在同样通过一个应答消息来将票证传送给客户端。应答消息和TGT一样,包含两部分内容,第一部分就是交给客户端的信息,第二部分就是票证本身。客户端的信息会用用户的密码哈希来加密。而票证将依据访问的是系统资源,还是服务资源来决定采用系统或者服务密钥进行加密。工作站在加入域时就已创建了系统密钥,工作站的服务票证是用系统密钥加密的。

6、 Kerberos客户端用自己的密码哈希解密出属于自己的那部分数据,并缓存票证和会话密钥。它会使用会话密钥来构建一个鉴别码(鉴别码包括客户端的名称,所属域以及一个时间戳构成,主要用来在客户端和目标服务器之间进行验证)。并将其发送给目标服务器

7、 目标服务器的LSA收到会话票证和鉴别码之后,将其交给Kerberos协议来处理。

8、 目标服务器使用自己的密码哈希来解密属于自己的那部分数据,并用里面的会话密钥来解密鉴别码。验证通过后,Kerberos协议从票证的“授权数据”字段读取PAC的内容,交给本地LSA,后者利用他为用户创建一个本地访问令牌。同时,也会用票证中的会话密钥来构建自己的一个鉴别码

9、 Kerberos客户端验证返回的鉴别码,如果验证通过,则整个认证过程结束。

 

关于跨域的票证索取这里就不详细说了(第五篇会稍微点到一些关键的部分),过程基本上和在本域内访问是一样的,只不过本地的KDC会代表用户向父域的KDC来索取一个TGT,结果客户在向父域去索取目标服务器的会话票证。如果父域没有目标服务器,就会再一层一层往上走。直接找到目标服务器为止

 

下面的一篇文章会就一些Kerberos术语来讲解一下