Estou acessando o servidor de teste TLS 1.3 " https://tls13.pinterjann.is " por meio de um cliente http java usando o TLS 1.3. Tudo parece funcionar bem, pois a resposta html indica:
O que eu não entendo: Por que o Wireshark mostra na visão geral o Protocolo TLSv1.3, mas nos detalhes Versão TLS 1.2?
O Wireshark está apenas exibindo a versão errada ou estou realmente usando o TLS 1.2?
Agradecemos antecipadamente por seu apoio.
Respostas:
Desculpe, pela confusão, estava faltando a semântica exata do TLS 1.3: por exemplo, no Client Hello, o campo "version" deve conter o valor fixo 0x0303 (TLS 1.2), enquanto a versão preferida está contida na extensão "suportada versões ".
Do RFC 8446 (especificação TLS 1.3):
Isso concorda com o que o Wireshark exibe:
fonte
O Wireshark reporta o TLS 1.3 na coluna de protocolo devido ao Server Hello que contém uma extensão de Versões Suportadas com o TLS 1.3.
Lembre-se de que as sessões TLS começam com um handshake para negociar parâmetros como a versão do protocolo e as cifras. O cliente envia uma mensagem de handshake do Client Hello em um registro TLS contendo:
O servidor envia uma mensagem de handshake do Server Hello com:
Portanto, no TLS 1.2, o cliente envia um intervalo de versões suportadas, enquanto um cliente TLS 1.3 envia uma lista de versões suportadas. O servidor escolherá uma única versão, mas, para fins de compatibilidade, usará um novo campo para selecionar o TLS 1.3 ou mais recente.
(Mesmo que um cliente anuncie o suporte para alguma versão (por exemplo, através de uma versão de registro TLS contendo "TLS 1.0"), ele ainda poderá falhar no handshake, se o servidor concordar com esta versão baixa.)
Outra coisa a ter em atenção: o Wireshark tenta interpretar um pacote imediatamente quando ele é recebido. No momento em que o Client Hello é recebido, ele não conhece a versão final e, portanto, assume a versão de registro TLS. Quando o Server Hello é recebido, ele pode ajustar a versão de acordo:
Em uma dissecção de duas passagens (que também inclui a GUI do Wireshark), a versão acordada será conhecida quando imprimir os resultados da segunda passagem:
Captura de teste usada acima: https://github.com/wireshark/wireshark/blob/master/test/captures/tls13-rfc8446.pcap
fonte