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

时间:2014-08-11 09:49:46

标签: windows active-directory kerberos jaas keytab

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

}

ktab -k "mykeytab" -a <someprincipal>

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

kinit -k -t "mykeytab" <someprincipal>

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

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

1 个答案:

答案 0 :(得分:7)

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

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

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

当您使用密码进行kinit时,kerberos使用&#34;字符串来键入&#34;转换你的算法 密码到KDC使用的密钥。密钥表只是将密钥存储在本地文件中的方法。

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

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