Handshake do TLS 1.3 passo a passo
Acompanhe ClientHello, ServerHello, a derivação de chaves e Finished.
Handshake do TLS 1.3 passo a passo é uma aula grátis de Cryptology Academy 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 Cryptology Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cryptology Academy inclui 4 aulas no total.
Por que TLS?
TLS (segurança da camada de transporte) protege os dados em trânsito pela internet. Toda conexão HTTPS usa TLS. O TLS 1.3, padronizado na RFC 8446 (2018), eliminou algoritmos legados e reduziu o número de viagens de ida e volta da negociação de 2 para 1.
ClientHello
O cliente envia: a versão do TLS (1.3), um valor aleatório de 32 bytes, uma lista de conjuntos de cifras compatíveis (por exemplo, TLS_AES_256_GCM_SHA384) e extensões de compartilhamento de chaves contendo chaves públicas ECDH para os grupos compatíveis (X25519, P-256).
ServerHello
O servidor seleciona um conjunto de cifras e um grupo de compartilhamento de chaves, gera seu próprio par de chaves ECDH efêmero e responde com sua chave pública. Nesse momento, ambos os lados podem calcular o segredo compartilhado por meio de ECDH.
Derivação de chaves por meio de HKDF
O TLS 1.3 usa HKDF (função de derivação de chaves baseada em HMAC) em um esquema: segredo inicial → segredo de negociação → segredo mestre. Cada etapa deriva chaves separadas para o tráfego de negociação do cliente e do servidor e para os dados da aplicação.
Conclusão do servidor
O servidor envia seu certificado, CertificateVerify (uma assinatura sobre o histórico da negociação usando sua chave privada) e a mensagem de conclusão (um HMAC sobre o histórico). Tudo é cifrado com a chave de tráfego da negociação.
Conclusão do cliente
O cliente verifica a cadeia de certificados, confere a assinatura de CertificateVerify, verifica o MAC de conclusão e então envia sua própria mensagem de conclusão. A negociação agora está completa em uma viagem de ida e volta (1-RTT).
Retomada 0-RTT
O TLS 1.3 permite a retomada 0-RTT (zero viagens de ida e volta) usando uma chave pré-compartilhada (PSK) de uma sessão anterior. O cliente pode enviar dados da aplicação imediatamente, mas os dados 0-RTT não têm proteção contra repetições e devem ser idempotentes.
Conjuntos de cifras do TLS 1.3
O TLS 1.3 exige apenas cifras AEAD: AES-128-GCM-SHA256, AES-256-GCM-SHA384, ChaCha20-Poly1305-SHA256. Todas usam ECDHE ou DHE para a troca de chaves. Os conjuntos fracos (RC4, 3DES, CBC) foram removidos.
Camada de registros
Após a negociação, todos os dados são encapsulados em registros TLS: cabeçalho de 5 bytes (tipo de conteúdo, versão, comprimento) + conteúdo útil cifrado com AEAD. O número de sequência é implícito e usado como parte do valor único do AEAD para impedir repetições.
Sigilo de encaminhamento
Como o TLS 1.3 sempre usa uma troca de chaves efêmera (ECDHE), o comprometimento da chave privada de longo prazo do servidor não descriptografa sessões passadas. Cada sessão tem um par de chaves efêmero exclusivo, destruído após a negociação.
Visualização no Wireshark
No Wireshark: ClientHello mostra random + key_share; ServerHello mostra o grupo selecionado; os registros seguintes aparecem como "Application Data" (cifrados). Exporte SSLKEYLOGFILE para descriptografá-los usando as chaves da sessão.
Verificação rápida
Quantas viagens de ida e volta uma negociação completa do TLS 1.3 exige?
Recapitulação
O TLS 1.3 combina ECDHE, HKDF, cifras AEAD e autenticação baseada em certificados em uma negociação de 1-RTT com sigilo de encaminhamento obrigatório. Em seguida: a camada de registros do TLS e os conjuntos de cifras em profundidade.
Perguntas Frequentes
A aula “Handshake do TLS 1.3 passo a passo” é grátis?
Sim — o texto completo de “Handshake do TLS 1.3 passo a passo” é 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 Cryptology Academy, atualize para CoddyKit PRO. O curso de Cryptology Academy inclui 4 aulas no total.
O que vou aprender em “Handshake do TLS 1.3 passo a passo”?
Acompanhe ClientHello, ServerHello, a derivação de chaves e Finished. Você pratica Cryptology Academy 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 Cryptology Academy?
Nenhuma experiência prévia é necessária. Cryptology Academy 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 passo a passo”?
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 Cryptology Academy?
Sim. Cada aula de Cryptology Academy 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
- Handshake do TLS 1.3 passo a passo
- Camada de registros do TLS e conjuntos de cifras
- Validação de certificados no TLS
- Ataques ao TLS: BEAST, POODLE e downgrade