Membawa nilai pertukaran kunci awam dalam jabat tangan bukan peristiwa yang sama dengan klien log masuk. Satu menetapkan keadaan kriptografi untuk sambungan; yang lain menyatakan siapa klien itu, dan ia hanya berlaku apabila pelayan memintanya dan pertukaran menyokongnya. Menganggap yang pertama sebagai yang kedua membawa kepada kesimpulan yang salah tentang apa yang disembunyikan VPN dan apa yang tidak. Baca mesej itu, kemudian tentukan sifat mana antara empat yang benar-benar anda perhatikan.

Dua objek yang kelihatan sama dalam tangkapan

Klien TLS 1.3 boleh menyumbang bahan pertukaran kunci dalam penerbangan pertamanya tanpa mengemukakan sebarang sijil. Sumbangan itu bersifat awam dari segi reka bentuk, kerana pelayan memerlukannya untuk memperoleh rahsia kongsi. Sijil klien ialah mesej lain, dihantar hanya selepas pelayan memintanya. Ia membawa identiti yang kemudiannya disahkan oleh pelayan, dan pengesahan bersama ialah keputusan pelayan, bukan sifat yang tersirat oleh suit sifer. Identiti aplikasi ialah perkara ketiga yang berbeza sama sekali: borang log masuk, token pembawa, kuki. Tidak satu pun daripadanya muncul dalam jabat tangan, dan semuanya bertahan apabila laluan rangkaian berubah.

Object in playWhat it establishes
Key-exchange shareCryptographic state for this connection
Server certificateWhich server the client reached
Client certificateClient authentication, when requested
Application sessionAccount identity inside the application

Keempat-empat baris itu bebas. Sambungan boleh mempunyai baris satu dan dua, melangkau baris tiga, dan masih membawa baris empat dalam pengepala kuki.

Tentukan apa yang boleh dibuktikan oleh jabat tangan yang ditangkap

Daripada jabat tangan sahaja, pemerhati mengetahui versi yang dirundingkan, suit sifer, sijil pelayan dan nilai pertukaran kunci awam. Itu cukup untuk mengambil cap jari pelaksanaan klien dan melihat pelayan mana yang dihubungi. Apa yang tidak diberikannya ialah keadaan peribadi yang diperlukan untuk menyahsulit sambungan, yang kerahsiaannya bergantung pada pertukaran efemeral dan bukan pada bahagian awam. Ia juga tidak memberikan identiti akaun, yang sejak awal tidak pernah ada dalam jabat tangan.

Jadi kesimpulan yang jujur itu sempit: tiada sijil klien dikemukakan dalam pertukaran ini. Bukanlah kerana klien tidak menghantar apa-apa yang boleh dipautkan, dan sudah tentu bukan kerana sesi tidak membawa sebarang pengecam.

Baca mesej, bukan nama sifer

Tanya pelayan apa yang dimintanya, bukannya membuat kesimpulan daripada suit sifer. Jabat tangan TLS 1.3 yang mengandungi permintaan sijil kelihatan dalam transkrip, dan ketiadaannya juga sama kelihatan.

openssl s_client -connect app.example.net:443 -tls1_3 -msg < /dev/null 2>&1 | grep -i -E 'key_share|CertificateRequest'

Kemudian ulangi dengan sijil klien dikonfigurasikan, dan bandingkan. Larian kedua sepatutnya menunjukkan sijil dihantar dan diterima; yang pertama sepatutnya tidak menunjukkan apa-apa, dan itulah perbezaan konkrit yang diperdebatkan.

openssl s_client -connect app.example.net:443 -tls1_3 -cert client.pem -key client.key -quiet

Jika anda hanya memerlukan kes pelayaran biasa, keluaran klien yang terperinci sudah cukup untuk melihat versi protokol, hasil pengesahan dan sama ada sijil klien ditawarkan. Pelayan yang tidak pernah menghantar permintaan sijil tidak mungkin menerima satu.

Di mana penyambungan semula mengubah jawapan

Penyambungan semula TLS 1.3 menggunakan tiket yang berkait dengan keadaan rahsia, jadi sambungan kemudian boleh selesai tanpa pertukaran sijil penuh. Itu mengurangkan apa yang dilihat oleh pemerhati dan mengubah apa yang dibuktikan oleh transkrip. Ia tidak mencipta identiti di tempat yang tiada. Sesi yang disambung semula masih milik sesi aplikasi yang sama, dan apa-apa kuki atau token dalam sesi itu kekal sebagai pengecam yang penting.

Itulah sebabnya semakan privasi yang berhenti pada "tiada sijil klien" terlepas bahagian yang menarik. Soalan yang perlu ditanya ialah pihak mana yang memegang pengecam stabil, bukan mesej mana yang tiada daripada satu jabat tangan.

Catat empat sifat, bukan satu keputusan

Tulis persetujuan kunci, pengesahan pelayan, pengesahan klien dan identiti aplikasi sebagai empat baris berasingan, dengan bukti bagi setiap satu. Inventori itu bertahan apabila versi protokol berubah, dan ia menjadikan hujah tentang privasi boleh diperiksa oleh orang lain. Kemudian tambahkan apa yang disumbangkan oleh laluan rangkaian. VPN mengubah alamat sumber yang dilihat oleh perkhidmatan; ia tidak membuang log masuk, kuki atau cap jari peranti yang sudah dipegang oleh aplikasi.

Catat versi sambungan yang dirundingkan dan hasil permintaan sijil bersama-sama, kerana pasangan itulah yang diperlukan oleh penyemak untuk menghasilkan semula kesimpulan anda tanpa tangkapan sendiri.

Artikel berkaitan