Learn

284 artigosCategoria: Tudo
Rede

Diferença entre HTTP e HTTPS

Quando você abre um site, o navegador e o servidor trocam dados.

O mecanismo básico usado nessa troca da Web é o HTTP. E o mecanismo para realizar a comunicação HTTP com segurança é o HTTPS.

HTTPS não é simplesmente "um mecanismo que criptografa o conteúdo da comunicação". O ponto importante é dificultar espionagem, adulteração e falsificação por terceiros que estejam no meio da comunicação.

Por isso, no HTTPS, três pontos são especialmente importantes.

  • Dificultar que o conteúdo da comunicação seja lido no caminho
  • Dificultar que o conteúdo da comunicação seja alterado no caminho
  • Facilitar a confirmação de que a outra parte da comunicação é a parte pretendida

Ou seja, HTTPS é um mecanismo muito importante como proteção contra ataques de intermediário.

No entanto, HTTPS não é tecnologia de anonimização. Mesmo usando HTTPS, o acesso chega ao site de destino. Além disso, endereço IP de origem, , estado de login e logs de acesso permanecem como problemas separados.

Este artigo organiza e explica a diferença entre HTTP e HTTPS, o que HTTPS protege e o que ainda pode ficar visível mesmo com HTTPS.

O que é HTTP

HTTP é a regra de comunicação usada para trocar dados na Web.

Quando você abre um site no navegador, o navegador envia uma requisição ao servidor. Por exemplo, pedidos como "envie o HTML desta página" ou "quero obter esta imagem".

O servidor devolve dados como HTML, imagens, CSS e JavaScript em resposta a essa requisição.

O mecanismo usado nessa troca de requisições e respostas entre navegador e servidor é o HTTP.

HTTP em si é a base da comunicação Web. Mas apenas HTTP não tem um mecanismo para proteger o conteúdo da comunicação.

No HTTP, o conteúdo da comunicação não é criptografado. Por isso, há o risco de um terceiro no caminho da comunicação ler o conteúdo, alterá-lo ou agir como uma falsa contraparte.

Fraqueza do HTTPExplicação
Fraco contra espionagemComo o conteúdo da comunicação não é criptografado, há risco de ser lido no caminho
Fraco contra adulteraçãoHá risco de conteúdo de páginas ou dados enviados serem alterados durante a comunicação
Fraco contra falsificaçãoÉ difícil confirmar se a outra parte da comunicação é realmente o servidor pretendido

Por exemplo, se você envia uma senha em um formulário de login por HTTP, essa senha pode ser vista no caminho da comunicação. Também há o risco de o conteúdo de uma página carregada por HTTP ser alterado no caminho, com inserção de um formulário falso ou de um script malicioso.

HTTP é a base da comunicação Web, mas, usado como está, tem grandes problemas de segurança.

O que é HTTPS

HTTPS é um mecanismo para realizar a comunicação HTTP dentro de um canal seguro.

Mais precisamente, HTTPS usa HTTP sobre uma camada segura chamada TLS. Não trataremos aqui dos detalhes finos do TLS, mas, para entender HTTPS, é útil pensar que "o conteúdo da comunicação HTTP é protegido por TLS".

No HTTPS, estes três pontos são importantes.

ElementoPapelExplicação
CriptografiaDificultar a leitura do conteúdo da comunicaçãoFazer com que terceiros no caminho não consigam ler diretamente senhas e conteúdo de formulários
Detecção de adulteraçãoPermitir perceber alterações no conteúdo da comunicaçãoSe os dados forem modificados no caminho, dificultar que sejam aceitos como comunicação correta
Confirmação da contraparteConfirmar se a comunicação é com a parte pretendidaUsar certificados e mecanismos semelhantes para confirmar se o servidor de destino é legítimo

A força do HTTPS está na combinação desses três elementos.

Criptografia sozinha não basta. Por exemplo, mesmo que o conteúdo da comunicação esteja criptografado, se um atacante puder agir como servidor falso e fazer o usuário se conectar a esse servidor falso, não se pode dizer que a comunicação é segura.

