Að uppfæra hlustanda í TLS 1.3 breytir því sem áhorfandi getur lesið, en ekki eins miklu og útgáfunúmerið bendir til. ClientHello fer enn áður en nokkur dulkóðun er samin, og í venjulegri tengingu stendur umbeðið netþjónsnafn þar í opnum texta. Encrypted Client Hello er aðferðin sem felur það, og það er sérstök uppsetning með sínum eigin forsendum. Framkvæmdu þessi fjögur skref áður en þú skrifar stefnu sem gerir ráð fyrir öðru hvoru hegðuninni.

Hvað handabandið afhjúpar í raun

TLS 1.3 dulkóðar skírteini netþjónsins og mestan hluta handabandsins sem fylgir ServerHello. Allt sem biðlarinn sendir fyrst er utan við þá vernd, því lyklarnir eru ekki til enn. Tilgreining netþjónsnafnsins er hluti af þessari fyrstu sendingu, og þess vegna getur óvirkur áhorfandi enn lesið hana án þess að brjóta nokkuð.

Forskriftin ECH, RFC 9849, breytir þessu með því að dulkóða innra ClientHello fyrir netþjón sem vinnur með. Ytra handabandið helst og ber opinbert nafn sem netið getur séð, svo uppsetningin þarf enn ytra auðkenni sem er skiljanlegt milliliðum. Það ytra nafn er sá hluti sem fólk missir þegar það býst við að tengingin verði nafnlaus. Það er hulunarnafn, ekki falið nafn, og það verður að leysast og auðkenna sig eins og hvert annað.

Ekkert af þessu felur afhendingarleiðina. Heimildar- og áfangastaðir, gáttir, pakkastærðir og tímasetning eru enn sýnileg, og þau segja oft meira um hver talar en nafnið. Nafnaupplausn og tengsl á forritastigi eru enn eitt lagið, hvert með sína sýnileika.

Lestu ClientHello í stað þess að gera ráð fyrir

Útgáfan í ServerHello segir þér ekki hvað biðlarinn sendi. Skoðaðu fyrstu sendinguna beint, frá stöðu sem táknar áhorfandann sem þér er annt um.

openssl s_client -connect app.plant.example:443 -servername app.plant.example -tls1_3 </dev/null> 2>/dev/null | head -20
sudo tcpdump -ni eth0 -c 40 'tcp port 443' -w /tmp/tls.pcap
tshark -r /tmp/tls.pcap -Y 'tls.handshake.extensions_server_name' -T fields -e tls.handshake.extensions_server_name

Fyrsta skipunin framkvæmir handaband og sýnir samningsbundnu færibreyturnar, þar á meðal samskiptaregluútgáfuna og nafnið sem þú baðst um. Önnur fangar fyrstu pakkana í raunverulegri tengingu, og þriðja dregur SNI-sviðið úr þeirri vistun. Ef sviðið er útfyllt getur áhorfandinn sem þú líktir eftir lesið það.

Fangaðu sérstaklega á biðlarahlið og á leiðinni þegar þau tvö stangast á, því staðbundin vistun getur sýnt nafn sem millistykki endurskrifar eða hendir síðar. Fangaðu líka frá hýsli sem lýkur ekki TLS sjálft, þar sem umboð sem lýkur TLS sér opinn texta að hönnun og sannar ekkert um það sem netið sér.

Meðhöndlaðu ECH-viðbót sem fullyrðingu, ekki sönnun

Að sjá ECH-viðbót í ClientHello þýðir ekki að tengingin hafi notað ECH. Biðlarar senda GREASE ECH þegar þeir hafa ekki nothæfa stillingu, einmitt svo handabönd þeirra líti eins út. Viðbótin er til staðar, innra hello er tálbeita, og raunverulega nafnið er enn læsilegt.

dig +short HTTPS app.plant.example
openssl s_client -connect app.plant.example:443 -tls1_3 -status </dev/null> 2>/dev/null | grep -i -E 'ech|status_request'

Fyrsta skipunin sýnir hvort uppruninn birtir HTTPS-auðlindarfærslu með ECH-stillingarfæribreytu, en þannig læra biðlarar lykilinn. Önnur leitar að stöðuupplýsingum handabandsins, þótt árangursskilaboð biðlarans sé sterkari sönnunin. Viðtaka er það sem skiptir máli: netþjónn sem hefur ekki samsvarandi lykil getur ekki afkóðað innra hello, og tengingin fellur til baka.

Athugaðu biðlarann líka, því stuðningur vafra og stillingar eru mismunandi eftir útgáfu og kerfis. Stefna byggð á „nútíma vafrar nota ECH“ er ágiskun um flota, ekki staðreynd um þinn flota. Skráðu útgáfurnar sem tengjast í raun og prófaðu síðan eina af hverri. Sama síðan sem virkar frá núverandi skjáborðsvafra felur kannski ekkert fyrir eldri biðlara á sama neti.

Skrifaðu umfang áhorfandans í stefnuna

Tilgreindu hvar áhorfandinn situr og hvað er sýnilegt á þeim stað áður en þú ákveður hvað stýring getur reitt sig á. Tenging vafra við vefsvæði, ytra VPN-flutningslag og umboð sem lýkur TLS afhjúpa hvert sína mengi staðreynda, og regla skrifuð fyrir eina stöðu flyst sjaldan hreint yfir á aðra.

Ef stýring byggir á að lesa SNI, prófaðu hvernig uppsettu biðlararnir hegða sér þegar ECH er tiltækt og þegar það er ekki. Skráðu síðan samhæfingarafleiðinguna, því sía sem hættir hljóðlaust að passa er verri en sú sem var aldrei sett upp.

Að lokum, hafðu óvissuna í skránni. Að skipta gömlu alhliða fullyrðingu út fyrir nýrri skilur sömu skarðið eftir undir öðru samskiptaregluheiti, og næsti yfirferðaraðili mun trúa því jafn staðfastlega.

Tengdir greinar