Como um navegador sabe se o destino é http ou https?

Como um navegador sabe se o destino é http ou https?

Eu uso o Wireshark para analisar o tráfego da web.

Quando abro meu navegador e digito o endereço: stackexchange.com, ele primeiro executa uma consulta DNS, recebe uma resposta e, em seguida, envia um pacote TCP Syn para o endereço IP adequado na porta 80.

Mas quando digito www.paypal.com, ele faz o mesmo, mas o pacote TCP Syn é enviado diretamente para a porta 443.

A resposta do DNS parece não incluir a porta de destino, nem há qualquer negociação de protocolo entre meu navegador e o site de destino.Como meu navegador conhece a porta de destino?

Observe que eu não digitohttp://stackexchange.comouhttps://www.paypal.com, mas simplesmente stackexchange.com e www.paypal.com.

Responder1

Seu navegador lembra a porta e o protocolo da interação anterior com o site.

Paypal usa segurança de transporte estrita HTTP. Isso significa que o servidor enviou (talvez pela porta 80) um cabeçalho de resposta Strict-Transport-Security:max-age=63072000antes mesmo de você começar a procurar. A idade mostrada está em segundos. Assim, durante os próximos dois anos, após uma visita à porta 80, o navegador não precisará ir para a porta 80 novamente; deveria ir para a porta 443. Na verdade, as visitas subsequentes à porta 443 receberão a mesma instrução, por isso se aplica indefinidamente para pessoas que usam Paypal todos os anos.

Esta é uma melhoria em relação ao esquema anterior, onde cada solicitação para a porta 80 era redirecionada para a porta 443, que era mais lenta. Depender de redirecionamentos também era menos seguro porque o navegador não se importaria se o Paypal (ou melhor, um invasor MITM se passando por Paypal) convertesse repentinamente de HTTPS para HTTP, se estivesse usando redirecionamentos. Sob HTTP Strict Transport Security, esse tipo de ataque acabará sendo muito mais visível, pois o invasor será forçado a usar HTTPS para se comunicar com o navegador, mas não terá acesso a nenhum certificado de servidor HTTPS emitido para Paypal.

Responder2

O navegador geralmente tenta primeiro o HTTP e depois recebe um redirecionamento para HTTPS. Esse é o caso comum, mas não o único.

Chrome e Firefox suportam a noção deSegurança de transporte estrita HTTPListas de pré-carregamento que são listas de sites que só devem ser contatados via HTTPS, mesmo que referenciados por uma URL HTTP.

Informações mais detalhadas podem ser encontradasaqui.

Responder3

Google Chrome, Mozilla Firefox e Internet Explorer/Microsoft Edge resolvem essa limitação implementando uma "lista pré-carregada de HSTS", que é uma lista que contém sites conhecidos que suportam HSTS. Assim, a solicitação do seu navegador vai para o respectivo domínio do servidor configurado pelo HSTS diretamente em https.

Caso contrário, deveria haver uma solicitação http e o servidor teria que redirecionar para https (no caso de HSTS, o servidor responde com cabeçalho - use apenas HTTPS: Strict-Transport-Security: max-age=31536000).

Responder4

O navegador sempre solicitará a porta 80, então depois de todo o serviço SSL do lado do servidor, quando um cliente se conecta ao seu serviço o servidor redireciona a conexão para uma segura ou "https".

informação relacionada