Kerberos:分隔AS和TGS


9

在Kerberos中,身份验证服务器(AS)和票证授予服务器(TGS)通常在同一服务器上实现。该机器称为密钥分发中心(KDC)。

当然,在同一台物理计算机上实现这些服务是很有意义的,因为在中小型网络中,将这两个服务分开是过大的。另外,我有一个相对可靠的消息来源,它说(翻译):

TGS和AS必须访问相同的数据库=>在不同的机器上实现TGS和AS没有太大意义

但是我看不到两者之间必须共享哪个数据库。

这是我的想法,我如何将AS和TGS分开,没有共享数据库:

  • 由于AS和TGS分开,因此它们具有不同的主密钥
  • AS具有一个数据库,其中包含所有用户及其各自的主密钥(在用户登录时使用,用于加密会话密钥),以及TGS的主密钥(用于加密请求的TGT)。
  • TGS有一个数据库,该数据库可以确定允许哪个用户使用哪个服务(ACL,吊销列表等),以及一个包含所有服务及其各自主密钥(用于加密票证)的数据库。

用户想要使用服务时(简体):

  • 在AS进行身份验证
  • 获取使用TGS主密钥加密的票证授予票证(TGT),以及使用用户的主密钥加密的会话密钥。
  • 与TGT联系TGS
  • 获取使用服务的主密钥加密的票证
  • 凭票联系服务

我是否缺少某些东西,或者将AS和TGS分开真的没有问题吗?


1
听起来您对Kerberos内部结构的了解太深了。扩展的通常方法是只添加更多的KDC,所以我不太确定您要完成什么。
迈克尔·汉普顿

1
对-您要解决的实际上是什么问题?
mfinni 2014年

1
我不是要解决任何具体问题。我只是想了解Kerberos内部知识(用于考试),而实际上暂时不想使用它。这个问题纯粹是理论上的问题,我只想知道我是否理解错了或者问题中的引用是否完全正确。
Misch 2014年

Answers:


4

您的问题全是理论。所以我会以实物回答。AS和TGS是逻辑服务器,因此从理论上讲它们可以分开。但是实际上,没有充分的理由在单独的计算机上实现它们,因此在现实生活中没有人这样做。就Kerberos身份验证而言,即使是世界上最大,最繁忙的网络也无需分离KDC的逻辑组件。在Kerberos的实际实现中,AS所需的所有数据和TGS所需的所有数据都存储在同一数据库中。它可以理论上可以分开,但就是没有充分的理由这样做,会做什么,但实现复杂不必要的。


1
我只是在将AS和TGS分开时发现了另一个问题:不仅可以从AS中获取TGT,而且还可以要求获得其他服务的票证(例如,如果您知道只需要一张票证,那么无需通过TGT绕行)。这意味着AS还需要我假设只有TGS需要的所有数据。
Misch 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.