Descifrar el tráfico TLS

2

Tengo la captura Wireshark de un protocolo de enlace TLS como se muestra en la imagen adjunta a continuación.

Deseo descifrar el tráfico registrado que sigue. Soy un novato y, por lo que he leído hasta ahora, necesito una clave privada para descifrar los datos. Aparentemente, esta clave debería ser accesible desde los paquetes de intercambio que he registrado. ¿Es eso correcto?

Solo tengo acceso a la clave pública del Certificado, que supongo que desempeña un papel para comenzar a entender la captura del protocolo de enlace.

¿Puede alguien indicarme información sobre cómo puedo recuperar la clave privada? ¿Hay otra forma de obtener acceso a la clave privada?

Como alternativa, intenté registrar las claves SSL usando la variable SSLKEYLOGFILE pero la comunicación no parece estar ocurriendo directamente con el navegador, en lugar de hacerlo a través de algún applet de Java integrado en el navegador. Incluso si puedo hacer que el applet descargue las llaves, debería seguir mi camino. Sin embargo, no tengo idea de cómo hacerlo.

Otra alternativa sería agregar manualmente el cliente al azar (fácil de encontrar) y los secretos maestro / pre maestro (sin idea de cómo encontrarlos) al archivo de registro de claves. Cualquier consejo sobre cómo encontrar uno de estos dos valores también será muy útil.

Agradecería cualquier respuesta.

    
pregunta BombayBlue 15.12.2017 - 22:47
fuente

1 respuesta

3
  

¿Cómo puedo ir para recuperar la clave privada?

La clave es, como sugiere su nombre, privada. Es un secreto que solo debe conocer el servidor. Si es el propietario del servidor, lo encontrará en la configuración del servidor (los detalles dependen del servidor real). Si no es el propietario del servidor, es de esperar que no pueda obtener la clave privada.

Tenga en cuenta también que la clave privada no ayuda si se utiliza el intercambio de claves DHE o ECDHE, que es la forma recomendada hoy. Pero en su pcap específico, este no parece ser el caso (no hay un mensaje ServerKeyExchange).

  

Intenté registrar las claves SSL usando la variable SSLKEYLOGFILE pero la comunicación no parece estar ocurriendo directamente con el navegador, en lugar de hacerlo a través de algún applet de Java incrustado en el navegador. Incluso si puedo hacer que el applet descargue las llaves, debería seguir mi camino. Sin embargo, no tengo idea de cómo hacerlo.

Si la aplicación proporciona una forma de volcar claves, depende de la aplicación. Incluso SSLKEYLOGFILE solo se puede usar con versiones anteriores de Chrome y Firefox o con versiones actuales de Firefox, pero solo en versiones de depuración, consulte Chrome no Firefox no se vuelca a la variable SSLKEYLOGFILE . Para la aplicación Java, parece que es posible extraer las claves si el código se compila con alguna biblioteca especial; consulte jSSLKeyLog - Java Agent Library para registrar claves de sesión SSL a un archivo de Wireshark para más detalles. Para obtener más información, consulte Uso del (Pre) -Master-Secret en el Wiki de Wireshark.

    
respondido por el Steffen Ullrich 16.12.2017 - 04:55
fuente

Lea otras preguntas en las etiquetas