OPENAM是否支持SHA-256加密

时间:2016-11-22 07:23:04

标签: encryption openam opensso

根据我在互联网上所做的知识和研究,目前OPENAM似乎不支持SHA-256加密。我在我的项目中使用SAML身份验证,目前使用不支持SHA 256加密的旧openfed jar。我也浏览了最新的jar,发现openam不支持它。 仅供参考.. 以下是QuerySignatureUtil.java的片段:

final String querySigAlg;
    final String alg = privateKey.getAlgorithm();
    switch (alg) {
        case "RSA":
            //Defaulting to RSA-SHA1 for the sake of interoperability
            querySigAlg = SystemPropertiesManager.get(SAML2Constants.QUERY_SIGNATURE_ALGORITHM_RSA,
                    XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA1);
            break;
        case "DSA":
            //Defaulting to SHA1WithDSA as JDK7 does not support SHA256WithDSA
            querySigAlg = SystemPropertiesManager.get(SAML2Constants.QUERY_SIGNATURE_ALGORITHM_DSA,
                    XMLSignature.ALGO_ID_SIGNATURE_DSA);
            break;
        case "EC":
            querySigAlg = SystemPropertiesManager.get(SAML2Constants.QUERY_SIGNATURE_ALGORITHM_EC,
                    XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA512);
            break;
        default:
            SAML2Utils.debug.error(classMethod + "Private Key algorithm not supported: " + alg);
            throw new SAML2Exception(SAML2Utils.bundle.getString("algorithmNotSupported"));
    }

在浏览互联网时,我找到了机票https://bugster.forgerock.org/jira/browse/OPENAM-8627

但它似乎只针对.NET fedlet。

有人可以吗

1 个答案:

答案 0 :(得分:0)

首先,SHA-256不是加密算法。

数字签名可以使用SHA256作为摘要算法,是的。正如您在QuerySignatureUtil的源代码中看到的那样,实际的算法现在是可配置的,并且可以占用大量different values。配置检索是通过代码段中的SystemPropertiesManager调用完成的,配置可以来自两个地方:

  • 对于fedlet:属性应在FederationConfig.properties中定义。
  • 对于OpenAM服务器,可以在全局设置中的Common Federation Configuration下找到设置。

如果您想查看数字签名实现,那么有两类感兴趣:

  • FMSigProvider:此类处理正确的XML签名,根据xmldsig规范,所有数字签名都将成为XML文档的一部分。
  • QuerySignatureUtil:此类主要处理查询字符串签名,该规则具有与常规XML签名不同的规则集。在这种情况下,签名将不是签名的XML文档的一部分,而是将签名放在查询字符串上。描述HTTP重定向绑定的SAML binding spec将更详细地讨论这一点。

如果要控制数字签名中的DigestMethod值,则需要查看在13.5.0中实现的OPENAM-7778

如果要使用256位加密算法加密SAML消息,则需要安装JCE jurisdiction files,之后,您应该能够将http://www.w3.org/2001/04/xmlenc#aes256-cbc配置为XML加密算法。