TLS é o protocolo criptográfico que protege conexões HTTPS, criptografa dados em trânsito e autentica servidores na internet.
Resumo TLS (Transport Layer Security) é um protocolo criptográfico que criptografa a comunicação entre um cliente (navegador, app) e um servidor pela internet. O TLS protege os dados em trânsito de interceptação e adulteração. Toda conexão HTTPS usa TLS. O TLS 1.3, o padrão atual, completa o handshake de segurança em uma ida e volta (1-RTT), em comparação com duas no TLS 1.2, reduzindo a latência de conexão em 30–50 ms em média. O SSL é o predecessor mais antigo do TLS e hoje é considerado inseguro — todas as referências a “SSL” em sistemas modernos significam na verdade TLS.
O que é TLS?
TLS (Transport Layer Security) é um protocolo criptográfico que fornece três garantias para dados transmitidos em uma rede:
- Confidencialidade — Os dados são criptografados e não podem ser lidos por terceiros que interceptem a conexão.
- Integridade — Os dados não podem ser alterados em trânsito sem detecção.
- Autenticação — O servidor prova sua identidade usando um certificado digital assinado por uma Autoridade Certificadora (CA) confiável.
O TLS opera na camada de transporte. Ele fica entre a camada de aplicação (HTTP, SMTP, gRPC) e a camada TCP, criando um túnel criptografado pelo qual os dados da aplicação trafegam.
TLS vs SSL: qual é a diferença?
SSL (Secure Sockets Layer) é o predecessor do TLS. O SSL 2.0 foi lançado em 1995. O SSL 3.0 foi lançado em 1996 e descontinuado em 2015 devido à vulnerabilidade POODLE.
O TLS 1.0 substituiu o SSL 3.0 em 1999. TLS 1.1, 1.2 e 1.3 se seguiram. Hoje, todas as versões do SSL estão descontinuadas e são inseguras. Quando as pessoas dizem “certificado SSL” ou “conexão SSL”, estão se referindo ao TLS — a terminologia persiste, mas o protocolo é TLS.
| Versão | Ano | Status |
|---|---|---|
| SSL 2.0 | 1995 | Descontinuado — não usar |
| SSL 3.0 | 1996 | Descontinuado — não usar |
| TLS 1.0 | 1999 | Descontinuado — não usar |
| TLS 1.1 | 2006 | Descontinuado — não usar |
| TLS 1.2 | 2008 | Suportado — amplamente implantado |
| TLS 1.3 | 2018 | Padrão atual — preferido |
Como o TLS funciona: o handshake
Antes que os dados criptografados fluam, o cliente e o servidor realizam um handshake TLS para concordar com os parâmetros de criptografia e verificar a identidade.
Handshake TLS 1.3 (1-RTT):
- ClientHello — O cliente envia os cipher suites suportados e uma chave compartilhada.
- ServerHello + Certificado + Finished — O servidor seleciona o cipher suite, envia seu certificado e completa a derivação de chaves em uma única mensagem.
- Client Finished — O cliente verifica o certificado e envia sua mensagem Finished. Os dados criptografados da aplicação começam imediatamente.
Handshake TLS 1.2 (2-RTT): O TLS 1.2 exigia duas idas e voltas completas antes que os dados pudessem fluir, adicionando entre 60 e 100 ms de latência em uma conexão típica com RTT de 30 ms. O TLS 1.3 reduziu isso a uma única ida e volta.
| Característica | TLS 1.2 | TLS 1.3 |
|---|---|---|
| Idas e voltas do handshake | 2-RTT | 1-RTT |
| Retomada de sessão 0-RTT | Não | Sim (risco de replay em requisições não idempotentes) |
| Sigilo perfeito de encaminhamento | Opcional | Obrigatório |
| Criptografia do certificado | Não | Sim (criptografado em trânsito) |
| Cipher suites suportados | Muitos (incluindo fracos) | 5 (todos AEAD robustos) |
| Melhoria de desempenho | Base | ~30–50 ms mais rápido por nova conexão |
Certificados TLS e a cadeia de confiança
Um certificado TLS é um documento digital que prova a identidade de um servidor. Ele contém a chave pública do servidor e é assinado por uma Autoridade Certificadora (CA).
Cadeia de validação do certificado:
- CA raiz — Confiável para sistemas operacionais e navegadores. As chaves privadas da CA raiz são mantidas offline.
- CA intermediária — Emite certificados de entidade final, protegendo a CA raiz de exposição direta.
- Certificado folha — Instalado no servidor. Contém o nome de domínio e a chave pública.
Um certificado é válido se: (1) sua cadeia de assinaturas leva a uma CA raiz confiável, (2) o domínio coincide com o Subject Alternative Name (SAN) do certificado e (3) não expirou nem foi revogado.
Let’s Encrypt emite certificados TLS gratuitos com renovação automática para qualquer domínio publicamente acessível via protocolo ACME.
Cipher suites no TLS
Um cipher suite é a combinação de algoritmos criptográficos usados em uma conexão TLS. O TLS 1.3 suporta apenas 5 cipher suites, todos usando AEAD (Authenticated Encryption with Associated Data):
TLS_AES_128_GCM_SHA256TLS_AES_256_GCM_SHA384TLS_CHACHA20_POLY1305_SHA256TLS_AES_128_CCM_SHA256TLS_AES_128_CCM_8_SHA256
O TLS 1.2 suporta centenas de cipher suites, incluindo fracos como RC4 e 3DES. Desabilitar cipher suites fracos é um passo obrigatório no hardening do TLS.
Erros TLS comuns e suas causas
| Erro | Causa |
|---|---|
SSL_ERROR_HANDSHAKE_FAILURE | Cliente e servidor não compartilham nenhum cipher suite ou versão TLS compatível |
ERR_CERT_DATE_INVALID | O certificado expirou |
ERR_CERT_COMMON_NAME_INVALID | O domínio do certificado não corresponde ao domínio solicitado |
ERR_SSL_VERSION_OR_CIPHER_MISMATCH | Cliente e servidor suportam versões TLS ou cipher suites incompatíveis |
CERTIFICATE_VERIFY_FAILED | A cadeia de certificados está quebrada ou a CA raiz não é confiável |
| Timeout do handshake | Problema de rede ou firewall bloqueando o tráfego TLS na porta 443 |
Checklist de hardening TLS
- Desabilite SSL 2.0, SSL 3.0, TLS 1.0 e TLS 1.1.
- Habilite TLS 1.3 como versão preferida.
- Use apenas cipher suites AEAD (AES-GCM, ChaCha20-Poly1305).
- Habilite HSTS (
Strict-Transport-Security) comincludeSubDomainsepreload. - Use algoritmos de troca de chaves efêmeras (ECDHE) para garantir o Sigilo Perfeito de Encaminhamento.
- Automatize a renovação de certificados para evitar expirações (Let’s Encrypt + ACME).
- Habilite OCSP stapling para reduzir a latência nas verificações de revogação.
Perguntas frequentes
O que é TLS em termos simples? TLS é a tecnologia que coloca o cadeado na barra de endereços do seu navegador. Ele criptografa os dados entre o seu navegador e um site para que ninguém possa interceptá-los ou lê-los em trânsito.
SSL é o mesmo que TLS? Não, mas na prática se referem à mesma coisa. SSL é o protocolo mais antigo (agora descontinuado e inseguro). TLS é o substituto moderno. Quando você vê “certificado SSL” ou “conexão SSL”, o protocolo que está sendo usado é TLS.
O que é o handshake TLS? O handshake TLS é o processo de negociação que acontece antes que os dados criptografados fluam. O cliente e o servidor concordam com um cipher suite, o servidor prova sua identidade com um certificado e ambos os lados derivam uma chave de criptografia compartilhada. No TLS 1.3, isso leva uma única ida e volta.
Por que TLS 1.3 é mais rápido que TLS 1.2? O TLS 1.3 completa o handshake em uma ida e volta em vez de duas. Em uma conexão com RTT de 50 ms, isso economiza aproximadamente 50 ms por nova conexão. O TLS 1.3 também suporta retomada de sessão 0-RTT para usuários que retornam.
O que acontece quando um certificado TLS expira? Quando um certificado TLS expira, os navegadores rejeitam a conexão e exibem um aviso de segurança. Os usuários veem erros como “Sua conexão não é privada”. A renovação automática de certificados (ex.: via Let’s Encrypt e o protocolo ACME) previne isso.
O que é mTLS? mTLS (mutual TLS) exige que tanto o cliente quanto o servidor apresentem certificados. O TLS padrão autentica apenas o servidor. O mTLS autentica ambas as partes, sendo comum em segurança de APIs, integrações B2B e autenticação de dispositivos IoT.
O que é Sigilo Perfeito de Encaminhamento (PFS)? PFS significa que cada sessão TLS usa uma chave de criptografia única e temporária. Se a chave privada de um servidor for comprometida no futuro, as sessões passadas não poderão ser descriptografadas porque suas chaves de sessão nunca foram armazenadas. O TLS 1.3 exige PFS para todas as conexões.
Qual porta o TLS usa? HTTPS (HTTP sobre TLS) usa a porta 443 por padrão. Outros serviços protegidos com TLS usam suas próprias portas — SMTPS usa 465, IMAPS usa 993.