【问题标题】:GSSException:Failure unspecified at GSS-API (Mechanism level: Encryption type AES256CTS mode with HMAC SHA1-96 is not supported/enabled)using spnegoGSSException:在 GSS-API 处未指定失败(机制级别:不支持/启用具有 HMAC SHA1-96 的加密类型 AES256CTS 模式)使用 spnego
【发布时间】:2016-11-04 09:18:33
【问题描述】:

当我尝试使用密钥表文件对 Kerberos 进行身份验证时,我遇到了下面提到的问题。

GSSException:在 GSS-API 级别未指定故障(机制级别:不支持/启用具有 HMAC SHA1-96 的加密类型 AES256CTS 模式)

我已按照http://spnego.sourceforge.net/pre_flight.htmlhttp://spnego.sourceforge.net/server_keytab.html 中提到的步骤设置完整的环境。

以下是我的 conf 文件,

krb5.conf

[libdefaults]

    default_tkt_enctypes = aes128-cts aes256-cts

    default_tgs_enctypes = aes128-cts aes256-cts

    permitted_enctypes   = aes128-cts aes256-cts

[realms]

ATHENA.LOCAL  = {

     kdc = cerberus.athena.local 

     default_domain = ATHENA.LOCAL 
}

[domain_realm]

    .ATHENA.LOCAL = ATHENA.LOCAL

login.conf

spnego-client {
    com.sun.security.auth.module.Krb5LoginModule required;
};

spnego-server {
    com.sun.security.auth.module.Krb5LoginModule required
    storeKey=true
    useKeyTab=true
    keyTab="file:///E:/tomcat-7.0.55/bin/test.keytab"
    isInitiator=false;
};

custom-client {
    com.sun.security.auth.module.Krb5LoginModule required
    storeKey=true
    useKeyTab=true
    keyTab="file:///E:/tomcat-7.0.55/bin/test.keytab"
    principal=zeus;
};

谁能告诉我解决这个问题的方法。

【问题讨论】:

    标签: java encryption kerberos spnego keytab


    【解决方案1】:
    1. 您将 krb5.conf 中允许的加密类型锁定为仅允许 AES128 加密类型,而您想要执行 AES256,这是一个问题。
    2. 在 krb5.conf 的最底部,最后一行是错误的。应该是 .athena.local=ATHENA.LOCAL(参考:http://web.mit.edu/KERBEROS/krb5-1.5/krb5-1.5.4/doc/krb5-admin/Sample-krb5_002econf-File.html
    3. 如果您的 keytab 实际上支持 AES256 加密类型,那么与 keytab 相关的目录帐户也必须启用以支持 AES256 加密类型。如果您使用的是 Active Directory,则会有一个复选框。
    4. 您必须在 Directory/Kerberos 数据库中为您尝试对其进行身份验证的服务注册一个 SPN。如果是 HTTP 服务,它看起来像:HTTP/server1.athena.local
    5. 您需要服务器上存在 Java 司法管辖区无限强度策略文件来解密 AES256 加密。
    6. 最后但同样重要的是,您没有指定要使用 Kerberos 的目录服务。是活动目录吗?红帽 IdM?开放目录?海姆达尔 Kerberos。这里没有太多可做的事情。

    【讨论】:

    • 嗨@Arjun,不确定您所说的关于#6 的“LDAP”是什么意思。那么第 1-5 点呢?
    • 嗨@todd,对于第 1 点和第 3 点,我们尝试了 AES128 和 AES256,但仍然没有成功。对于第 4 点,注册了 SPN。对于第 5 点,我会尝试的。对于第 6 点,我们使用的 LDAP 类似于带有 kerberos 的 AD。
    • 嗨@todd,在执行第 5 点后,我得到了一个不同的错误,下面是错误消息,GSSException:在 GSS-API 级别未指定失败(机制级别:无效参数(400)-找不到适当类型的密钥来解密 AP REP - AES256 CTS 模式与 HMAC SHA1-96) sun.security.jgss.krb5.Krb5Context.acceptSecContext(Krb5Context.java:788)
    • 此时,您可能忘记在您的密钥表中包含 AES256-SHA1 加密支持,这是基于他抛出的错误。您可以发布用于创建密钥表的命令吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 2018-12-13
    • 2019-06-10
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    • 2021-07-02
    相关资源
    最近更新 更多