krb的AES256-CTS-HMAC-SHA1-96与Microsoft Windows域之间不兼容

时间:2017-10-29 10:57:06

标签: linux active-directory ldap kerberos

我正在尝试将系统的kerberos加密从RC4升级到AES256。我已经设置了一个支持AES256加密的Microsoft Windows域用户。 我正在Linux上使用ktutil为kinit创建一个keytab:

ADD_ENTRY="addent -password -p $DOMAIN_LOCAL_USER@$DOMAIN_UPCASE -k 2 -e AES256-CTS-HMAC-SHA1-96\n$DOMAIN_LOCAL_PASS\n"
echo -e "$ADD_BASE_ENTRY\n$ADD_ENTRY\nwkt user.keytab\nquit\n" | ktutil

kinit适用于该密钥表。

但是,当我在Linux上使用ktutil为该用户创建SPN时

ADD_BASE_ENTRY="addent -password -p MSSQLSvc/$SHORT_HOSTNAME.$DOMAIN_LOWCASE@$DOMAIN_UPCASE -k 2 -e RC4-HMAC\n$DOMAIN_PASSWORD\n"
echo -e "rkt spns.keytab\n$ADD_BASE_ENTRY\n$ADD_ENTRY\nwkt spns.keytab\nquit\n" | ktutil > /dev/null 2>&1

然后我无法接受传入的连接:

GSS-API major_status:000d0000, minor_status:000186a6
GetGSSError(): GSS Error ERR_MAX: Unspecified GSS failure.  Minor code may provide more information
GetGSSError(): GSS Error ERR_MIN: Request ticket server MSSQLSvc/greensqlcent21.kerberosdc.msft:1434@KERBEROSDC.MSFT kvno 2 enctype aes256-cts found in keytab but cannot decrypt ticket

当我使用RC4_HMAC处理所有事情时,这种方法运作良好。

修改

我的应用程序模仿MSSQL服务器。我是以用户身份运行(而非计算机),我已将此用户设置为使用AES256登录。最初,我使用RC4_HMAC将SPN保留在传入的密钥表文件中(这在域用户也使用RC4_HMAC进行身份验证时常用),但我收到错误,gssapi接受函数正在SPN密钥表中查找AES256条目文件。所以我更改了SPN keytab文件也使用了AES256并得到了上述错误。

编辑2:

使用Windows 2k8和2k12作为域控制器进行测试。两者都失败了。

0 个答案:

没有答案