Os cabeçalhos HTTPS são criptografados?

600

Ao enviar dados por HTTPS, sei que o conteúdo está criptografado; no entanto, ouço respostas mistas sobre se os cabeçalhos estão criptografados ou quanto do cabeçalho está criptografado.

Quanto dos cabeçalhos HTTPS são criptografados?

Incluindo URLs de solicitação GET / POST, cookies, etc.

Dan Herbert
fonte
9
Os cabeçalhos HTTP sobre HTTPS são criptografados e também não são compactados por HTTP (mesmo que o corpo esteja). Isso os torna menos vulneráveis a ataques relacionados com a compressão como BEAST
Neil McGuigan

Respostas:

552

O lote inteiro é criptografado - todos os cabeçalhos. É por isso que o SSL no vhosts não funciona muito bem - você precisa de um endereço IP dedicado, porque o cabeçalho do host é criptografado.

O padrão SNI (Server Name Identification) significa que o nome do host pode não ser criptografado se você estiver usando TLS. Além disso, esteja você usando SNI ou não, os cabeçalhos TCP e IP nunca são criptografados. (Se fossem, seus pacotes não seriam roteáveis.)

Greg
fonte
3
@ Greg, como o gateway do vhost está autorizado, o gateway não pode descriptografá-los, observe o cabeçalho do host e determine para qual host os pacotes serão enviados?
Pacerier 12/12
2
O URL do Afaik em si não é criptografado.
Teddy
4
@Teddu, o que você quer dizer com "URL em si não está criptografado". É criptografado, pois faz parte do cabeçalho.
Dmitry Polushkin
1
Se o Fiddler é usado para capturar a comunicação https, ele ainda exibe alguns cabeçalhos, por quê? Especialmente, quando a conexão à Internet é feita através de um proxy que requer autenticação, ela exibe o cabeçalho de Autorização de Proxy quando a solicitação é reenviada após receber 407 no primeiro envio.
Bochen Lin
1
@Bochen da mesma maneira que Pegasus. Se você estiver em uma das extremidades do túnel HTTPS, poderá ver tudo. Da mesma maneira que eu posso ver qualquer coisa nas ferramentas do navegador.
Nux
97

Os cabeçalhos são totalmente criptografados. As únicas informações que passam pela rede 'limpas' estão relacionadas à configuração do SSL e à troca de chaves D / H. Essa troca foi cuidadosamente projetada para não fornecer nenhuma informação útil aos bisbilhoteiros e, uma vez realizada, todos os dados são criptografados.

mdb
fonte
4
Nem todos configuração SSL envolve DH
Dori
30
Para ser um pouco pedante: O endereço IP do cliente e servidor, o nome do host do servidor e os sinais sobre suas implementações SSL são úteis para os bisbilhoteiros e são visíveis.
Pool #
66

Nova resposta à pergunta antiga, desculpe. Eu pensei em adicionar meus $ .02

O OP perguntou se os cabeçalhos estavam criptografados.

Eles são: em trânsito.

Eles NÃO são: quando não estão em trânsito.

Portanto, o URL do navegador (e o título, em alguns casos) pode exibir a sequência de consultas (que geralmente contém os detalhes mais sensíveis) e alguns detalhes no cabeçalho; o navegador conhece algumas informações de cabeçalho (tipo de conteúdo, unicode etc.); e o histórico do navegador, o gerenciamento de senhas, os favoritos / favoritos e as páginas em cache conterão a sequência de consultas. Os logs do servidor na extremidade remota também podem conter string de consulta, além de alguns detalhes do conteúdo.

Além disso, a URL nem sempre é segura: o domínio, o protocolo e a porta são visíveis - caso contrário, os roteadores não sabem para onde enviar suas solicitações.

Além disso, se você possui um proxy HTTP, o servidor proxy sabe o endereço, geralmente ele não conhece a cadeia de consulta completa.

Portanto, se os dados estão em movimento, geralmente estão protegidos. Se não estiver em trânsito, não será criptografado.

Para não escolher, mas os dados no final também são descriptografados e podem ser analisados, lidos, salvos, encaminhados ou descartados à vontade. E malware em cada extremidade pode tirar instantâneos de dados que entram (ou saem) do protocolo SSL - como Javascript (ruim) dentro de uma página dentro de HTTPS que pode fazer clandestinamente chamadas http (ou https) para sites de log (desde o acesso ao disco rígido local) geralmente é restrito e não é útil).

