身份验证服务交换
用户通过键入登录名和密码开始登录到网络。 用户工作站上的 Kerberos 客户端将密码转换为加密密钥,并将结果保存在程序变量中。
然后,客户端通过向 KDC 的身份验证服务发送KRB_AS_REQ (Kerberos 身份验证服务请求) 类型的消息, (密钥分发中心 (KDC) 的 TGS) 请求票证授予服务的凭据。 此消息的第一部分标识正在请求的用户和 TGS 服务。 此消息的第二部分包含预身份验证数据,用于证明用户知道密码。 这只是使用派生自用户登录密码 的主密钥 加密的验证器消息。
当 KDC 收到KRB_AS_REQ时,它会在其数据库中查找用户,获取关联用户的主密钥,解密预身份验证数据,并评估其中的时间戳。 如果时间戳有效,则可以向 KDC 保证预身份验证数据是使用用户的主密钥加密的,因此客户端是正版的。
KDC 验证用户身份后,会创建客户端可以向 TGS 显示的凭据,如下所示:
- KDC 发明了登录 会话密钥 ,并使用用户的主密钥加密副本。
- KDC 将登录会话密钥的另一个副本和用户的授权数据嵌入票证授予票证 (TGT) ,并使用 KDC 自己的主密钥加密 TGT。
- KDC 通过回复KRB_AS_REP (Kerberos 身份验证服务回复) 类型的消息将这些凭据发送回客户端。
- 当客户端收到回复时,它使用派生自用户密码的密钥来解密新的登录会话密钥。
- 客户端将新密钥存储在其票证缓存中。
- 客户端从消息中提取 TGT,并将其存储在其票证缓存中。