java - sslv3 - ssl deprecated
Cómo deshabilitar el protocolo SSLv3 en Jetty para evitar el ataque de poodle (3)
¿Hay alguna lista de exclusión específica disponible que deshabilite solo los cifrados SSLv3 que no son TLSv1 / 2?
Tengo el embarcadero 8, y actualizar a 9 no es una opción ahora. Mi actual jetty-ssl.xml se ve como sigue
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
<Arg>
<New class="org.eclipse.jetty.http.ssl.SslContextFactory">
.........
</New>
</Arg>
<Set name="ExcludeCipherSuites">
<Array type="java.lang.String">
<Item>SSL_RSA_WITH_NULL_MD5</Item>
<Item>SSL_RSA_WITH_NULL_SHA</Item>
<Item>SSL_RSA_EXPORT_WITH_RC4_40_MD5</Item>
<Item>SSL_RSA_WITH_RC4_128_MD5</Item>
<Item>SSL_RSA_WITH_RC4_128_SHA</Item>
<Item>SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5</Item>
<Item>SSL_RSA_WITH_IDEA_CBC_SHA</Item>
<Item>SSL_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
<Item>SSL_RSA_WITH_DES_CBC_SHA</Item>
<Item>SSL_RSA_WITH_3DES_EDE_CBC_SHA</Item>
<Item>SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA</Item>
<Item>SSL_DH_DSS_WITH_DES_CBC_SHA</Item>
<Item>SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA</Item>
<Item>SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
<Item>SSL_DH_RSA_WITH_DES_CBC_SHA</Item>
<Item>SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA</Item>
<Item>SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA</Item>
<Item>SSL_DHE_DSS_WITH_DES_CBC_SHA</Item>
<Item>SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA</Item>
<Item>SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
<Item>SSL_DHE_RSA_WITH_DES_CBC_SHA</Item>
<Item>SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA</Item>
<Item>SSL_DH_anon_EXPORT_WITH_RC4_40_MD5</Item>
<Item>SSL_DH_anon_WITH_RC4_128_MD5</Item>
<Item>SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA</Item>
<Item>SSL_DH_anon_WITH_DES_CBC_SHA</Item>
<Item>SSL_DH_anon_WITH_3DES_EDE_CBC_SHA</Item>
<Item>SSL_FORTEZZA_KEA_WITH_NULL_SHA</Item>
<Item>SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA</Item>
<Item>SSL_FORTEZZA_KEA_WITH_RC4_128_SHA</Item>
<Item>SSL_DHE_RSA_WITH_AES_128_CBC_SHA</Item>
<Item>SSL_RSA_WITH_AES_128_CBC_SHA</Item>
</Array>
</Set>
</New>
</Arg>
</Call>
aún cuando ejecuto "sslscan --no-failed --ssl3 localhost: 443" me sale
Supported Server Cipher(s):
Accepted SSLv3 128 bits DHE-RSA-AES128-SHA
Accepted SSLv3 128 bits AES128-SHA
Prefered Server Cipher(s):
SSLv3 128 bits DHE-RSA-AES128-SHA
He configurado Jetty 8.1 sin ssl3. Puedes ver la estructura completa de jetty-ssl.xml.
<Configure id="Server" class="org.eclipse.jetty.server.Server"> <Call name="addConnector"> <Arg> <New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector"> <Arg> <New class="org.eclipse.jetty.http.ssl.SslContextFactory"> <Set name="keyStore">... </Set> <Set name="keyStorePassword">... </Set> <Set name="keyManagerPassword">... </Set> <Set name="trustStore">... </Set> <Set name="trustStorePassword>... </Set <Set name="ExcludeProtocols"> <Array type="java.lang.String"> <Item>SSLv3 </Item> </Array> </Set> </New> </Arg> <Set name="port">... </Set> <Set name="maxIdleTime">... </Set> </New> </Arg> </Call> </Configure>
Para ampliar en @Lars responde ..
Para Jetty 7, Jetty 8 y Jetty 9, debe excluir el protocolo SSLv3
(no el cifrado) en cualquier SslContextFactory
que esté utilizando para configurar un Conector basado en SSL.
Para una distribución de embarcadero
Edite el ${jetty.home}/etc/jetty-ssl.xml
y agregue el siguiente fragmento de ${jetty.home}/etc/jetty-ssl.xml
XML.
<Set name="ExcludeProtocols">
<Array type="java.lang.String">
<Item>SSLv3</Item>
</Array>
</Set>
Dentro de cualquier elemento que maneje un org.eclipse.jetty.http.ssl.SslContextFactory
Para Embarcadero Embebido
Cualquier SslContextFactory que cree / administre para sus conectores basados en SSL, solo necesita configurar los protocolos excluidos.
SslContextFactory sslContextFactory = new SslContextFactory();
sslContextFactory.addExcludeProtocols("SSLv3");
sslContextFactory.setKeyStorePath(...);
...
Tuve que deshabilitar SSLv3 en una aplicación donde integramos el código fuente de Jetty. Según lo que cambié en el código, supongo que agregaría lo siguiente:
<Set name="ExcludeProtocols">
<Array type="java.lang.String">
<Item>SSLv3</Item>
</Array>
</Set>
Dale una oportunidad y hazme saber si funciona para ti.