Å bera ein offentleg nøkkelutvekslingsverdi i eit handtrykk er ikkje same hendinga som ein klient som loggar inn. Det eine etablerer kryptografisk tilstand for tilkoplinga; det andre seier kven klienten er, og det skjer berre når tenaren ber om det og utvekslinga støttar det. Å handsame det fyrste som det andre fører til gale slutningar om kva ein VPN skjuler og ikkje skjuler. Les meldingane, og avgjer deretter kva av fire eigenskapar du faktisk observerte.

To objekt som ser like ut i eit opptak

Ein TLS 1.3-klient kan bidra med nøkkelutvekslingsmateriale i fyrste flyginga si utan å leggje fram noko sertifikat. Det bidraget er offentleg av design, fordi tenaren treng det for å utleie den delte hemmelegheita. Eit klientcertifikat er ei anna melding og blir berre sendt etter at tenaren har bedt om eitt. Det ber ein identitet som tenaren deretter stadfestar, og gjensidig autentisering er ei avgjerd tenaren tek, ikkje ein eigenskap ciphersuiten inneber. Applikasjonsidentitet er noko heilt tredje: eit innloggingsskjema, eit bearer-token, ein cookie. Ingen av dei blir synte i handtrykket, og alle overlever ei endring av nettverksvegen.

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

Dei fire radene er uavhengige. Ei tilkopling kan ha rad éin og to, hoppe over rad tre og likevel bera rad fire i ein cookie-header.

Avgjer kva eit fanga handtrykk kan prova

Berre frå handtrykket lærer ein observatør den forhandla versjonen, ciphersuiten, sertifikatet til tenaren og dei offentlege nøkkelutvekslingsverdiane. Det er nok til å ta eit fingeravtrykk av ein klientimplementasjon og til å sjå kva tenar som vart kontakta. Det det ikkje gir, er den private tilstanden som trengst for å dekryptera tilkoplinga; hemmeleghaldet kviler på den efemere utvekslinga og ikkje på den offentlege delen. Det gir heller ikkje ein kontoinentitet, som aldri var i handtrykket til å byrje med.

Så den ærlege slutninga er smal: det vart ikkje lagt fram noko klientcertifikat i denne utvekslinga. Det er ikkje slik at klienten ikkje sende noko som kan koplast, og slett ikkje at økta ikkje bar nokon identifikator.

Les meldingane i staden for chiffre-namnet

Spør tenaren kva han ber om, i staden for å utleie det frå ciphersuiten. Eit TLS 1.3-handtrykk med ein sertifikatførespurnad er synleg i transkriptet, og fråværet er like synleg.

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

Gjenta deretter med eit konfigurert klientcertifikat, og samanlikn. Den andre køyringa skal visa at sertifikatet blir sendt og godteke; den fyrste skal ikkje visa noko, og det er den konkrete skilnaden argumentet handlar om.

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

Treng du berre den vanlege nettlesarsaka, er dei detaljerte utdataa frå klienten nok til å sjå protokollversjonen, stadfestingsresultatet og om det vart tilbode eit klientcertifikat. Ein tenar som aldri sender ein sertifikatførespurnad, kan ikkje ha motteke ein.

Der gjenopptaking endrar svaret

Gjenopptaking i TLS 1.3 brukar billettar knytte til hemmeleg tilstand, slik at ei seinare tilkopling kan fullførast utan full sertifikatutveksling. Det reduserer kva ein observatør ser og endrar kva transkriptet provar. Det skaper ikkje ein identitet der det ikkje var nokon. Ei gjenoppteken økt høyrer framleis til same applikasjonsøkta, og kvar cookie eller token i den økta blir verande identifikatoren som tel.

Difor går ei personvernvurdering som stoppar ved "ingen klientcertifikat" glipp av den interessante delen. Spørsmålet er kva part som held ein stabil identifikator, ikkje kva melding som mangla i eitt handtrykk.

Noter fire eigenskapar, ikkje éin dom

Skriv nøkkelavtale, tenarstadfesting, klientautentisering og applikasjonsidentitet som fire skilde linjer, med belegget for kvar. Den oversikta overlever endringar i protokollversjon, og ho gjer eit personvernargument etterprøvbart av andre. Legg deretter til kva nettverksvegen bidreg med. Ein VPN endrar kjeldeadressa ein teneste ser; han fjernar ikkje ei innlogging, ein cookie eller eit einingfingeravtrykk som applikasjonen alt har.

Noter den forhandla versjonen av tilkoplinga og resultatet av sertifikatførespurnaden saman, fordi nettopp det paret treng ein vurderar for å gjenskape slutninga di utan eige opptak.

Relaterte artiklar