Kuboresha kikusikiliza hadi TLS 1.3 hubadilisha kile mwangalizi anachoweza kusoma, lakini si kadri ambavyo nambari ya toleo inadokeza. ClientHello bado husafiri kabla ya mazungumzo ya usimbaji fiche wowote, na katika muunganisho wa kawaida jina la seva lililoombwa lipo pale kwa maandishi wazi. Encrypted Client Hello ndiyo mbinu inayoificha, na ni usambazaji tofauti wenye masharti yake. Fanya hatua hizi nne kabla ya kuandika sera inayodhani mojawapo ya tabia hizo mbili.

Kile ambacho handshake huweka wazi kwa kweli

TLS 1.3 husimba cheti cha seva na sehemu kubwa ya handshake inayofuata ServerHello. Kila kitu ambacho mteja hutuma kwanza kiko nje ya ulinzi huo, kwa sababu funguo bado hazipo. Kiashiria cha jina la seva ni sehemu ya safari hiyo ya kwanza, ndiyo sababu mwangalizi asiyeshiriki anaweza kuendelea kuisoma bila kuvunja kitu.

Vipimo vya ECH, RFC 9849, hubadilisha hili kwa kusimba ClientHello ya ndani kwa seva inayoshirikiana. Handshake ya nje inabaki na hubeba jina la umma ambalo mtandao unaweza kuona, kwa hiyo usambazaji bado unahitaji utambulisho wa nje unaoeleweka kwa wapatanishi. Jina hilo la nje ndilo sehemu ambayo watu huikosa wanapotarajia muunganisho uwe bila jina. Ni jina la kifuniko, si jina lililofichwa, na lazima litatuliwe na kuthibitishwa kama lingine lolote.

Hakuna lolote la haya linaloficha njia ya uwasilishaji. Anwani za chanzo na lengwa, bandari, ukubwa wa pakiti na muda hubaki zikionekana, na mara nyingi zinasema zaidi kuhusu nani anazungumza kuliko jina. Utatuzi wa majina na mahusiano ya ngazi ya programu ni tabaka jingine, kila moja na mwonekano wake.

Soma ClientHello badala ya kudhani

Toleo lililo katika ServerHello hakukuambii mteja alituma nini. Angalia safari ya kwanza moja kwa moja, kutoka nafasi inayowakilisha mwangalizi unaokujali.

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

Amri ya kwanza hufanya handshake na kuonyesha vigezo vilivyokubaliwa, ikiwa ni pamoja na toleo la itifaki na jina uliloomba. Ya pili hunasa pakiti za kwanza za muunganisho halisi, na ya tatu hutoa sehemu ya SNI kutoka kwa ule ukamataji. Ikiwa sehemu imejazwa, mwangalizi uliyemwiga anaweza kuisoma.

Nasa kwa tofauti upande wa mteja na kwenye njia wakati hizo mbili hazikubaliani, kwa sababu ukamataji wa ndani unaweza kuonyesha jina ambalo middlebox huandika upya au kulitupa baadaye. Nasa pia kutoka kwa mwenyeji asiyemaliza TLS mwenyewe, kwa kuwa proksi inayomaliza huona maandishi wazi kwa muundo na haithibitishi chochote kuhusu kile mtandao unaona.

Chukulia kiendelezi cha ECH kama madai, si uthibitisho

Kuona kiendelezi cha ECH katika ClientHello hakumaanishi muunganisho ulitumia ECH. Wateja hutuma GREASE ECH wasipokuwa na usanidi unaoweza kutumika, ili tu handshake zao zionekane sawa. Kiendelezi kipo, hello ya ndani ni chambo, na jina halisi bado linaweza kusomwa.

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'

Amri ya kwanza huonyesha kama asili inachapisha rekodi ya rasilimali ya HTTPS yenye kigezo cha usanidi wa ECH, na hivyo ndivyo wateja hujifunza ufunguo. Ya pili hutafuta maelezo ya hali ya handshake, ingawa ujumbe wa mafanikio wa mteja ni uthibitisho mkubwa zaidi. Kukubalika ndiko kunakohitajika: seva isiyo na ufunguo unaolingana haiwezi kusimbua hello ya ndani, na muunganisho unarudi nyuma.

Angalia pia mteja, kwa kuwa msaada wa kivinjari na usanidi hutofautiana kwa toleo na jukwaa. Sera iliyojengwa juu ya „vivinjari vya kisasa hutumia ECH“ ni dhana kuhusu kundi, si ukweli kuhusu kundi lako. Orodhesha matoleo yanayounganisha kwa kweli, kisha jaribu moja kutoka kwa kila moja. Ukurasa huo huo unaofanya kazi kutoka kwa kivinjari cha kompyuta cha sasa unaweza usifiche chochote kwa mteja wa zamani kwenye mtandao huo.

Andika wigo wa mwangalizi katika sera

Eleza mwangalizi anakaa wapi na nini kinaonekana hapo kabla ya kuamua kile udhibiti unaweza kutegemea. Muunganisho wa kivinjari na tovuti, usafirishaji wa VPN wa nje na proksi inayomaliza TLS kila moja hufichua seti tofauti ya ukweli, na kanuni iliyoandikwa kwa nafasi moja mara chache huhamishwa safi hadi nyingine.

Ikiwa udhibiti unategemea kusoma SNI, jaribu jinsi wateja waliowekwa wanavyotenda ECH inapopatikana na isipopatikana. Kisha rekodi matokeo ya uoanifu, kwa sababu kichujio kinachokoma kunasa kimya kimya ni kibaya kuliko kile ambacho hakikuwekwa kamwe.

Mwisho, weka kutokuwa na uhakika kwenye rekodi. Kubadilisha dai la zamani la jumla na jipya zaidi huacha pengo lile lile chini ya jina lingine la itifaki, na mkaguzi anayefuata ataliunga mkono kwa uthabiti sawa.

Makala zinazohusiana