Глоссарий

SNI

Server Name Indication — «сервер атауын көрсету»

Клиент қорғалған қосылымның басында, шифрлау басталғанға дейін ашық атайтын сайт атауы.

Бұл не

SNI — TLS протоколының кеңейтуі. Ең алғашқы хабарламада (ClientHello) клиент өзі қосылатын сайттың атауын айтады. Бұл бір IP-мекенжай көптеген HTTPS сайтына қызмет етуі үшін және сервер қандай сертификатты көрсету керегін бірден білуі үшін қажет. Кеңейту RFC 6066-да сипатталған; оның алғашқы редакциясы 2003 жылы шықты.

Сүзу үшін неге маңызды

ClientHello шифрлау қосылғанға дейін кетеді, ал бастапқы схемада сайт атауы ашық мәтінмен жіберіледі. Сондықтан жолдағы бақылаушы — оператор немесе DPI жабдығы — мазмұнды көрмесе де, қосылым қай доменге барып жатқанын көреді. «Атау бойынша» бұғаттау дәл осыған құрылған.

Encrypted SNI және Encrypted Client Hello кеңейтулері өрісті жабады, бірақ тек TLS 1.3-пен жұмыс істейді және екі жақтың қолдауын қажет етеді. Уикипедия деректері бойынша, ресейлік провайдерлер ESNI-ді 2020 жылғы қазанда бұғаттай бастаған.

Прокси құпиясөзіндегі SNI

FakeTLS режимінде прокси клиенті ClientHello-да доменді атайды — кілттен кейін құпиясөзге тігілген домен. Сүзгіге бұл осы сайтқа кіру сияқты көрінеді. Домен құпиясөзде он алтылық сандармен жазылған:

ee473ce5d4958eb5f968c87680a23854a0676f6f676c652e636f6d

Доменді қалай оқуға болады

Асты сызылған бөлік — google.com жолының hex-тегі байттары. Оларды бір командамен шешуге болады:

echo 676f6f676c652e636f6d | xxd -r -p

SNI-ды өзіңіз қалай тексеруге болады

Сервердің SNI-дағы нақты атауға не жауап беретінін OpenSSL утилитасымен көруге болады: -servername параметрі клиент ClientHello-да айтатын атауды береді.

openssl s_client -connect IP-МЕКЕНЖАЙ:443 -servername domain

Домен ашылмай қалса

Бүркемелеу домені сенімді болып қалуы керек: сайт жоғалса, операторда бұғатталса немесе сертификатының мерзімі өтсе, оған қосылым табиғи көрінуін тоқтатады. Онда басқа домен таңдайды, жаңа құпиясөз жасайды және сілтемелерді қайта шығарады.

Қандай домен жарайды

Домен сіздің желіңізде бұғатталмаған қарапайым сайт болуы керек. mtg README-інде бөлек ескертеді: провайдерлер сәйкессіздікті байқауы мүмкін, мысалы, Google-ға тиесілі емес IP-мекенжайдағы google.com, сондықтан доменді сервердің мекенжайымен байланыстырған жөн. telemt-те доменді ауыстыру берілген барлық сілтемені жарамсыз етеді, оларды қайта шығаруға тура келеді.

Дереккөздер

  1. Server Name Indication — Уикипедия
  2. RFC 6066, 3-бөлім: Server Name Indication
  3. mtg: жобаның README-і
  4. telemt: FAQ