Learn

284 artigosCategoria: Tudo
Rede

Fundamentos de TLS

O que é TLS

Na comunicação HTTPS, os dados HTTP não são enviados como estão; eles são protegidos por um mecanismo chamado TLS.

A diferença entre HTTP e HTTPS às vezes é explicada como "se é criptografado ou não". No entanto, o papel do TLS não é apenas criptografia. Também são papéis importantes dificultar que terceiros leiam o conteúdo da comunicação, dificultar adulterações no caminho e confirmar o servidor de destino.

Este artigo organiza o que TLS protege e o que ele não protege.

O que é TLS

TLS é a sigla de Transport Layer Security, um protocolo para proteger comunicações na rede.

Na Web, ele é usado para proteger a comunicação entre navegador e servidor Web. Ao abrir um site HTTPS no navegador, o conteúdo da comunicação HTTP é enviado e recebido em estado protegido por TLS.

As proteções principais oferecidas pelo TLS são estas três.

PapelSignificadoExplicação
ConfidencialidadeDificultar a leitura do conteúdo da comunicaçãoDificultar que terceiros no caminho entendam o conteúdo dos dados
IntegridadeFacilitar a detecção de adulteração do conteúdoPermitir detectar quando os dados foram alterados no caminho
AutenticaçãoConfirmar o destino da conexãoConfirmar, por meio do certificado do servidor, se o destino possui um certificado legítimo para aquele domínio

Ou seja, em vez de lembrar TLS apenas como "um mecanismo que criptografa a comunicação", é mais preciso entendê-lo como um mecanismo que combina proteção do conteúdo da comunicação e confirmação do destino.

HTTPS é HTTP protegido por TLS

HTTPS é comunicação HTTP protegida por TLS.

HTTP é o mecanismo pelo qual navegador e servidor Web trocam conteúdo de páginas, dados de formulários e informações semelhantes. Porém, apenas HTTP não criptografa o conteúdo da comunicação. Por isso, há risco de terceiros no caminho da comunicação lerem o conteúdo ou adulterarem dados no caminho.

No HTTPS, a troca HTTP ocorre dentro do TLS. Com isso, o conteúdo de requisições e respostas enviadas por HTTP fica difícil de ler durante a comunicação.

ItemHTTPHTTPS
Conteúdo da comunicaçãoEnviado em texto claroProtegido por TLS
Resistência à escutaBaixaAlta
Detecção de adulteraçãoFracaFacilitada por TLS
Confirmação do destinoBasicamente fracaConfirmada por certificado de servidor
Estrutura principalHTTPHTTP over TLS

HTTPS não é um mecanismo que trata conteúdo diferente de HTTP. É uma forma de enviar a comunicação HTTP protegida por TLS.

O que TLS protege

O centro do que TLS protege é o conteúdo da comunicação que flui entre navegador e servidor.

No caminho da comunicação existem roteadores Wi-Fi, provedores, equipamentos de rede de organizações, equipamentos intermediários na Internet e outros elementos. Se TLS não for usado, há risco de leitura ou alteração do conteúdo nesse caminho.

Quando TLS está ativo, o conteúdo da comunicação é criptografado. Por isso, mesmo que um terceiro no caminho obtenha os dados, torna-se difícil ler diretamente o conteúdo HTTP.

InformaçãoProteção por TLSExplicação
Corpo da páginaProtegidoHTML e conteúdo retornados pelo servidor ficam difíceis de ler no caminho
Conteúdo preenchido em formuláriosProtegidoInformações de login, conteúdo de consulta e semelhantes são criptografados
Cabeçalhos HTTPProtegidosCabeçalhos HTTP como e User-Agent são enviados dentro do TLS
Valor do CookieProtegidoO conteúdo do Cookie fica difícil de ler no caminho
Caminho e query da URLProtegidosA parte equivalente a /search?q=... em example.com/search?q=... é protegida como requisição HTTP

No entanto, a proteção aqui é proteção contra terceiros no caminho da comunicação. O servidor de destino precisa processar a requisição, portanto descriptografa e lê o conteúdo da comunicação.

Confirmar o destino com certificado de servidor

No TLS, além de criptografar o conteúdo da comunicação, também se confirma o servidor de destino.

Ao acessar um site HTTPS, o servidor apresenta um certificado de servidor. O navegador verifica se esse certificado foi emitido por uma autoridade certificadora confiável, se ainda está dentro do prazo de validade, se corresponde ao nome de domínio acessado e outros pontos.

Com isso, é possível confirmar se a contraparte possui um certificado legítimo para o domínio pretendido.

No entanto, a existência de um certificado de servidor não garante que o operador do site seja seguro nem que as informações no site estejam corretas. O que o certificado confirma é principalmente "se há um certificado válido para aquele domínio".

Ou seja, o ícone de cadeado do HTTPS indica que "o caminho da comunicação está protegido por TLS", mas não garante que "o site oferece conteúdo confiável".

Alcance criptografado pelo TLS

O que é criptografado pelo TLS é principalmente o conteúdo do HTTP.

Por exemplo, corpo de páginas Web, conteúdo enviado por formulários, valores de Cookie, cabeçalhos HTTP, caminho da URL e string de consulta são enviados dentro do TLS.

Por outro lado, mesmo usando TLS, algumas informações necessárias à comunicação e informações fora da comunicação permanecem.

