¿Es posible descifrar una sesión SSL / TLS sin realizar un ataque MITM?

6

No estoy hablando de descifrar la conexión mientras está ocurriendo el SSL / TLS (MITM), pero una vez que se cierra la conexión y tengo un archivo pcap de todo el proceso de negociación / transferencia de datos.

¿Cómo puedo descifrar los datos que se pasaron en la conexión? ¿Hay alguna forma de obtener la clave de sesión (sin esperar algunos años hasta que finalice el proceso de cálculo)? ¿Ayudarán las computadoras cuánticas?

    
pregunta YSY 07.10.2011 - 14:37
fuente

2 respuestas

13

La respuesta corta es "no". La respuesta más larga es que SSL está diseñado específicamente para hacer esto imposible. Si esto fuera posible, SSL sería inútil para su propósito principal: proteger los números de tarjetas de crédito que se envían a sitios web seguros.

La respuesta corta (y técnicamente incorrecta) de cómo SSL hace esto es la siguiente:

  1. El servidor presenta un certificado al cliente.

  2. El cliente confirma que el certificado fue firmado por una organización en la que el cliente confía y que esta organización certifica que el certificado pertenece al servidor al que el cliente desea llegar.

  3. El cliente genera una clave aleatoria, la cifra con la clave pública en el certificado y la envía al servidor.

  4. El servidor descifra la clave y usa el secreto compartido que el servidor y el cliente ahora tienen para asegurar más comunicaciones. (Sin embargo, hace esto de una manera un tanto compleja. Nuevamente, esta es una explicación simplificada).

Descifrar los datos requeriría al menos recuperar el secreto compartido generado en el paso 3. Pero, ¿cómo lo haría? Solo se envió a través del cable cifrado y no tiene la clave privada del servidor.

    
respondido por el David Schwartz 07.10.2011 - 22:34
fuente
8

Se puede hacer, pero requiere información más allá de lo que tiene en el cable. Wireshark tiene la capacidad de hacer este tipo de rastreo , asumiendo que puede ver toda la conversación y que también tiene la clave privada del certificado SSL del servidor. Sin la clave privada no funciona.

Es por esto que necesita proteger sus claves privadas.

He usado esta funcionalidad en el software de depuración. Una aplicación cliente / servidor usaba SSL para transmitir datos y algo gracioso estaba sucediendo en la capa de red. Desde que controlé todo el entorno, tenía la clave privada para el certificado SSL, así que pude usar Wireshark para obtener la conversación. Lo que a su vez apuntaba a un error que informé al desarrollo.

    
respondido por el sysadmin1138 08.10.2011 - 15:10
fuente

Lea otras preguntas en las etiquetas