0Pricing
Cloud & IT Cert Prep · Aula

Handshake do TLS 1.3 e Retomada 0-RTT

Acompanhe o handshake do TLS 1.3 passo a passo, entenda como ele alcança sigilo de encaminhamento por padrão e avalie as concessões de segurança da retomada de sessão 0-RTT.

Handshake do TLS 1.3 e Retomada 0-RTT é uma aula grátis de Cloud & IT Cert Prep no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cloud & IT Cert Prep, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.

Por que o TLS 1.3 foi necessário

O TLS 1.3, lançado em 2018 (RFC 8446), foi projetado para corrigir as deficiências que se acumularam no TLS 1.2 ao longo de uma década de ataques no mundo real. As versões anteriores permitiam negociar conjuntos de cifras fracos, ofereciam suporte à criptografia de nível de exportação e exigiam várias viagens de ida e volta antes que os dados pudessem fluir. O TLS 1.3 remove todos os algoritmos obsoletos e simplifica o handshake para uma única viagem de ida e volta no caso normal, melhorando significativamente a segurança e o desempenho.

Visão geral do handshake: uma viagem de ida e volta

No TLS 1.3, o cliente e o servidor concluem o handshake em 1-RTT (uma viagem de ida e volta). O cliente envia um ClientHello que inclui os conjuntos de cifras compatíveis e um compartilhamento de chave (usando Diffie-Hellman). O servidor responde com um ServerHello, seu próprio compartilhamento de chave, um certificado e os primeiros dados de aplicação criptografados — tudo em uma única transmissão. Em seguida, o cliente verifica o certificado e envia uma mensagem Finished antes de trocar dados de aplicação.

# Trace TLS 1.3 handshake with openssl
openssl s_client -connect example.com:443 -tls1_3 -msg 2>&1 | grep -E 'ClientHello|ServerHello|Finished'

Troca de chaves: somente Diffie-Hellman efêmero

O TLS 1.3 exige a troca de chaves efêmeras — ele removeu completamente a troca de chaves RSA. Toda troca de chaves deve usar ECDHE (Diffie-Hellman efêmero de curva elíptica) ou DHE (Diffie-Hellman efêmero). A palavra “efêmero” significa que um novo par de chaves é gerado para cada sessão. Essa é a base do sigilo de encaminhamento perfeito: o comprometimento da chave privada de longo prazo do servidor não permite descriptografar sessões anteriores, pois cada sessão usou uma chave temporária exclusiva.

Explicação do sigilo de encaminhamento perfeito

O Perfect Forward Secrecy (PFS) garante que, mesmo que um invasor registre hoje todo o tráfego criptografado e obtenha a chave privada do servidor no futuro, ainda não conseguirá descriptografar sessões antigas. No TLS 1.2 com troca de chaves RSA, a chave privada do servidor poderia descriptografar o segredo pré-mestre de qualquer sessão anterior — uma falha catastrófica. As chaves DH efêmeras do TLS 1.3 fazem com que cada sessão derive suas próprias chaves, e essas chaves efêmeras sejam descartadas após o uso.

Simplificação dos conjuntos de cifras

O TLS 1.2 oferecia suporte a mais de 300 conjuntos de cifras, muitos deles fracos ou comprometidos. O TLS 1.3 reduz esse número a apenas cinco conjuntos de cifras, todos usando AEAD (Criptografia autenticada com dados associados): TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_AES_128_CCM_SHA256 e TLS_AES_128_CCM_8_SHA256. Isso elimina categorias inteiras de ataques, como BEAST, POODLE e FREAK, que exploravam a negociação de cifras fracas.

# Check supported TLS 1.3 cipher suites on a server
nmap --script ssl-enum-ciphers -p 443 example.com

Retomada 0-RTT: velocidade versus segurança

A retomada 0-RTT (tempo de zero viagens de ida e volta) é um recurso opcional do TLS 1.3 que permite ao cliente enviar dados de aplicação na primeira mensagem, antes da conclusão do handshake. Ela funciona usando uma chave pré-compartilhada (PSK) de uma sessão anterior. Embora o 0-RTT reduza significativamente a latência — algo crítico para APIs de alto tráfego —, ele introduz uma desvantagem importante: os dados iniciais não são protegidos contra ataques de repetição.

Risco de ataque de repetição no 0-RTT

Em um ataque de repetição contra dados 0-RTT, um invasor que intercepte a mensagem de dados iniciais pode reenviá-la ao servidor, potencialmente acionando a mesma ação duas vezes (por exemplo, um pagamento ou uma alteração de estado). A especificação do TLS 1.3 alerta explicitamente que os dados iniciais 0-RTT devem transportar somente operações idempotentes — operações que produzem o mesmo resultado independentemente de quantas vezes sejam executadas, como uma solicitação GET. Operações não idempotentes (POST, DELETE) nunca devem usar 0-RTT.

