Угуучуну TLS 1.3кө жаңырту байкоочунун окуй ала турганын өзгөртөт, бирок версия номери белгилегендей эмес. ClientHello каалаган шифрлоо келишилгенге чейин жолго чыгат, ал эми жөнөкөй туташууда суралган сервер аты ошол жерде ачык текстте турат. Encrypted Client Hello аны жашыруучу механизм жана ал өзүнүн шарттары бар өзүнчө жайгаштыруу болуп саналат. Эки жүрүм-турумдун бирин болжолдогон саясат жазганга чейин бул төрт кадамды аткарыңыз.

Кол алышуу чынында эмнени ачат

TLS 1.3 сервердин күбөлүгүн жана ServerHello-дон кийинки кол алышуунун көп бөлүгүн шифрлайт. Клиент биринчи жөнөткөн нерсенин баары ушул коргоонун сыртында калат, анткени ачкычтар али жок. Сервер атынын көрсөткүчү ошол биринчи учууга кирет, ошондуктан пассивдүү байкоочу эч нерсени бузбастан аны окуй алат.

ECH спецификациясы, RFC 9849, муну кызматташкан сервер үчүн ички ClientHello-ду шифрлөө менен өзгөртөт. Сырткы кол алышуу калат жана тармак көрө алган ачык атты алып жүрөт, ошондуктан жайгаштырууга ортомчулар үчүн маанилүү сырткы инсандык дагы эле керек. Ошол сырткы ат — адамдар туташуу анонимдүү болот деп күткөндө өткөрүп жиберген бөлүк. Бул жабуучу ат, жашыруун ат эмес жана ал каалаган башка сыяктуу чечилиши жана аутентификацияланышы керек.

Булардын эч бири жеткирүү жолун жашырбайт. Булак жана багыт даректери, порттор, пакет өлчөмдөрү жана убакыт байкоого боло турган бойдон калат, алар көбүнчө атка караганда ким сүйлөп жатканы тууралуу көбүрөөк айтат. Аттарды чечүү жана колдонмо деңгээлиндеги байланыштар дагы бир катмар, ар биринин өз көрүнүүсү бар.

Болжолдоонун ордуна ClientHello окуңуз

ServerHello-догу версия клиент эмне жөнөткөнүн айтпайт. Биринчи учууну түз, сизди кызыктырган байкоочуну билдирген позициядан караңыз.

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

Биринчи буйрук кол алышууну аткарат жана келишилген параметрлерди көрсөтөт, анын ичинде протокол версиясы жана сиз сураган ат. Экинчиси реалдуу туташуунун алгачкы пакеттерин кармайт, үчүнчүсү ошол кармоодон SNI талаасын чыгарат. Эгер талаа толтурулган болсо, сиз туураган байкоочу аны окуй алат.

Экөө дал келбегенде клиент тарапта жана жолдо өзүнчө кармаңыз, анткени жергиликтүү кармоо кийинчерээк ортоңку түзмөк кайра жаза турган же таштай турган атты көрсөтүшү мүмкүн. TLSти өзү бүтүрбөгөн хосттон да кармаңыз, анткени бүтүрүүчү прокси ачык текстти түзүлүшү боюнча көрөт жана тармак эмнени көрөрүн эч нерсе менен далилдебейт.

ECH кеңейтүүсүн далил эмес, билдирүү катары кабыл алыңыз

ClientHello ичинде ECH кеңейтүүсүн көрүү туташуу ECH колдонгонун билдирбейт. Клиенттер колдонууга жарактуу конфигурациясы жок болгондо GREASE ECH жөнөтүшөт, дал кол алышуулары бирдей көрүнүшү үчүн. Кеңейтүү бар, ички hello — азгырык, ал эми чыныгы ат дагы эле окулат.

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'

Биринчи буйрук булактын ECH конфигурация параметри менен HTTPS ресурс жазуусун жарыялай турганын көрсөтөт, клиенттер ачкычты ушундай билишет. Экинчиси кол алышуунун абалы тууралуу маалыматты издейт, бирок клиенттин ийгилик билдирүүсү күчтүүрөөк далил. Кабыл алуу маанилүү: дал келген ачкычы жок сервер ички hellonу чече албайт жана туташуу артка чегинет.

Клиентти да текшериңиз, анткени браузерлердин колдоосу жана конфигурация версия менен платформага жараша ар башка. „Заманбап браузерлер ECH колдонот“ дегенге курулган саясат флот тууралуу болжол, сиздин флотуңуз тууралуу факт эмес. Чынында туташкан версияларды тизмектеп, анан ар биринен бирден сынап көрүңүз. Учурдагы иш такта браузеринен иштеген ошол эле барак ошол эле тармактагы эскирээк клиенттен эч нерсени жашырбашы мүмкүн.

Байкоочунун камтылышын саясатка жазыңыз

Көзөмөл эмнеге таяна аларын чечээрден мурун байкоочу кайда отураарын жана ошол чекитте эмне көрүнөрүн көрсөтүңүз. Браузердин сайт менен туташуусу, сырткы VPN ташуусу жана TLSти бүтүрүүчү прокси ар бири ар башка фактылар топтомун ачат, ал эми бир позиция үчүн жазылган эреже экинчисине сейрек таза өтөт.

Эгер көзөмөл SNI окууга көз каранды болсо, жайгаштырылган клиенттердин ECH жеткиликтүү жана жеткиликсиз учурда кандай аракет кыларын сынап көрүңүз. Анан шайкештик кесепетин жазып алыңыз, анткени үнсүз шайкештикти токтоткон чыпка эч качан жайгаштырылбагандан жаман.

Акырында белгисиздикти жазууда сактаңыз. Эски универсалдуу ырастоону жаңыраак менен алмаштыруу ошол эле боштукту башка протокол атынын астында калтырат жана кийинки рецензент ага дал ошондой бекем ишенет.

Тектеш макалалар