在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,所以我不太确定您要完成什么。
—
迈克尔·汉普顿
对-您要解决的实际上是什么问题?
—
mfinni 2014年
我不是要解决任何具体问题。我只是想了解Kerberos内部知识(用于考试),而实际上暂时不想使用它。这个问题纯粹是理论上的问题,我只想知道我是否理解错了或者问题中的引用是否完全正确。
—
Misch 2014年