Kerberos TGT 起源于哪里? AS 还是 TGS?

Where does Kerberos TGT originated from? AS or TGS?

我一直在研究 Kerberos,我很困惑哪个组件将 Ticket Granting Ticket(TGT)KDC 发送回客户端?

我遇到的一些消息来源说,TGT 源自 Ticket Granting Service(TGS),我认为这是非常合乎逻辑的听起来,因为票证(即 TGT)由代码授予服务授予是有意义的。

但是,像这样的其他来源 (https://software.intel.com/sites/manageability/AMT_Implementation_and_Reference_Guide/default.htm?turl=WordDocuments%2Fintroductiontokerberosauthentication.htm)

The Authorization Server verifies the user’s access rights in the user database and creates a TGT and session key. The Authorization Sever encrypts the results using a key derived from the user’s password and sends a message back to the user workstation.

暗示 TGT 来自 Authentication Service (AS).

所以,我的问题是:Kerberos TGT 起源于哪里? AS 还是 TGS?基于上述来源,我更倾向于 AS 自己,但希望就此主题提供更多信息,谢谢。

TGT 是发给 krbtgt 服务的票据。那就是 all。您可以通过 AS 或 TGS 流程获取票证。

为了从 AS 流程中获取票证,您需要拥有 Kerberos 所称的长期凭据来启动或完成流程。 AS-REP 包含一个加密到该长期凭证的值,因此只有在您有密码(或证书,或其他)时它才有用。

为了从 TGS 流程 中获得票证,您需要为 krbtgt.

签发票证

常见 做法是使用 AS 流请求 krbtgt 的票证,使用您的密码作为长期凭证(或证书,或其他)。没有什么可以阻止您在 AS-REQ 中请求不同的服务,只是碰巧没有人这样做,因为它违背了使用 TGT 代替信用的目的。有一些特殊的服务,例如密码更改,这是您获得票证的唯一方式(假设您的密码已过期,您无法获得 TGT,但可以获得 changepw 票证)。

获得 TGT 后,您可以使用 TGS-REQ 请求任何其他服务的票证,包括通过将服务设置为 krbtgt 来请求另一个 TGT(它实际上被视为续订)。 TGS-REP 返回给客户端并包含根据 krbtgt 会话密钥加密的服务票证。客户端可以解密它,因为它有会话密钥。解密后,客户端将其转换为 AP-REQ 并将其交给请求票证的任何应用程序。 AP-REQ 中的票据加密为服务密码。