Citando al HTTPS RFC:
Cuando el apretón de manos TLS ha terminado. El cliente puede iniciar la primera solicitud HTTP . Todos los datos HTTP DEBEN enviarse como TLS "solicitud datos".
Básicamente, primero se establece el canal seguro SSL/TLS. Solo entonces se usa el protocolo HTTP. Esto protegerá todo el tráfico HTTP con SSL, incluidos los encabezados HTTP (que contienen la URL y las cookies).
Lo que puede verse en el handshake es el nombre del host, ya que está contenido en el certificado del servidor que se verá claramente en el handshake (y es fácil adivinar el nombre del host mirando la dirección IP de destino de todas formas).
Al usar la Indicación del nombre del servidor, el nombre de host solicitado también debe estar visible en la extensión server_name
en el mensaje ClientHello
. De lo contrario, puede haber un poco de ambigüedad (para el espía) para adivinar el nombre de host del certificado si el certificado es válido para múltiples nombres de host (por ejemplo, múltiples Alt. Nombres o comodines). En este caso, espiar la solicitud DNS del cliente podría darle una pista al atacante.
Leyendo las respuestas y comentarios de otras personas, algunos mencionan problemas sobre Referer
(perdieron un r
en la especificación) y registros.
Uno de los puntos débiles potenciales restantes es cómo le das que enlazan con el usuario. Si está incrustado en una página web servida sobre HTTP simple, cualquiera que pueda leer esa página podrá verla. También debe publicar dicha página en HTTPS. Si envía ese enlace por correo electrónico, diría que todas las apuestas están desactivadas, ya que los servidores de correo rara vez encriptan las conexiones entre ellos y los usuarios también suelen acceder a su cuenta de correo electrónico sin ningún cifrado.
EDIT:
Además, si usted está utilizando la autenticación de certificado de cliente, el certificado de cliente serán visibles si se negocia durante el apretón de manos inicial. Esto puede filtrar el nombre del usuario que accede al sitio web (a menudo los DN del sujeto contienen el nombre de usuario). El certificado del cliente no estará visible si se envía durante un intercambio de manos negociado de nuevo.
Solo para aclarar (ver algunas otras respuestas). Tu problema es escuchar a escondidas en el medio, ¿verdad? ¿Le preocupa la forma en que almacena * sus * registros también (presumiblemente está ejecutando este servidor)? – Bruno
posible duplicado de [¿Están las URL de https encriptadas?] (Http://stackoverflow.com/questions/499591/are-https-urls-encrypted) – Gumbo