Todos os artigos sobre SSL SSL e certificados

O que é Forward Secrecy (Perfect Forward Secrecy)?

Forward secrecy (também chamado Perfect Forward Secrecy / PFS) é uma propriedade de uma conexão TLS que garante: mesmo que a chave privada do servidor seja comprometida no futuro, comunicações criptografadas passadas não podem ser descriptografadas.

Funciona gerando uma chave única e efêmera para cada conexão. Após o término da conexão, a chave efêmera é descartada. Ninguém — nem mesmo o proprietário do servidor — pode recriá-la.

Por que forward secrecy importa

Sem forward secrecy (troca de chaves RSA)

Atacante grava tráfego criptografado hoje

Anos depois, atacante rouba a chave privada RSA do servidor

Atacante descriptografa TODO o tráfego gravado — senhas, mensagens, tudo

Com troca de chaves RSA estática (TLS 1.2 sem ECDHE), a mesma chave privada do servidor é usada para descriptografar cada sessão. Se essa chave for roubada, toda conversa passada é exposta.

Com forward secrecy (troca de chaves ECDHE)

Atacante grava tráfego criptografado hoje

Anos depois, atacante rouba a chave privada do servidor

Não consegue descriptografar tráfego passado — cada sessão usou uma chave
efêmera única que foi descartada após o término da sessão

Cada conexão gera um par de chaves Diffie-Hellman fresco, computa uma chave de sessão única e destrói a chave efêmera quando termina. A chave privada de longo prazo do servidor é usada apenas para autenticação (provar identidade), não para troca de chaves (derivar a chave de criptografia).

Como funciona tecnicamente

  1. Cliente e servidor geram cada um um par de chaves ECDHE efêmero (aleatório, por conexão)
  2. Eles trocam as metades públicas dessas chaves efêmeras
  3. Ambos calculam o mesmo segredo compartilhado usando sua própria chave efêmera privada + a chave pública efêmera do outro (esta é a matemática Diffie-Hellman)
  4. O segredo compartilhado deriva a chave de sessão usada para criptografia AES
  5. As chaves efêmeras são descartadas após a chave de sessão ser derivada

A chave privada do certificado do servidor é usada apenas para assinar as mensagens do handshake — provando que o servidor é genuíno. Nunca é usada para descriptografar tráfego.

Forward secrecy nas versões TLS

Versão TLSForward secrecyNotas
SSL 3.0❌ Não disponívelTroca de chaves apenas RSA
TLS 1.0⚠️ OpcionalECDHE suportado mas não obrigatório
TLS 1.1⚠️ OpcionalMesmo que TLS 1.0
TLS 1.2⚠️ Opcional (mas recomendado)Depende do cipher suite — ECDHE = sim, RSA = não
TLS 1.3✅ ObrigatórioTroca de chaves RSA removida completamente

O TLS 1.3 resolveu isso removendo a troca de chaves RSA — todas as conexões TLS 1.3 têm forward secrecy por padrão. Sem necessidade de configuração.

Como verificar se seu servidor tem forward secrecy

# Verificar qual troca de chaves seu servidor usa
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | grep -E "Server Temp Key|Protocol"

Procure por:

  • Server Temp Key: ECDH, P-256 → ✅ Forward secrecy (ECDHE)
  • Server Temp Key: X25519 → ✅ Forward secrecy
  • Sem linha Server Temp Key → ❌ Troca de chaves RSA, sem forward secrecy

Garantindo forward secrecy no TLS 1.2

Nginx:

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305';
ssl_prefer_server_ciphers off;

Todos os cipher suites começam com ECDHE — troca de chaves efêmera.

Apache:

SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305
SSLHonorCipherOrder off

Relevância no mundo real

Forward secrecy protege contra:

  • Vigilância estatal — governos gravando tráfego criptografado agora, esperando descriptografar depois quando adquirirem as chaves (por ordens judiciais, hacking ou computação quântica)
  • Comprometimento de servidor — se um atacante roubar a chave privada do servidor, ele só pode se passar pelo servidor dali em diante, não descriptografar tráfego passado
  • Vazamento de chaves — exposição acidental de chaves privadas (ex.: commitadas no Git, incluídas em backup)

É por isso que a Let’s Encrypt recomenda certificados ECDSA — eles se combinam naturalmente com troca de chaves ECDHE para um handshake completamente baseado em curvas elípticas.

Perguntas frequentes

Meu certificado SSL precisa suportar forward secrecy?

O certificado em si não determina o forward secrecy — o cipher suite determina. Qualquer certificado (RSA ou ECDSA) funciona com troca de chaves ECDHE. Mas certificados ECDSA se combinam mais naturalmente com ECDHE (ambos usam curvas elípticas), resultando em um handshake mais rápido.

O forward secrecy está habilitado por padrão?

No TLS 1.3: sempre — é obrigatório. No TLS 1.2: depende da configuração do seu servidor. Os padrões modernos (Nginx, Apache) preferem cipher suites ECDHE, mas configurações mais antigas podem ainda permitir troca de chaves RSA.

O forward secrecy deixa as coisas mais lentas?

De forma negligível. A troca de chaves ECDHE adiciona ~1ms ao handshake em hardware moderno. O benefício de segurança supera em muito o custo.

E o modo 0-RTT no TLS 1.3?

0-RTT (retomada sem ida e volta) é um caso especial. Os dados iniciais enviados em 0-RTT não têm forward secrecy contra comprometimento de servidor (o PSK usado para retomada é derivado das chaves da sessão anterior). É por isso que 0-RTT deve ser usado apenas para requisições seguras e idempotentes.

Artigos relacionados

SSL e certificados 2026-05-07
Como SSL/TLS Funciona: O Handshake TLS Explicado
Um passo a passo visual do handshake TLS — como seu navegador é um servidor estabelecem uma conexão criptografada em milissegundos. Cobre TLS 1.2, TLS 1.3, retomada de sessão e forward secrecy.
SSL e certificados 2026-05-08
O que e TLS 1.3? Tudo que Mudou
TLS 1.3 e o padrão de criptografia atual — handshake mais rápido, sigilo antecipado obrigatório, sem algoritmos legados. Aprenda o que mudou do TLS 1.2, como habilitar, e se você deve forca-lo.
SSL e certificados 2026-05-08
Criptografia de Chave Pública: Como a Criptografia SSL Realmente Funciona
A criptografia de chave pública usa um par de chaves — uma pública, uma privada — para proteger conexões HTTPS. Aprenda como a criptografia assimetrica, assinaturas digitais e troca de chaves tornam o SSL/TLS possível.
SSL e certificados 2026-05-07
Certificados ECC vs RSA: Qual Você Deve Escolher?
Compare certificados ECC (ECDSA P-256) e RSA (2048/4096-bit). As chaves ECC são menores e mais rápidas. Saiba por que o GetHTTPS usa ECC por padrão e quando RSA ainda faz sentido.
Obtenha um certificado SSL gratuito no seu navegador
Sem instalacao, sem conta. Sua chave privada nunca sai do seu dispositivo.
Obter seu certificado