Mozilla-ն հայտարարել է, որ Firefox-ի կայուն օգտատերերի համար ակտիվացնում է ECH (Encrypted Client Hello) մեխանիզմի աջակցությունը: Սա ESNI (Encrypted Server Name Indication) տեխնոլոգիայի շարունակությունն է և նախատեսված է TLS սեսիայի պարամետրերի, օրինակ՝ հարցված դոմեյնի անվան, վերաբերյալ տեղեկատվությունը կոդավորելու համար: Սկզբում ECH-ի հետ աշխատելու կոդը ավելացվել էր Firefox 85-ի թողարկման մեջ, բայց լռելյայնորեն անջատված էր: Chrome-ում ECH աջակցությունը աստիճանաբար ներառվել է՝ սկսած Chrome 115-ի թողարկումից:
Քանի որ կապվելուց բացի սերվեր Հարցված դոմեյնի տեղեկատվությունը արտահոսում է DNS-ի միջոցով: Լրիվ պաշտպանության համար, ECH-ից բացի, դուք պետք է օգտագործեք DNS HTTPS-ի կամ DNS TLS-ի միջոցով՝ DNS երթևեկությունը կոդավորելու համար: Firefox-ը չի օգտագործի ECH-ը՝ առանց կարգավորումներում DNS HTTPS-ի միջոցով միացնելու: Դուք կարող եք ստուգել ECH աջակցությունը ձեր զննարկիչում՝ այս էջում:
Firefox-ի կողմից ECH աջակցության լռելյայն միացմանը հանգեցրած գործոններից մեկը Cloudflare-ի կողմից ECH աջակցության միացումն էր իր բովանդակության մատակարարման ցանցում մի քանի օր առաջ: Գործնականում, քանի որ ECH-ն օգտագործելիս հարցվող հոսթերի մասին տվյալները թաքնված են վերլուծությունից, Cloudflare-ի CDN-ի միջոցով անցանկալի կայքերի զտումը և արգելափակումը այժմ կպահանջի ամբողջ Cloudflare ցանցը արգելափակել, ECH-ով բոլոր հարցումները արգելափակել կամ HTTPS-ի խափանումը կազմակերպել կեղծ root վկայականների միջոցով օգտատիրոջ համակարգում:
Սկզբնապես, SNI TLS ընդլայնումն օգտագործվում էր մի քանի HTTPS կայքերի մեկ IP հասցեի վրա աշխատանքը կազմակերպելու համար, որտեղ հարցվող հոսթի անունը նշված էր ClientHello հաղորդագրության մեջ՝ կոդավորված կապի ալիք հաստատելուց առաջ: Այս գործառույթը հնարավորություն էր տալիս բաշխել հարցումները վիրտուալ հոսթերի միջև կապի մշակման վաղ փուլում, բայց նաև թույլ էր տալիս ինտերնետ մատակարարին ընտրողաբար զտել HTTPS երթևեկությունը և վերլուծել, թե որ կայքերն է բացում օգտատերը, ինչը թույլ չէր տալիս հասնել լիակատար գաղտնիության HTTPS-ի օգտագործման ժամանակ:
Այս խնդիրը լուծելու և հարցվող կայքի մասին տեղեկատվության արտահոսքը կանխելու համար ավելի ուշ առաջարկվեց ESNI ընդլայնումը, որն իրականացնում է տվյալների կոդավորումը հոսթի անունով: ESNI-ի ներդրման ընթացքում պարզվեց, որ առաջարկվող մեխանիզմը չի ներառում հոսթի տվյալների արտահոսքի բոլոր հնարավոր աղբյուրները, և դրա օգտագործումը բավարար չէ HTTPS սեսիաների լիակատար գաղտնիությունն ապահովելու համար: Մասնավորապես, նախկինում հաստատված սեսիան վերսկսելիս, PSK (Նախապես համօգտագործվող բանալի) TLS ընդլայնման պարամետրերի շարքում շարունակում էր նշվել պարզ տեքստով դոմեյնի անունը: Բացի այդ, ESNI-ի ներդրման փորձերը բացահայտեցին համատեղելիության և մասշտաբավորման խնդիրներ, որոնք խոչընդոտում էին ESNI-ի լայն տարածմանը:
Հաշվի առնելով ESNI-ի բացահայտված թերությունները, մշակվել է ECH նոր ունիվերսալ մեխանիզմ, որը թույլ է տալիս կոդավորել ցանկացած TLS ընդլայնման պարամետրերը: Տեխնիկապես, ECH-ի և ESNI-ի միջև հիմնական տարբերությունն այն է, որ առանձին դաշտերի փոխարեն կոդավորվում է ամբողջ ClientHello հաղորդագրությունը միանգամից: ECH-ը ենթադրում է ClientHello-ի բաժանումը երկու առանձին հաղորդագրությունների՝ կոդավորված ClientHelloInner (SNI Inner) հաղորդագրության և չկոդավորված ClientHelloOuter (SNI Outer) բազային հաղորդագրության: Չկոդավորված SNI Outer-ը փոխանցում է ոչ զգայուն տվյալներ, ինչպիսիք են TLS տարբերակը և օգտագործված գաղտնագրերի ցանկը, ինչպես նաև ընդհանուր դոմեյնի անունը, որը չի համընկնում հարցվող դոմեյնի իրական անվան հետ: Օրինակ, բոլոր Cloudflare հաճախորդների համար չկոդավորված SNI Outer-ը նշում է «cloudflare-ech.com» ընդհանուր հոսթը, և հարցվող հոսթի իրական անունը փոխանցվում է կոդավորված SNI Inner-ում և հասանելի չէ վերլուծության համար:

ECH-ը նաև օգտագործում է կոդավորման բանալու բաշխման այլ սխեմա. հանրային բանալու տեղեկատվությունը փոխանցվում է HTTPSSVC DNS գրառումներով, այլ ոչ թե TXT գրառումներով: Բանալին ստանալու և կոդավորելու համար օգտագործվում է HPKE (հիբրիդային հանրային բանալու կոդավորում) մեխանիզմի վրա հիմնված վավերացված ծայրից ծայր կոդավորում: ECH-ը նաև աջակցում է սերվերից բանալու անվտանգ վերահաղորդմանը, որը կարող է օգտագործվել բանալու փոփոխության դեպքում: սերվեր և լուծել DNS քեշից հնացած բանալիների վերականգնման հետ կապված խնդիրները։
Source: opennet.ru
