如何将密码加密到keytab文件中



我在Linux系统上使用keytab文件来使用kerberos验证服务。我想知道这个密码是如何实际存储到那个keytab文件中的。正如我们在/etc/passwd中所知,密码是在应用单向哈希方法后存储的,因此不可能从中计算明文密码。

但是在keytab文件中是如何做到这一点的呢?使用keytab的进程必须知道密码才能对用户进行身份验证?!它是否用主密码加密,以便解密?

我正在使用这个来创建一个keytab文件:

$ ktutil
ktutil:  addent -password -p my_user@MYREALM -k 1 -e rc4-hmac
Password for my_user@MYREALM:
ktutil:  wkt my_user.keytab
ktutil:  quit

有了这个keytab,我可以在不输入密码的情况下获得krbtgt。创建密钥选项卡时,与AD/KDC没有通信(因此没有可以添加用于签名或其他用途的共享密钥)。

那么,如何将密码加密到keytab中呢?如果它不是哈希算法,有可能解密吗?

通常基于密码的Kerberos密钥来自于将特定于算法的密钥派生函数应用于用户提供的密码,并将用户主体名称用作salt(这样具有相同密码的两个主体就不会具有相同的密钥)。实际使用的密钥派生函数在RFC 3961和RFC 3962中进行了定义然而,RC4配置文件在其他地方(由Microsoft)定义。

密钥推导是一个单向函数,因此没有可行的方法来"导出"密钥;解密";钥匙。

相关内容

  • 没有找到相关文章

最新更新