¿Podemos controlar la versión SSL para ClientHello?

2

¿Podemos controlar la versión SSL para ClientHello (como pasar la versión inferior y luego la máxima admitida)?

Estoy usando el cliente Java para conectarme al servidor de aplicaciones. Actualmente mi cliente es compatible con TLSv1.0 y el servidor de aplicaciones es compatible con SSLV3, TLSV1.1 y TLSv1.2, pero TLSv1.0 se ha deshabilitado debido a su vulnerabilidad al ataque BEAST.

Quería conectarme al servidor de aplicaciones a través de SSLv3 en lugar de TLSV1.0

¿Puedo lograr lo mismo con Java Client?

    
pregunta Ashutosh 09.01.2014 - 15:14
fuente

3 respuestas

1

Sí. Al menos en Firefox (estoy ejecutando 26.0). Abre una pestaña sobre about: config. Filtre por tls.version y establezca el mínimo / máximo adecuadamente. Aquí está el desglose del significado de los valores .

También puede meterse con las suites de cifrado aceptadas a través de opciones (filtre sobre: config para: security.ssl3).

Puede probar las opciones de SSL / TLS de su navegador en: HowsMySSL.com

Buena suerte.

(Por supuesto, si, en cambio, estás buscando una respuesta general / OpenSSL, la documentación de la API es tu amiga. :-D)

    
respondido por el JJC 09.01.2014 - 16:18
fuente
1

Esta pregunta no se puede responder realmente sin saber cuál es el software cliente involucrado. El cliente decide qué entra en el ClientHello . Algunos (la mayoría) de los navegadores web pueden configurarse para usar o no usar cualquier versión específica de SSL / TLS. Por ejemplo, con Firefox, puede utilizar la URL about:config para acceder a las opciones de configuración interna, en particular, security.tls.version.min y security.tls.version.max .

Sin embargo, aún podemos evitar que dicha alteración no se pueda forzar desde el exterior (por ejemplo, un firewall o proxy) porque el protocolo de enlace finaliza con mensajes de control (llamados " Finished ") cuyos contenidos son verificados por el par (el servidor verifica el contenido del Finished del cliente y viceversa); los contenidos son en realidad un valor de hash calculado sobre el contenido completo de todos los mensajes de intercambio anteriores. Esto asegura que el cliente y el servidor realmente vieran los mismos mensajes, hasta el último bit. Si modifica un ClientHello en tránsito, entonces los mensajes Finished al final de la conexión no coincidirán y el saludo no tendrá éxito.

(El término genérico para forzar a un cliente y servidor SSL a usar una versión inferior a la que les gustaría a ambos es un ataque de reversión de versión ; SSL / TLS incluye protecciones efectivas contra eso, específicamente el contenido de los mensajes Finished .)

    
respondido por el Tom Leek 09.01.2014 - 16:22
fuente
0

Puede usar openssl con la opción s_client para iniciar la conexión SSL / TLS. Si lo hace, puede influir en el protocolo utilizado con los parámetros apropiados -ssl2 -ssl3 -tls1 -dtls1 . Puedes enumerar las opciones disponibles como esta

 openssl s_client --help
 ...
 -ssl2         - just use SSLv2
 -ssl3         - just use SSLv3
 -tls1         - just use TLSv1
 -dtls1        - just use DTLSv1
 ...
    
respondido por el fr00tyl00p 09.01.2014 - 16:31
fuente

Lea otras preguntas en las etiquetas