允许WildFly / JBossWS / CXF / WSS4J堆栈的RSA v1.5密钥传输算法

时间:2015-09-15 16:04:47

标签: cxf wildfly wss4j jbossws

在回应有关RSA v1.5密钥传输算法的安全公告(请参阅http://cxf.apache.org/note-on-cve-2011-1096.html)时,默认情况下,CXF和WSS4J项目都不允许使用所有相关算法。

然而,他们提供了一个配置标签“ALLOW_RSA15_KEY_TRANSPORT_ALGORITHM”,它应该重新允许这些算法(见https://ws.apache.org/wss4j/config.html

我们的问题是让这些框架(JBossWS / CXF / WSS4J)接受/使用此配置设置。我们尝试过使用:

  • 的JBoss-webservice.xml
  • 自定义CXF拦截器(在CXF创建其WSS4J拦截器后设置参数)
  • 自定义“黑客”WSS4J构建(将参数硬编码为“true”)

但这些选项似乎都没有真正重新启用对RSA v1.5密钥传输算法的支持。

有没有人知道我们应该/应该如何指定此配置参数?

2 个答案:

答案 0 :(得分:0)

这是我添加到CXF的测试:

https://git1-us-west.apache.org/repos/asf?p=cxf.git;a=commit;h=a73effb5

注意服务器已设置" allowRSA15KeyTransportAlgorithm" to" true"。

答案 1 :(得分:0)

仅当拦截器的操作中包含WSHandlerConstants.ENCRYPT操作时才应用此设置。

例如:

Map<String, Object> inProps = new HashMap<>();
inProps.put(WSHandlerConstants.ALLOW_RSA15_KEY_TRANSPORT_ALGORITHM, "true");
inProps.put(WSHandlerConstants.ACTION, 
    WSHandlerConstants.ENCRYPT + " " +
    WSHandlerConstants.SIGNATURE);
WSS4JInInterceptor wss4JInInterceptor = new WSS4JInInterceptor(inProps);