Recientemente leí sobre cómo funcionan los HTTPS y tengo algunas preguntas que aclarar. Perdóneme si esto suena tonto, pero solo necesito aclararlo. Corrígeme si me equivoco.
Tengo que saber que, como parte del inicio del protocolo de enlace TLS, hay un cifrado asimétrico en el que se utiliza la clave pública del Certificado para cifrar la clave generada por el cliente antes de enviarla al servidor y solo el servidor puede descifrarla utilizando su clave privada.
Pero los mensajes posteriores (solicitudes HTTP) utilizan cifrado simétrico con la clave generada por el cliente y tanto el cliente como el servidor usan esta clave para cifrar y descifrar los datos de la aplicación.
Hay una famosa teoría en la criptografía que dice que "la repetición no es buena", donde si un solo mensaje se repite en un mensaje cifrado, es fácil descifrarlo. Si esto es cierto, todos los mensajes cifrados con la clave generada por el cliente tendrán HTTP/1.x
, ya que forma parte de la solicitud y la respuesta HTTP.
Por lo tanto, en teoría, un Hombre en el medio con este conocimiento posiblemente puede encontrar patrones en las solicitudes y respuestas HTTP cifradas y encontrar la cadena HTTP/1.x
en esas y la fuerza bruta para generar la clave del cliente que se utilizó para cifrar estos mensajes.
¿Estoy en lo correcto o es completamente absurdo, cualquier respuesta o guía sería muy apreciada?