我一直在研究 Kerberos,我很困惑哪个组件将票证授予票证 (TGT(从KDC发送回客户端?
我遇到的一些消息来源说,TGT起源于票证授予服务(TGS(,我认为这听起来非常合乎逻辑,因为票证(即TGT(是由股票代号授予服务授予
的。但是,像这样的其他一些来源(https://software.intel.com/sites/manageability/AMT_Implementation_and_Reference_Guide/default.htm?turl=WordDocuments%2Fintroductiontokerberosauthentication.htm(
授权服务器验证用户在用户数据库中的访问权限,并创建 TGT 和会话密钥。授权服务器使用从用户密码派生的密钥对结果进行加密,并将消息发送回用户工作站。
意味着TGT源自身份验证服务 (AS(。
所以,我的问题是:KerberosTGT起源于哪里?AS还是TGS?根据上述来源,我自己更倾向于 AS,但希望对这个主题有更多的意见,谢谢。
TGT 是发给krbtgt
服务的票证。仅此而已。您可以通过 AS 或 TGS 流程获取票证。
为了从 AS 流获取票证,您需要具有 Kerberos 所谓的长期凭据来启动或完成流。AS-REP
包含一个加密到该长期凭据的值,因此仅当您拥有密码(或证书或其他任何内容(时,它才有用。
为了从TGS 流中获取票证,您需要为krbtgt
签发票证。
常见的做法是使用 AS 流请求票证,以使用密码作为长期凭据(或证书或其他任何内容(来krbtgt
。没有什么能阻止您在 AS-REQ 中请求不同的服务,只是碰巧没有人这样做,因为它违背了使用 TGT 代替信誉的目的。有一些特定的服务是特殊情况,例如密码更改,尽管这是您获得票证的唯一方法(假设您的密码已过期,您无法获得 TGT,但可以获得更改票(。
拥有 TGT 后,您可以使用TGS-REQ
请求任何其他服务的票证,包括通过将服务设置为krbtgt
来请求另一个 TGT(它实际上被视为续订(。TGS-REP
将返回到客户端,并包含使用 krbtgt 会话密钥加密的服务票证。客户端可以解密它,因为它具有会话密钥。解密后,客户端将其转换为AP-REQ
并将其交给任何请求票证的应用程序。AP-REQ 中的票证已加密为服务密码。