Por isso, HTTPS usa não só mecanismos para proteger o conteúdo da comunicação, mas também mecanismos para confirmar se a outra parte é o site pretendido.

Diferença entre HTTP e HTTPS

A diferença entre HTTP e HTTPS não é apenas a aparência da URL começar com http[:]// ou https[:]//.

No HTTP, a comunicação entre navegador e servidor não é protegida. No HTTPS, cria-se um canal seguro entre navegador e servidor, e a troca HTTP ocorre dentro dele.

ItemHTTPHTTPS
Início da URLhttp[:]//https[:]//
Criptografia do conteúdo da comunicaçãoNão é feitaÉ feita
Proteção contra espionagem do conteúdoFracaForte
Proteção contra adulteração do conteúdoFracaFacilita detectar adulteração
Confirmação da contraparteBasicamente fracaConfirma usando certificados e mecanismos semelhantes
Resistência a ataques de intermediárioBaixaAlta
AnonimizaçãoNão é feitaNão é feita

Entender HTTPS como "HTTP com criptografia adicionada" é um pouco insuficiente. Mais precisamente, HTTPS envolve a comunicação HTTP em um canal seguro e dificulta espionagem, adulteração e falsificação.

O que é ataque de intermediário

Ataque de intermediário é um ataque em que um terceiro se coloca entre o navegador e o servidor para espionar a comunicação, alterá-la ou agir como uma falsa contraparte.

Mesmo que o usuário pense estar acessando o site real, um atacante no meio da comunicação pode estar vendo o conteúdo. Também é possível que o atacante altere o conteúdo da comunicação e insira um formulário de login falso ou código malicioso.

HTTP é fraco contra esse tipo de ataque.

No HTTPS, o conteúdo da comunicação é criptografado, adulterações são detectadas e a contraparte é confirmada. Por isso, fica mais difícil fazer um ataque de intermediário funcionar.

O que o atacante quer fazerNo caso de HTTPNo caso de HTTPS
Ler o conteúdo da comunicaçãoHá risco de ser lidoÉ difícil ler como texto claro
Espionar uma senhaO risco é altoÉ difícil espionar no caminho da comunicação
Alterar o conteúdo da páginaHá risco de alteraçãoAdulterações tendem a ser detectadas
Fazer conectar a um servidor falsoO usuário dificilmente percebeA verificação de certificado facilita impedir
Fingir ser a contraparteÉ relativamente fácilÉ difícil sem um certificado legítimo

A essência do HTTPS está aqui.

Não basta "o conteúdo da comunicação ser criptografado". É importante poder verificar "se o conteúdo não foi alterado no caminho" e "se a outra parte da comunicação é a parte pretendida".

O que HTTPS protege

O que HTTPS protege principalmente é o conteúdo da comunicação HTTP que flui entre o navegador e o servidor.

Por exemplo, as informações seguintes ficam mais difíceis de ler no caminho da comunicação graças ao HTTPS.

O que é protegidoExplicação
SenhaA senha digitada em um formulário de login fica mais difícil de ler no caminho da comunicação
Conteúdo preenchido em formuláriosNome, email, conteúdo de consulta e dados semelhantes ficam mais difíceis de ler no caminho da comunicação
Conteúdo da páginaO conteúdo exibido na página fica mais difícil de ser lido ou alterado no caminho da comunicação
Conteúdo da requisiçãoO conteúdo enviado pelo navegador ao servidor tende a ser protegido
Conteúdo da respostaO conteúdo devolvido pelo servidor ao navegador tende a ser protegido
CookieCookies enviados e recebidos durante a comunicação ficam mais difíceis de espionar no caminho

Senhas e Cookies são especialmente importantes.

Cookies podem ser usados para manter estado de login ou identificar usuários. Se um Cookie for roubado no caminho da comunicação, dependendo do caso pode haver risco de acesso como se fosse a própria pessoa.

