Kerberos 是一种网络身份验证协议,用于在计算机网络中安全地验证用户的身份。在 Windows Active Directory 中,Kerberos 是默认的身份验证协议。
当使用 Kerberos 进行身份验证时,会发生以下过程:
1用户将使用从其密码派生的密钥加密的用户名和时间戳发送到密钥分发中心 (KDC),该服务通常安装在域控制器上,负责在网络上创建 Kerberos 票证。KDC 将创建并发回票证授予票证 (TGT),这将允许用户请求额外的票证以访问特定服务,与 TGT 一起,还将向用户提供会话密钥,用户将需要该会话密钥来生成以下请求。
2当用户想要连接到网络上的服务(例如共享、网站或数据库)时,他们将使用 TGT 向 KDC 请求票证授予服务 (TGS)。 TGS 是只允许连接到为其创建的特定服务的票证。要请求 TGS,用户将发送其用户名和使用会话密钥加密的时间戳,以及 TGT 和服务主体名称 (SPN)
因此,KDC 将向我们发送 TGS 以及服务会话密钥,我们需要使用该密钥对我们想要访问的服务进行身份验证。 TGS 使用从服务所有者哈希派生的密钥进行加密。服务所有者是运行服务的用户或计算机帐户。 TGS 在其加密内容上包含服务会话密钥的副本,以便服务所有者可以通过解密 TGS 来访问它。
3然后可以将 TGS 发送到所需的服务以进行身份验证并建立连接。该服务将使用其配置的帐户的密码哈希来解密 TGS 并验证服务会话密钥
。