在keytab文件中使用kinit时会发生什么?



希望对kinit和keytab文件的使用有更多的了解例如,如果我已经为一个服务(由ktpass-mapusersomeuseraccount注册到活动目录的服务)生成了一个keytab文件

ktab -k "mykeytab" -a <someprincipal>

当一个名为USERA的用户登录到Windows并使用这个keytab作为kinit的输入参数时,真正发生了什么?

kinit -k -t "mykeytab" <someprincipal>

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

希望你能澄清我的这个困惑。由于

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

kerberos KDC不存储您的密码,而是存储一个密钥。当您发现在幕后发生的事情是您向KDC请求一个票证以请求更多的kerberos票证时,它会用您的密钥加密该票证。

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

当您使用密码时,kerberos使用"字符串到密钥"算法来转换您的密码KDC使用的密钥的密码。keytab只是将秘密密钥存储在本地文件中的一种方法。

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

因此,在您为kinit使用keytab之后,您在keytab中拥有了主体的kerberos票据。与kinit一起使用的keytab可以被认为是在文件中存储密码。

相关内容

  • 没有找到相关文章

最新更新