Firefox envía datos de la aplicación en medio del protocolo SSL

2

Estoy tratando de escribir mi propio servidor web en Java 8, y estoy teniendo un problema muy extraño. Cada vez que hago una conexión SSL con Chrome, funciona bien. Cuando probé con Firefox (59.0.2), tuve problemas de conexión, pero solo con conjuntos de cifrado que usan GCM. Parecía que después del protocolo de enlace SSL, la solicitud del navegador nunca se envió. Usando wireshark, vi que Firefox estaba enviando datos de aplicación en medio del protocolo de enlace SSL: Desde wireshark:

C = Client
S = Server

C —> S Client Hello
C <— S Server Hello, Certificate, Server Key Exchange, Server Hello Done
C —> S Client Key Exchange, Change Cipher Spec, Hello Request, Hello Request
C —> S Application Data
C <— S Change Cipher Spec
C <— S Hello Request, Hello Request

Para asegurarme de que no estaba malentendido, verifiqué esto con Chrome y con Firefox sin conjuntos de cifrado GCM, y ninguno de ellos tenía Datos de Aplicación enviados en medio del protocolo de enlace. Revisé otros sitios, como google.com, cnn.com, etc. y están usando suites de cifrado GCM sin ningún problema en Firefox, por lo que obviamente este es un problema de mi lado.

Java 8 no es compatible con ALPN, por lo que no es un inicio falso de TLS. ¿Alguna idea sobre qué causaría el problema específico con Firefox y no con Chrome?

    
pregunta user9058115 26.04.2018 - 05:05
fuente

1 respuesta

5

De hecho, estás viendo TLS False Start. El cliente envía los datos de la aplicación justo después de sus propios mensajes ChangeCipherSpec y Finished, pero antes recibe los mensajes ChangeCipherSpec y Finished del servidor.

La especificación ( RFC 7918 ) no requiere la extensión ALPN (o su predecesora, NPN), esta era una Política que implementó Google para Chrome. En su lugar, impone requisitos en la suite de cifrado, el método de intercambio de claves y la versión del protocolo. No tiene una lista exhaustiva de combinaciones prohibidas o permitidas, pero recomienda dos conjuntos de cifrado AES-GCM, utilizados con el método de intercambio de clave DHE (EC).

En cuanto a Firefox, solía tener una preferencia en el pasado para requerir ALPN / NPN, pero eso se eliminó en enlace . Para deshabilitarlo ahora, vaya a about:config y la preferencia security.ssl.enable_false_start a false .

    
respondido por el Lekensteyn 26.04.2018 - 11:33
fuente

Lea otras preguntas en las etiquetas