希望对kinit和keytab文件的使用有更多的了解。例如,如果我已经有一个为服务生成的密钥表文件(该服务通过ktpass -mapuser to someuseraccount注册到active directory )
ktab -k "mykeytab" -a <someprincipal>当一个叫USERA的用户登录到Windows并使用这个keytab作为kinit的输入参数时,幕后到底发生了什么?
kinit -k -t "mykeytab" <someprincipal>kinit是否为someprincipal或当前登录的USERA生成初始凭据?
希望你能澄清我的困惑。谢谢
发布于 2014-08-12 07:11:57
这掩盖了许多重要的细节,但基本上您从KDC得到的都是一个加密的blob。
kerberos KDC不存储您的密码,而是一个密钥。当您在幕后向KDC请求票证以请求更多kerberos票证时,它会使用您的密钥对该票证进行加密。
如果您知道自己的密钥,就可以解密blob并使用它来访问其他服务。
当您使用密码启动时,kerberos使用"string to key“算法将您的密码转换为KDC使用的密钥。密钥表只是将密钥存储在本地文件中的手段。
因此,当您使用密钥表激活时,它将使用密钥表中的密钥来解密blob。就kerberos协议而言,使用keytab来激活和使用密码并没有什么区别。两者最终都使用相同的密钥来解密票证。
因此,在为kinit使用keytab之后,在keytab中就有了主体的kerberos票证。与kinit一起使用的keytab可以被认为是将密码存储在文件中。
https://stackoverflow.com/questions/25240416
复制相似问题