¿Están cifrados los encabezados HTTPS?
Cuando envío datos a través de HTTPS, sé que el contenido está cifrado, sin embargo, escucho respuestas mixtas sobre si los encabezados están cifrados o qué parte del encabezado está cifrado.
¿ Cuántos encabezados HTTPS están cifrados?
Incluyendo URL de solicitud GET/POST, cookies, etc.
Todos los encabezados HTTP están cifrados † . Es por eso que SSL en vhosts no funciona muy bien: necesita una dirección IP dedicada porque el encabezado del Host está cifrado.
† El estándar de identificación de nombre de servidor (SNI) significa que es posible que el nombre de host no esté cifrado si utiliza TLS. Además, ya sea que esté utilizando SNI o no, los encabezados TCP e IP nunca están cifrados. (Si lo fueran, sus paquetes no serían enrutables).
Los encabezados están completamente cifrados. La única información que circula por la red "claramente" está relacionada con la configuración SSL y el intercambio de claves D/H. Este intercambio está cuidadosamente diseñado para no proporcionar ninguna información útil a los espías y, una vez que ha tenido lugar, todos los datos se cifran.
Nueva respuesta a una vieja pregunta, lo siento. Pensé en agregar mis $.02
El OP preguntó si los encabezados estaban cifrados.
Están: en tránsito.
NO lo son: cuando no están en tránsito.
Por lo tanto, la URL de su navegador (y el título, en algunos casos) puede mostrar la cadena de consulta (que generalmente contiene los detalles más confidenciales) y algunos detalles en el encabezado; el navegador conoce cierta información del encabezado (tipo de contenido, Unicode, etc.); y el historial del navegador, la administración de contraseñas, los favoritos/marcadores y las páginas almacenadas en caché contendrán la cadena de consulta. Los registros del servidor en el extremo remoto también pueden contener cadenas de consulta, así como algunos detalles de contenido.
Además, la URL no siempre es segura: el dominio, el protocolo y el puerto son visibles; de lo contrario, los enrutadores no saben dónde enviar sus solicitudes.
Además, si tiene un proxy HTTP, el servidor proxy conoce la dirección, normalmente no conoce la cadena de consulta completa.
Entonces, si los datos se mueven, generalmente están protegidos. Si no está en tránsito, no está cifrado.
No es por ser quisquilloso, pero los datos al final también se descifran y se pueden analizar, leer, guardar, reenviar o descartar a voluntad. Además, el malware en cualquier extremo puede tomar instantáneas de los datos que ingresan (o salen) del protocolo SSL, como por ejemplo Javascript (malo) dentro de una página dentro de HTTPS que puede realizar subrepticiamente llamadas http (o https) a sitios web de registro (ya que el acceso al disco duro local a menudo está restringido y no es útil).
Además, las cookies tampoco están cifradas bajo el protocolo HTTPS. Los desarrolladores que quieran almacenar datos confidenciales en cookies (o en cualquier otro lugar) deben utilizar su propio mecanismo de cifrado.
En cuanto al caché, la mayoría de los navegadores modernos no almacenan en caché las páginas HTTPS, pero ese hecho no está definido por el protocolo HTTPS; depende completamente del desarrollador de un navegador asegurarse de no almacenar en caché las páginas recibidas a través de HTTPS.
Entonces, si le preocupa el rastreo de paquetes, probablemente esté bien. Pero si le preocupa el malware o que alguien esté hurgando en su historial, marcadores, cookies o caché, todavía no está fuera del agua.
La versión 1.1 de HTTP agregó un método HTTP especial, CONNECT, destinado a crear el túnel SSL, incluido el protocolo de enlace y la configuración criptográfica necesarios.
A partir de entonces, todas las solicitudes regulares se envían envueltas en el túnel SSL, incluidos los encabezados y el cuerpo.
HTTPS (HTTP sobre SSL) envía todo el contenido HTTP a través de un túnel SSL, por lo que el contenido y los encabezados HTTP también están cifrados.