O que é TLS?
TLS (Transport Layer Security - Segurança da Camada de Transporte) é um protocolo criptográfico que fornece comunicação segura sobre redes de computador. TLS é o sucessor do SSL (Secure Sockets Layer) e é a tecnologia por trás de conexões HTTPS, transmissão segura de email (STARTTLS) e muitos outros protocolos de internet criptografados. Quando você vê o ícone de cadeado em seu navegador, TLS está funcionando para criptografar dados entre seu dispositivo e o servidor.Histórico de Versão de TLS
| Versão | Ano | Status |
|---|---|---|
| SSL 2.0 | 1995 | Descontinuado, inseguro |
| SSL 3.0 | 1996 | Descontinuado, inseguro |
| TLS 1.0 | 1999 | Descontinuado |
| TLS 1.1 | 2006 | Descontinuado |
| TLS 1.2 | 2008 | Padrão atual |
| TLS 1.3 | 2018 | Mais recente, recomendado |
Como o TLS Funciona
Handshake TLS (TLS 1.2)
Cliente Servidor
│ │
├──── ClientHello ─────────────────► │
│ (cifras suportadas, aleatório) │
│ │
│ ◄─── ServerHello ──────────────────┤
│ (cifra selecionada, cert) │
│ │
├──── Key Exchange ────────────────► │
│ (segredo pré-mestre criptografado) │
│ │
│ ◄─── Finished ─────────────────────┤
│ │
└──── Encrypted Data ◄──────────────►┘
Melhorias do TLS 1.3
- Menos viagens de ida e volta (handshake mais rápido)
- Cifras inseguras removidas
- Sigilo para frente obrigatório
- Mensagens de handshake criptografadas
Componentes TLS
Certificados
- Autenticar identidade do servidor
- Emitido por Autoridades de Certificação
- Contém chave pública para criptografia
Suites de Cifra
Definem algoritmos de criptografia usados:
TLS_AES_256_GCM_SHA384 (TLS 1.3)
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (TLS 1.2)
│ │ │ │
│ │ │ └── Algoritmo de hash
│ │ └── Algoritmo de criptografia
│ └── Troca de chave
└── Protocolo
Casos de Uso de TLS
| Aplicação | Protocolo | Porta |
|---|---|---|
| Navegação web | HTTPS | 443 |
| Email (IMAP) | IMAPS | 993 |
| Email (SMTP) | SMTPS | 465 |
| Envio de email | STARTTLS | 587 |
| FTP | FTPS | 990 |
Configuração de Servidor
Configuração TLS Nginx
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
Melhores Práticas
1. Usar TLS 1.2 ou 1.3: Desabilitar versões antigas
2. Suites de cifra forte: Preferir cifras AEAD
3. Ativar HSTS: Forçar conexões TLS
4. Gerenciamento de certificado: Automatizar renovação
5. Sigilo para frente: Usar troca de chave ECDHE
6. Testes regulares: SSL Labs, testssl.sh
Testando Configuração TLS
# Teste OpenSSL
openssl s_client -connect example.com:443 -tls1_3
# Verificar certificado
echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -text
TLS é a fundação da comunicação segura na internet, criptografando dados em trânsito para proteger contra espionagem, adulteração e ataques de intermediário.