InformaçãoTLS esconde?Explicação
Corpo da páginaTende a esconderProtegido por TLS como conteúdo da resposta HTTP
Conteúdo preenchido em formuláriosTende a esconderProtegido por TLS como corpo da requisição HTTP
Valor do CookieTende a esconderProtegido por TLS como cabeçalho HTTP
Caminho e query da URLTendem a esconderProtegidos por TLS como conteúdo da requisição HTTP
Endereço IP de destinoNão escondeNecessário para entregar pacotes ao destino
Endereço IP de origemNão escondeVisível para o servidor ou para destinos intermediários
Algumas informações no momento da conexão TLS, como SNIPodem ficar visíveis dependendo do ambienteEm ambientes sem ECH e mecanismos semelhantes, podem virar pista do domínio de destino
Consulta DNSPermanece como outro problemaEm DNS comum, o domínio consultado pode ficar visível
Volume de comunicaçãoNão escondeA quantidade de dados enviados e recebidos pode ser observada
Momento da comunicaçãoNão escondeO momento em que a comunicação ocorreu pode ser observado

Essa diferença é importante. TLS protege o conteúdo HTTP, mas não elimina a existência da comunicação em si, o volume, o timing nem os endereços IP.

Atenção ao término do TLS

É necessário ter consciência de onde a comunicação protegida por TLS começa e termina.

Em explicações gerais, costuma-se dizer que "a comunicação entre navegador e servidor Web é criptografada". No entanto, em serviços Web reais, uma CDN, um balanceador de carga ou um proxy reverso pode ser o ponto de término do TLS.

O término do TLS é o ponto em que a comunicação criptografada é descriptografada.

Por exemplo, pode haver uma configuração em que a comunicação do navegador até a CDN é protegida por TLS, e da CDN até o servidor de origem é encaminhada por outra conexão. Nesse caso, do ponto de vista do navegador, o destino da conexão TLS é o lado da CDN, e a proteção da comunicação além disso depende das configurações do serviço.

Isso não significa que TLS seja fraco. TLS é um mecanismo que "protege a comunicação entre endpoints"; qual ponto se torna endpoint muda conforme a configuração do sistema.

TLS não é tecnologia de anonimização

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

TLS é uma tecnologia para proteger o conteúdo da comunicação contra terceiros no caminho. Por outro lado, o conteúdo da comunicação chega ao servidor de destino. Como o servidor precisa processar a requisição, ele pode conhecer dados enviados, Cookie, informações de login, horário de acesso, endereço IP de origem e outros dados.

Ao acessar um site HTTPS, terceiros no caminho da comunicação têm mais dificuldade para ler o conteúdo da página. Porém, o próprio site de destino pode processar a página acessada, o conteúdo enviado em formulários, o estado de login, Cookies e informações semelhantes.

ItemTLS resolve?Motivo
Escuta no caminho da comunicaçãoTende a resolverPorque o conteúdo da comunicação é criptografado
Adulteração no caminho da comunicaçãoTende a resolverPorque há mecanismo de detecção de adulteração
Visualização pelo servidor de destinoNão resolvePorque o servidor precisa processar o conteúdo da comunicação
Sigilo do endereço IP de origemNão resolvePorque o IP de origem pode ficar visível para o lado do servidor
Identificação por CookieNão resolvePorque Cookies são usados para identificação de usuários no lado do servidor
Vinculação à pessoa por loginNão resolvePorque ações ficam vinculadas à conta

Criptografia e anonimização têm objetivos diferentes.

Criptografia é uma tecnologia para dificultar que terceiros leiam o conteúdo da comunicação. Anonimização é uma forma de pensar para dificultar saber quem está se comunicando, para onde se conecta e quais ações pertencem ao mesmo usuário.

TLS é uma tecnologia forte para a primeira finalidade, mas não realiza a segunda sozinho.

Por que entender TLS

Entender TLS permite avaliar corretamente a segurança do HTTPS sem superestimá-la.

HTTPS é muito importante como medida contra escuta e adulteração no caminho da comunicação. Em login, pagamento, envio de informações pessoais, acesso a telas administrativas e casos semelhantes, presume-se que HTTPS esteja sendo usado.

Por outro lado, mesmo com HTTPS, informações chegam ao servidor de destino. Logs do servidor, endereço IP de origem, Cookie, informações de conta, informações do navegador e outras questões permanecem separadas do TLS.

Por isso, ao entender TLS, é preciso separar da seguinte forma.

Ponto de vistaObjetivo principalRelação com TLS
CriptografiaDificultar que terceiros leiam o conteúdo da comunicaçãoPapel central do TLS
IntegridadeDetectar adulteração no caminho da comunicaçãoPapel importante do TLS
Autenticação do destinoConfirmar se o servidor possui um certificado legítimoPapel importante do TLS
AnonimizaçãoDificultar a compreensão do usuário ou da relação de conexãoTLS sozinho não realiza
Prevenção de rastreamentoReduzir identificação por Cookie ou contaExige medidas separadas do TLS

TLS é uma tecnologia básica que sustenta a segurança da comunicação. Mas não é um mecanismo universal para resolver todos os problemas de privacidade e anonimato.

Resumo

TLS é o mecanismo central de proteção de comunicação usado no HTTPS.

TLS criptografa o conteúdo da comunicação entre navegador e servidor e dificulta que terceiros no caminho leiam esse conteúdo. Também facilita detectar adulterações no caminho da comunicação e confirma o destino por meio de certificados de servidor.

Por outro lado, TLS não é tecnologia de anonimização. O conteúdo da comunicação chega ao servidor de destino, e problemas como endereço IP de origem, logs do servidor, Cookie e informações de conta permanecem separadamente.

Para entender TLS corretamente, é preciso separar "o conteúdo da comunicação é criptografado" de "fica oculto quem acessa onde".

HTTPS é importante para tornar a comunicação segura, mas não realiza automaticamente anonimato nem prevenção de rastreamento.

Artigos relacionados