A menudo he escuchado que dice que si está iniciando sesión en un sitio web (un banco, GMail, lo que sea) a través de HTTPS, la información que transmite está protegida contra el espionaje por parte de terceros. Siempre he estado un poco confundido en cuanto a cómo esto podría ser posible.
Claro, entiendo bastante bien (creo) la idea de cifrado, y que sin saber la clave de cifrado a las personas les resultaría difícil romper el cifrado. Sin embargo, entiendo que cuando se establece una conexión HTTPS, la clave de cifrado se "discute" entre las distintas computadoras involucradas antes de que se establezca la conexión cifrada. Puede haber muchos factores involucrados en la elección de una clave de cifrado, y sé que tiene que ver con un certificado SSL que puede provenir de algún otro servidor. No conozco el mecanismo exacto.
Sin embargo, me parece que si la clave de cifrado debe negociarse entre el servidor y el cliente antes de que comience el proceso de cifrado, cualquier atacante con acceso al tráfico de la red también podrá monitorear la negociación de la clave. , y por lo tanto sabría la clave utilizada para establecer el cifrado. Esto haría que el cifrado fuera inútil si fuera cierto.
Es obvio que este no es el caso, porque HTTPS no tendría ningún valor si lo fuera, y es ampliamente aceptado que HTTPS es una medida de seguridad bastante efectiva. Sin embargo, no entiendo por qué no es cierto. En resumen: ¿cómo es posible que un cliente y un servidor establezcan una conexión cifrada a través de HTTPS sin revelar la clave de cifrado a ningún observador?