Além disso, os cookies também não são criptografados pelo protocolo HTTPS. Os desenvolvedores que desejam armazenar dados confidenciais em cookies (ou em qualquer outro lugar) precisam usar seu próprio mecanismo de criptografia.

Quanto ao cache, os navegadores mais modernos não armazenam em cache as páginas HTTPS, mas esse fato não é definido pelo protocolo HTTPS, é totalmente dependente do desenvolvedor de um navegador para garantir o cache das páginas recebidas por HTTPS.

Portanto, se você está preocupado com o cheiro de pacotes, provavelmente está bem. Mas se você está preocupado com malware ou alguém vasculhando seu histórico, favoritos, cookies ou cache, ainda não está fora de água.

Andrew Jennings
fonte
20
Eu sei que as boas respostas estão no topo, mas isso mais uma vez insere informações com defeito . O domínio não está visível, a menos que o SNI seja usado. Protocolo diferente de IP e TCP não são visíveis. Você não pode dizer se estou usando HTTP 1.1, SPDY ou HTTP2. O que é visível nos dois pontos de extremidade é irrelevante, pois o objetivo da criptografia não é tornar as coisas invisíveis, mas tornar as coisas apenas visíveis para as partes confiáveis. Portanto, os pontos de extremidade estão implícitos na pergunta e cerca de 2/3 da sua resposta pode ser removida. As informações do proxy devem ser: se você usar um proxy HTTPS, ele terá acesso a tudo .
Melvyn
6
Seu link diz especificamente que os cookies são criptografados: "A conexão do visitante é criptografada, ocultando URLs, cookies e outros metadados confidenciais".
DylanYoung
1
Sim, está correto. Os cookies são criptografados enquanto estão em trânsito, mas uma vez que acessam o navegador, eles não são criptografados pelo protocolo SSL. É possível para um desenvolvedor criptografar os dados do cookie, mas isso está fora do escopo para SSL.
Andrew Jennings
4
@DylanYoung SSL = camada de soquete seguro ; TLS = segurança da camada de transporte . A criptografia está no nível do soquete (conexão) ou, de outra forma, no nível de transporte, enquanto não estiver armazenada no navegador por banco de dados do domínio.
Curiousguy
Os cookies HTTP sensíveis à segurança do @Wigwam quase sempre são referências opacas (geralmente é um número aleatório criptograficamente forte) a um registro no banco de dados do servidor de sessões autenticadas. Como tal, criptografar esse identificador sem sentido traria maior complexidade.
curiousguy
53

O HTTP versão 1.1 adicionou um método HTTP especial, CONNECT - destinado a criar o túnel SSL, incluindo o handshake de protocolo necessário e a configuração criptográfica.
Todas as solicitações regulares a seguir são enviadas agrupadas no túnel SSL, nos cabeçalhos e no corpo, inclusive.

Ávido
fonte
Quando o CONNECT é usado para criar o túnel SSL?
curiousguy
47

Com o SSL, a criptografia está no nível de transporte, portanto ocorre antes do envio de uma solicitação.

Portanto, tudo na solicitação é criptografado.

blowdart
fonte
Como o SSL ocorre na camada de transporte e a atribuição do endereço de destino em pacotes (no cabeçalho) ocorre na camada de rede (abaixo do transporte), como os cabeçalhos são criptografados?
Prateek Joshi
@PrateekJoshi Como os cabeçalhos HTTP vivem na camada do aplicativo e, por padrão, são criptografados devido à criptografia de uma camada inferior / ancestral.
precisa
40

O HTTPS (HTTP sobre SSL) envia todo o conteúdo HTTP através de um tunel SSL, para que o conteúdo e os cabeçalhos HTTP também sejam criptografados.

CMS
fonte
21

Sim, os cabeçalhos são criptografados. Está escrito aqui .

Tudo na mensagem HTTPS é criptografado, incluindo os cabeçalhos e a carga de solicitação / resposta.

pressione o botão
fonte
37
Wikipedia não é a especificação, que é o que você deveria estar citando.
Aran Mulholland #
8

o URL também é criptografado, você realmente só tem o IP, a porta e, se SNI, o nome do host não criptografado.

xxiao
fonte
Mesmo que o SNI não seja suportado, um intermediário capaz de interceptar conexões HTTP também poderá monitorar questões DNS (a maioria das interceptações é feita perto do cliente, como em um roteador de usuário pirata). Então eles poderão ver os nomes DNS.
curiousguy