Saya mengakses server uji TLS 1.3 " https://tls13.pinterjann.is " melalui klien java http menggunakan TLS 1.3. Semuanya tampak berfungsi dengan baik seperti yang ditunjukkan oleh respons html:
Apa yang saya tidak mengerti: Mengapa Wireshark ditampilkan dalam Protokol TLSv1.3 tinjauan umum tetapi dalam rincian Versi TLS 1.2?
Apakah Wireshark hanya menampilkan Versi yang salah atau apakah saya sebenarnya menggunakan TLS 1.2?
Terima kasih sebelumnya atas dukungan Anda.
Jawaban:
Maaf, untuk kebingungan ini, saya kehilangan semantik TLS 1.3 yang tepat: Misalnya, di Klien Halo, bidang "versi" harus berisi nilai tetap 0x0303 (TLS 1.2), sedangkan versi yang disukai terdapat dalam ekstensi "yang didukung versi ".
Dari RFC 8446 (spesifikasi TLS 1.3):
Ini setuju dengan apa yang ditampilkan oleh Wireshark:
sumber
Wireshark melaporkan TLS 1.3 di kolom protokol karena Server Hello berisi ekstensi Versi yang Didukung dengan TLS 1.3.
Ingat bahwa sesi TLS dimulai dengan jabat tangan untuk menegosiasikan parameter seperti versi protokol dan cipher. Klien mengirim pesan handshake Hello Klien dalam catatan TLS yang berisi:
Server mengirim pesan handshake Server Hello dengan:
Jadi dalam TLS 1.2, klien mengirim berbagai versi yang didukung sementara klien TLS 1.3 mengirim daftar versi yang didukung. Server kemudian akan memilih versi tunggal, tetapi untuk tujuan kompatibilitas itu akan menggunakan bidang baru untuk memilih TLS 1.3 atau yang lebih baru.
(Bahkan jika klien mengiklankan dukungan untuk beberapa versi (misalnya melalui versi catatan TLS yang berisi "TLS 1.0"), itu masih bisa gagal jabat tangan meskipun jika server menyetujui versi rendah ini.)
Hal lain yang perlu diperhatikan: Wireshark mencoba menafsirkan suatu paket segera setelah diterima. Pada saat Klien Halo diterima, ia tidak akan mengetahui versi final dan oleh karena itu menganggap Versi Catatan TLS. Ketika Server Hello diterima, itu dapat menyesuaikan versi sesuai:
Dalam diseksi dua jalur (yang juga mencakup GUI Wireshark), versi yang disetujui akan diketahui saat mencetak hasil dari pass kedua:
Uji tangkap yang digunakan di atas: https://github.com/wireshark/wireshark/blob/master/test/captures/tls13-rfc8446.pcap
sumber