将kinit与keytab文件一起使用时会发生什么

问题描述 投票:3回答:1

希望更多地了解kinit和keytab文件的使用。例如,如果我已经为服务生成了keytab文件(由ktpass -mapuser注册到活动目录的服务到someuseraccount

ktab -k "mykeytab" -a <someprincipal>

当用户调用USERA登录到Windows并使用此密钥表作为kinit的输入参数时,真正发生了什么?

kinit -k -t "mykeytab" <someprincipal>

kinit是否为someprincipal或当前登录的USERA生成初始凭据?

希望你能清除我的这种困惑。谢谢

windows active-directory kerberos jaas keytab
1个回答
7
投票

这掩盖了许多重要的细节,但基本上你从KDC得到的只是一个加密的blob。

kerberos KDC不会存储您的密码,而是存储密钥。如果您知道幕后发生的事情是您要求KDC索要更多kerberos门票,它会使用您的密钥加密该门票。

如果您知道密钥,则可以解密blob并使用它来访问其他服务。

当您使用密码进行kinit时,kerberos使用“字符串到密钥”算法将您的密码转换为KDC使用的密钥。密钥表只是将密钥存储在本地文件中的方法。

因此,当您使用密钥表进行kinit时,它会使用密钥表中的密钥来解密blob。就kerberos协议而言,使用keytab进行kinit和使用密码之间确实没有区别。两者最终都使用相同的密钥来解密票证。

因此,在使用keytab for kinit之后,您将在keytab中获得主体的kerberos票证。与kinit一起使用的密钥表可以被认为是在文件中存储密码。

© www.soinside.com 2019 - 2024. All rights reserved.