No HTTPS, Cookies também são enviados dentro do canal criptografado, por isso ficam mais difíceis de espionar no caminho da comunicação.

No entanto, usar HTTPS não resolve todos os problemas relacionados a Cookies. A forma de armazenamento de Cookies, as configurações do site, o ambiente do navegador e a segurança do dispositivo permanecem como questões separadas.

Mesmo com HTTPS, o conteúdo chega ao servidor de destino

HTTPS é um mecanismo para proteger o conteúdo contra terceiros no caminho da comunicação. Não é um mecanismo para esconder o conteúdo do site de destino.

Por exemplo, se você digita uma senha em um formulário de login HTTPS, a senha fica mais difícil de ler no caminho da comunicação. Mas essa informação chega ao servidor do site que realiza o login.

Isso é natural. Para o servidor executar o login, ele precisa receber as informações enviadas.

O alcance da proteção do HTTPS fica principalmente no caminho da comunicação.

AlvoPapel do HTTPSExplicação
Terceiros no caminho da comunicaçãoAlvo que ele protege fortementeFacilita impedir espionagem, adulteração e falsificação
Servidor de destinoContraparte da comunicaçãoO conteúdo da requisição chega ao servidor
Endereço IP do usuárioNão esconde diretamenteHTTPS sozinho não esconde o endereço IP de origem
Conta logadaNão esconde diretamenteAções feitas com login ficam vinculadas à conta

Ou seja, HTTPS é "um mecanismo para impedir espionagem e adulteração no caminho". Não é "um mecanismo para esconder suas informações do destino".

O que ainda pode ficar visível mesmo com HTTPS

Mesmo usando HTTPS, nem todas as informações ficam escondidas.

O conteúdo da comunicação é protegido. Mas informações sobre a origem do acesso, informações sobre o destino e informações que o site recebe são questões separadas.

InformaçãoQuem pode verExplicação
Endereço IP de origemServidor de destino etc.O lado do site pode saber de qual endereço IP houve acesso
Horário de acessoServidor de destino etc.O momento do acesso pode ser registrado como log
Conteúdo da requisiçãoServidor de destinoMesmo com HTTPS, o conteúdo chega ao servidor para o qual foi enviado
CookieSite de destinoPode ser usado para identificar o mesmo usuário ou navegador
Estado de loginSite de destinoSe houver login, a ação fica vinculada à conta
Logs de acessoSite de destinoQuais páginas foram vistas e quais operações foram feitas podem ser registrados
Informações do navegadorSite de destinoInformações como User-Agent podem ser enviadas
Informações relacionadas ao destinoDepende do ambiente de comunicaçãoMesmo com conteúdo criptografado, pode ser possível inferir a qual site se está conectando

O ponto importante aqui é separar "conteúdo da comunicação" de "fato da comunicação".

HTTPS protege o conteúdo da comunicação. Mas ele não esconde automaticamente informações como de qual endereço IP veio o acesso, quando ocorreu o acesso ou com qual conta se está logado.

Além disso, no HTTPS, a URL inteira não fica sempre totalmente visível para terceiros. O caminho da página e o conteúdo de formulários são protegidos como conteúdo da comunicação. Por outro lado, informações relacionadas ao nome de domínio de destino podem ficar visíveis dependendo do ambiente de comunicação.

Por isso, usar HTTPS não faz desaparecer rastros de acesso nem informações de identificação.

HTTPS não é tecnologia de anonimização

HTTPS não é tecnologia de anonimização.

O objetivo do HTTPS é principalmente estes três pontos.

  • Dificultar que o conteúdo da comunicação seja lido no caminho
  • Dificultar que o conteúdo da comunicação seja alterado no caminho
  • Facilitar a confirmação de que a contraparte da comunicação é a parte pretendida

Isso é diferente de anonimização.

Ao pensar em anonimato, é preciso separar "se o conteúdo da comunicação está protegido" de "se quem acessou está oculto".

HTTPS tem forte relação com o primeiro ponto. Mas não resolve diretamente o segundo.

