
Utilizo Wireshark para analizar el tráfico web.
Cuando abro mi navegador web y escribo la dirección: stackexchange.com, primero realiza una consulta DNS, recibe una respuesta y luego envía un paquete TCP Syn a la dirección IP adecuada en el puerto 80.
Pero cuando escribo www.paypal.com, hace lo mismo pero el paquete TCP Syn se envía directamente al puerto 443.
La respuesta DNS no parece incluir el puerto de destino, ni tampoco existe ninguna negociación de protocolo entre mi navegador y el sitio de destino.¿Cómo sabe mi navegador el puerto de destino?
Tenga en cuenta que no escribohttp://stackexchange.comohttps://www.paypal.com, sino simplemente stackexchange.com y www.paypal.com.
Respuesta1
Su navegador recuerda el puerto y el protocolo de la interacción anterior con el sitio.
Paypal utiliza seguridad de transporte estricta HTTP. Esto significa que el servidor había enviado (quizás a través del puerto 80) un encabezado de respuesta incluso Strict-Transport-Security:max-age=63072000
antes de que usted comenzara a buscar. La edad mostrada está en segundos. Así, durante los dos años siguientes a una visita al puerto 80, el navegador no tiene que volver a ir al puerto 80; debería ir al puerto 443. De hecho, las visitas posteriores al puerto 443 recibirán la misma instrucción, por lo que se aplica indefinidamente para las personas que usan Paypal todos los años.
Esta es una mejora con respecto al esquema anterior donde cada solicitud al puerto 80 recibía una redirección al puerto 443, que era más lento. Confiar en redirecciones también era menos seguro porque al navegador no le importaría si Paypal (o más bien un atacante MITM que se hacía pasar por Paypal) se convirtiera repentinamente de HTTPS a HTTP, si se usaban redirecciones. Bajo la estricta seguridad de transporte HTTP, este tipo de ataque terminará siendo mucho más notorio ya que el atacante se vería obligado a usar HTTPS para hablar con el navegador, pero no tiene acceso a ningún certificado de servidor HTTPS emitido para Paypal.
Respuesta2
El navegador normalmente prueba primero HTTP y luego es redireccionado a HTTPS. Ese es el caso común, pero no el único.
Chrome y Firefox apoyan la noción deSeguridad de transporte estricta HTTPListas de carga previa que son listas de sitios a los que solo se debe contactar a través de HTTPS, incluso si se hace referencia a ellos con una URL HTTP.
Se puede encontrar información más detallada.aquí.
Respuesta3
Google Chrome, Mozilla Firefox e Internet Explorer/Microsoft Edge abordan esta limitación implementando una "lista precargada de HSTS", que es una lista que contiene sitios conocidos que admiten HSTS. Entonces, la solicitud de su navegador va al dominio del servidor configurado HSTS respectivo directamente en https.
De lo contrario, tenía que haber una solicitud http y el servidor habría tenido que redirigir a https (en el caso de HSTS, el servidor responde con un encabezado; use solo HTTPS: Strict-Transport-Security: max-age=31536000).
Respuesta4
El navegador web siempre solicitará el puerto 80, por lo que después de todo el servicio SSL está en el lado del servidor, cuando un cliente se conecta al suyo, el servidor redirige la conexión a una segura o "https".