Chaves pré-compartilhadas e retomada de sessão

Após um handshake completo do TLS 1.3 bem-sucedido, o servidor envia uma mensagem NewSessionTicket contendo uma PSK (chave pré-compartilhada), que o cliente armazena. Ao se reconectar, o cliente inclui essa PSK em seu ClientHello usando a extensão pre_shared_key. O servidor a reconhece e aprova os dados 0-RTT ou recorre à retomada 1-RTT. Os tíquetes PSK têm duração limitada e devem ser alternados com frequência para limitar o período de exposição.

Handshake criptografado: ocultando metadados

Uma melhoria importante do TLS 1.3 é que a maior parte do handshake é criptografada, incluindo o certificado do servidor. No TLS 1.2, o certificado do servidor era enviado em texto simples, permitindo que um observador da rede identificasse a qual domínio o cliente estava se conectando. O TLS 1.3 criptografa o certificado e a maioria das mensagens subsequentes do handshake, reduzindo os metadados disponíveis para observadores passivos. O Encrypted Client Hello (ECH) é uma extensão emergente que oculta até mesmo o campo SNI (Indicação do Nome do Servidor).

Recursos removidos: o que o TLS 1.3 eliminou

O TLS 1.3 removeu vários recursos legados que haviam se tornado riscos: troca de chaves RSA (sem sigilo de encaminhamento), conjuntos de cifras no modo CBC (vulneráveis a ataques de oráculo de preenchimento), RC4 (cifra de fluxo completamente comprometida), criptografia de nível de exportação (causa do FREAK e do Logjam), MD5 e SHA-1 em assinaturas digitais, compressão (causa do CRIME) e renegociação (causa de vários ataques). Ao removê-los, o TLS 1.3 passou a ter uma superfície de ataque significativamente menor.

Configurando servidores para TLS 1.3

Implantar o TLS 1.3 corretamente exige configurar o servidor web para priorizá-lo e desativar o TLS 1.0 e o 1.1. A maioria dos servidores web modernos (Nginx, Apache, IIS) oferece suporte nativo ao TLS 1.3. Você também deve garantir que o agrupamento OCSP esteja ativado para fornecer o status de revogação do certificado sem que o cliente precise contatar a CA e que os cabeçalhos HSTS impeçam ataques de downgrade para HTTP. Use ferramentas como o SSL Labs para verificar se sua configuração alcança a classificação A+.

# Nginx TLS 1.3 configuration
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers off;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
add_header Strict-Transport-Security 'max-age=63072000' always;

Verificação rápida

Teste sua compreensão dos conceitos da CompTIA Security+ (SY0-701) abordados nesta lição.

Resumo da lição

Nesta lição, você aprendeu que: o TLS 1.3 conclui o handshake em 1-RTT usando apenas troca de chaves DH efêmeras para garantir o sigilo de encaminhamento perfeito; a retomada 0-RTT permite reconexões mais rápidas usando PSKs, mas é vulnerável a ataques de repetição e deve transportar somente operações idempotentes; e o TLS 1.3 remove todos os recursos legados fracos — troca de chaves RSA, cifras CBC, RC4, criptografia de exportação e compressão —, reduzindo significativamente a superfície de ataque. A seguir, exploraremos algoritmos de criptografia autenticada, como AES-GCM.

Perguntas Frequentes

A aula “Handshake do TLS 1.3 e Retomada 0-RTT” é grátis?

Sim — o texto completo de “Handshake do TLS 1.3 e Retomada 0-RTT” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cloud & IT Cert Prep, atualize para CoddyKit PRO. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.

O que vou aprender em “Handshake do TLS 1.3 e Retomada 0-RTT”?

Acompanhe o handshake do TLS 1.3 passo a passo, entenda como ele alcança sigilo de encaminhamento por padrão e avalie as concessões de segurança da retomada de sessão 0-RTT. Você pratica Cloud & IT Cert Prep com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cloud & IT Cert Prep?

Nenhuma experiência prévia é necessária. Cloud & IT Cert Prep no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Handshake do TLS 1.3 e Retomada 0-RTT”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cloud & IT Cert Prep?

Sim. Cada aula de Cloud & IT Cert Prep inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Handshake do TLS 1.3 e Retomada 0-RTT
  2. Criptografia Autenticada: AES-GCM e ChaCha20-Poly1305
  3. Funções de Derivação de Chaves: PBKDF2, bcrypt e Argon2
  4. Criptografia Pós-Quântica: CRYSTALS-Kyber e Dilithium
← Voltar para Cloud & IT Cert Prep