Ponto de vistaHTTPS resolve?Explicação
Proteção contra espionagem do conteúdo da comunicaçãoForte no caminho da comunicaçãoDificulta que o conteúdo seja lido no caminho
Proteção contra adulteração do conteúdo da comunicaçãoForte no caminho da comunicaçãoDificulta que o conteúdo seja alterado no caminho
Confirmação da contraparteSimConfirma o destino usando certificados e mecanismos semelhantes
Sigilo do endereço IPNãoHTTPS sozinho não esconde o endereço IP de origem
Identificação por CookieNãoA identificação pelo lado do site permanece como outro problema
Sigilo do estado de loginNãoAções feitas com login ficam vinculadas à conta
Exclusão de logs de acessoNãoA retenção de logs pelo site é uma questão separada do HTTPS

A compreensão de que "HTTPS significa anonimato" está errada.

HTTPS é uma tecnologia para tornar a comunicação segura. Não é uma tecnologia para criar anonimato.

Perspectiva para entender HTTPS corretamente

Para entender HTTPS corretamente, é preciso separar "de quem e o que ele protege".

O principal alvo protegido pelo HTTPS são terceiros no caminho da comunicação.

Por exemplo, ele facilita impedir que terceiros no mesmo Wi-Fi, equipamentos no caminho da comunicação ou intermediários maliciosos espionem o conteúdo, alterem dados ou ajam como uma falsa contraparte.

Por outro lado, o site de destino é a contraparte final da comunicação. Por isso, o conteúdo enviado chega ao lado do site.

ContraparteO que HTTPS tende a impedirO que HTTPS não impede
Terceiro no caminho da comunicaçãoEspionagem, adulteração, falsificaçãoComprometimento do próprio dispositivo
Site de destinoVazamento durante a comunicaçãoRegistro de logs pelo site e identificação por conta
Usuário do mesmo Wi-FiEspionagem do conteúdo da comunicaçãoA inferência do destino de acesso não desaparece completamente
Servidor falsoTende a ser detectado sem certificado legítimoRisco quando o usuário ignora avisos

HTTPS é um mecanismo muito forte, mas não é onipotente.

Por exemplo, se o navegador exibe um aviso sobre certificado e o usuário ignora esse aviso e prossegue, a segurança fornecida por HTTPS cai bastante. Além disso, se o próprio dispositivo estiver infectado por malware, mesmo usando HTTPS, o conteúdo digitado pode ser roubado no lado do dispositivo.

HTTPS oferece forte defesa contra espionagem, adulteração e falsificação na rede. Mas segurança do dispositivo, gestão do lado do site, tratamento de contas, Cookies e logs precisam ser considerados separadamente.

Resumo

HTTP é o mecanismo básico para trocar dados na Web. Mas apenas HTTP não criptografa o conteúdo da comunicação e há risco de espionagem ou adulteração no caminho.

HTTPS é um mecanismo para realizar a comunicação HTTP dentro de um canal seguro.

Os papéis importantes do HTTPS são estes três.

  • Dificultar que o conteúdo da comunicação seja lido no caminho
  • Dificultar que o conteúdo da comunicação seja alterado no caminho
  • Facilitar a confirmação de que a outra parte da comunicação é a parte pretendida

Por isso, HTTPS é muito importante como proteção contra ataques de intermediário.

No entanto, HTTPS não é tecnologia de anonimização. Mesmo usando HTTPS, a requisição chega ao site de destino. Além disso, endereço IP de origem, Cookie, estado de login e logs de acesso permanecem como problemas separados.

HTTPS é uma tecnologia para tornar a comunicação segura. Ela é especialmente importante para impedir espionagem, adulteração e falsificação no caminho da comunicação.

Mas não é uma tecnologia para esconder quem acessou.

Ao pensar em anonimato, é preciso separar o alcance protegido pelo HTTPS do alcance que HTTPS não protege. HTTPS é uma premissa importante, mas HTTPS sozinho não estabelece anonimato.

Artigos relacionados