Client 发送请求到 AS(Authentication Server),注意这个请求是用 Client 的密码A加密过的,无需在网络中传递 Client 的密码A,因为在 AS 收到请求后,会从创建用户的数据库里,找到 Client 的密码A用于解密。认证成功后,AS 会返回 TGT(Ticket Granting Ticket) 给 Client,注意,这个 TGT 会用另一个密码称为密码B来加密,如下图。
然后 Client 为了请求 FileServer,会继续将用密码B加密过的 TGT 发送给 TGS(Ticket Granting Server),如下图。
而因为 TGS 也有密码B,所以解密验证通过后,又会给 Client 发送一个用又另外一个密码C加密过的 Token,如下图。
又因为 FileServer 也存有密码C,所以当 Client 将带有 Token 的请求发送给 FileServer,FileServer 会将 token 用密码C加密,再发送给 TGS,最后 TGS 用密码C解密。
最后 Client 终于可以访问 FileServer 的资源了。
最后再总结下 Kerberos 验证过程中的四个组件三个密码的关系,密码A是 Client 和 AS 共有的,而密码B是 AS 和 TGS 共有的,最后密码C是 TGS 和 FileServer 共有的。