06 - Comunicação Segura
video: https://youtu.be/... no frontmatter da nota.Comunicação Segura (Visão Geral)
A Comunicação Segura garante que os dados trocados entre dois pontos da rede não possam ser lidos (Confidencialidade) nem modificados (Integridade) por terceiros. Em redes modernas, assume-se que o meio físico é hostil (paradigma Zero Trust), e por isso aplicam-se camadas de proteção lógica em diferentes níveis.
1. Pilares da Comunicação Segura
Para que uma comunicação seja considerada segura, ela deve implementar:
- Confidencialidade: Dados só podem ser lidos pelos destinatários autorizados — cifragem.
- Integridade: Dados não podem ser alterados em trânsito sem detecção — HMAC, AEAD.
- Autenticação de Ponta a Ponta: Garantia de que você está falando com quem deseja — certificados X.509, PKI.
- Assinatura de Mensagem: Garantia de que o conteúdo não foi alterado e de autoria — assinatura digital.
- Disponibilidade: O canal deve resistir a ataques de negação de serviço — DDoS protection, rate limiting.
- Não-repúdio: Emissor não pode negar o envio — assinatura digital com chave privada.
2. Criptografia Simétrica vs. Assimétrica
Criptografia Simétrica
- Mesma chave cifra e decifra.
- Rápida (AES atinge ~10 Gbps em CPU moderno, ~100 Gbps com AES-NI).
- Problema: distribuição segura da chave.
- Algoritmos: AES-128/192/256, ChaCha20, 3DES (obsoleto), RC4 (inseguro).
- Modos: GCM (recomendado, AEAD), CBC (legado), CTR.
Criptografia Assimétrica
- Par de chaves: pública (compartilhada) + privada (secreta).
- Lenta (~1000x mais lenta que simétrica).
- Resolver o problema de distribuição de chaves.
- Algoritmos: RSA, ECC (P-256, P-384, Curve25519), Diffie-Hellman.
Híbrido (Cifragem Prática)
[1] Cliente gera chave de sessão aleatória (symmetric, 256 bits)
[2] Cifra a chave de sessão com a chave pública do servidor (RSA/ECDSA)
[3] Envia a chave cifrada
[4] Servidor decifra com sua chave privada -> obtém chave de sessão
[5] Ambos usam a chave de sessão para cifrar todo o tráfego (AES-GCM)
[Alternativa moderna - DH/ECDH]:
[1] Cliente e servidor fazem ECDHE (Diffie-Hellman em curva elíptica)
[2] Derivam segredo compartilhado -> chave de sessão
[3] Cifragem simétrica (forward secrecy)
3. Funções de Hash Criptográfico
Hashes são funções unidirecionais que produzem um digest de tamanho fixo. Usados para verificar integridade, armazenar senhas e construir assinaturas digitais.
| Algoritmo | Tamanho do Hash | Status |
|---|---|---|
| MD5 | 128 bits | Quebrado, NÃO usar |
| SHA-1 | 160 bits | Quebrado (SHAttered 2017) |
| SHA-256 | 256 bits | Recomendado |
| SHA-3 | 224-512 bits | Recomendado (Keccak) |
| BLAKE2/3 | 256-512 bits | Rápido, recomendado |
Para senhas, usar algoritmos com fator de custo: bcrypt, scrypt, Argon2id (vencedor da Password Hashing Competition 2015).
4. Assinatura Digital
A assinatura digital usa criptografia assimétrica "invertida": o emissor cifra o hash com sua chave privada, e o destinatário decifra com a chave pública. Como apenas o emissor possui a chave privada, fica provada a autoria. Algoritmos modernos: RSA-PSS, ECDSA, Ed25519.
5. VPN — Redes Privadas Virtuais
VPNs criam túneis criptografados sobre redes públicas, garantindo confidencialidade e integridade ponta-a-ponta.
IPSec (IP Security, RFC 4301+)
- Camada 3 (Network), independente de aplicação.
- Protocolos: ESP (cifragem + integridade), AH (apenas integridade, sem cifra), IKE (negociação).
- Modos: Transport (cifra payload, mantém IP original) ou Tunnel (cifra pacote inteiro, novo cabeçalho IP).
- Cifras modernas: AES-GCM, ChaCha20-Poly1305.
- Site-to-Site (Cisco ASA, Fortinet, Palo Alto) e Remote Access (Cisco AnyConnect, FortiClient).
SSL/TLS (Transport Layer Security)
- Camada 4/5, embutido em quase todo protocolo de aplicação: HTTPS, MQTTS, LDAPS, IMAPS, SMTPS, FTPS, SIP-TLS.
- TLS 1.3 (RFC 8446): handshake otimizado (1-RTT ou 0-RTT), cifra suite reduzida (apenas AEAD), Perfect Forward Secrecy obrigatório.
- Implementações: OpenSSL, BoringSSL (Google), LibreSSL, NSS (Mozilla), wolfSSL (IoT).
L2TP (Layer 2 Tunneling Protocol, RFC 2661)
- Camada 2, encapsula quadros PPP.
- Sem cifragem própria — combinado com IPSec (L2TP/IPSec) para segurança.
- Em desuso em favor de SSL VPN e WireGuard.
WireGuard
- Protocolo moderno (RFC aberto, kernel Linux desde 5.6).
- Apenas ~4.000 linhas de código (vs. ~600.000 do OpenSSL).
- Cifra única: ChaCha20-Poly1305, Curve25519, BLAKE2s, HKDF.
- Sem configuração de algoritmo — reduz superfície de ataque.
Comparativo
| VPN | Camada | Cifra Padrão | Porta |
|---|---|---|---|
| IPSec | 3 | AES-GCM | UDP 500, 4500 |
| SSL/TLS | 4/5 | AES-GCM, ChaCha20 | TCP 443 |
| L2TP/IPSec | 2/3 | AES-CBC | UDP 1701, 500 |
| OpenVPN | 4 | AES-GCM | UDP/TCP 1194 |
| WireGuard | 3 | ChaCha20-Poly1305 | UDP 51820 |
6. Certificados Digitais e PKI
Certificado X.509
Documento assinado por uma CA (Certificate Authority) que vincula uma chave pública a uma identidade (domínio, organização, pessoa). Contém:
- Versão (atual: v3)
- Número de série
- Algoritmo de assinatura (ex:
sha256WithRSAEncryption) - Emissor (CA DN)
- Validade (notBefore, notAfter)
- Sujeito (titular DN)
- Chave pública
- Extensões: SAN (Subject Alternative Name), KeyUsage, BasicConstraints, CRL Distribution Points, Authority Information Access (AIA).
PKI (Public Key Infrastructure)
Conjunto de políticas, hardware, software e pessoas que gerenciam o ciclo de vida de certificados:
- CA Raiz (Root CA): autoassinada, offline em HSM.
- CA Intermediária: assina certificados finais, isolando a raiz.
- RA (Registration Authority): valida identidade do solicitante.
- CRL/OCSP: mecanismos de revogação.
- CT (Certificate Transparency): logs públicos (Google) para auditoria.
7. Em Trânsito vs. At Rest
| Estado | Significado | Exemplos |
|---|---|---|
| In Transit | Dados trafegando na rede | HTTPS, IPSec, WireGuard |
| At Rest | Dados armazenados em disco/banco | LUKS, BitLocker, AES-TDE, S3 SSE |
| In Use | Dados em memória/CPU | Confidential Computing (Intel SGX, AMD SEV) |
Recomendação moderna: cifrar em ambos — TLS protege em trânsito, criptografia de disco protege em repouso. Para dados altamente sensíveis, considerar cifragem em nível de aplicação (envelope encryption com KMS).
8. Exemplo Prático: Configuração TLS 1.3 em Nginx
server {
listen 443 ssl http2;
server_name exemplo.com;
ssl_certificate /etc/ssl/certs/exemplo.crt;
ssl_certificate_key /etc/ssl/private/exemplo.key;
ssl_protocols TLSv1.3 TLSv1.2;
ssl_prefer_server_ciphers off;
ssl_ciphers 'TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256';
ssl_ecdh_curve X25519:P-256;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_session_tickets off;
# OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
resolver 1.1.1.1 valid=300s;
}
9. Boas Práticas
- Desativar TLS 1.0 e 1.1 (RFC 8996).
- Preferir TLS 1.3 e, quando usar 1.2, restringir a AEAD (AES-GCM, ChaCha20-Poly1305).
- Renovar certificados antes do vencimento (ACME / Let's Encrypt automatiza isso).
- Habilitar HSTS (
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload). - Avaliar adoção de mTLS (mutual TLS) para APIs internas (zero trust).
- Monitorar fraquezas com ssllabs.com, testssl.sh, Mozilla Observatory.
A segurança da comunicação depende da força dos algoritmos e chaves usados. Chaves curtas ou algoritmos antigos (como MD5 ou DES) são vulneráveis e devem ser evitados em redes corporativas. Algoritmos como RC4, 3DES e SHA-1 já têm ataques práticos publicados.
10. Resumo Técnico
| Aspecto | Recomendação 2024+ |
|---|---|
| Cifra simétrica | AES-256-GCM, ChaCha20-Poly1305 |
| Troca de chaves | X25519 (ECDHE) |
| Assinatura | Ed25519, RSA-PSS-3072, ECDSA P-256 |
| Hash | SHA-256, SHA-3, BLAKE3 |
| Senhas | Argon2id |
| Protocolo VPN | WireGuard, IPSec IKEv2, OpenVPN |
| TLS | TLS 1.3 exclusivo |
11. Conclusão
A comunicação segura é construída em camadas: criptografia simétrica para desempenho, assimétrica para troca de chaves, hash para integridade, certificados para autenticidade e VPNs para isolar tráfego. A combinação correta dessas primitives é o que torna possível hoje transações bancárias, governança eletrônica e comunicação empresarial segura sobre uma internet inerentemente insegura. A evolução contínua dos protocolos (TLS 1.3, WireGuard, Ed25519, Argon2) e a migração para esquemas pós-quânticos são tópicos que devem ser acompanhados por qualquer arquiteto de segurança.