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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将kinit与keytab文件一起使用时会发生什么相关的知识,希望对你有一定的参考价值。

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

ktab -k "mykeytab" -a <someprincipal>

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

kinit -k -t "mykeytab" <someprincipal>

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

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

答案

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

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

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

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

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

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

以上是关于将kinit与keytab文件一起使用时会发生什么的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 中创建与 kinit 一起使用的密钥表

是否可以在 AD 中为用户组使用 keytab

将 Object.defineProperty 与 let 或 var 一起使用时会发生奇怪的事情

将 Cache-Control: max-age 与 ETag 一起使用时会发生啥?

当我将 [::-1] 与变量一起使用时会发生啥? [复制]

Kafka集成Kerberos之后如何使用生产者消费者命令