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 домен
Домен ачылбай калса
Маскировка домени ишенимдүү бойдон калышы керек: сайт жоголсо, оператордо бөгөттөлсө же анын сертификатынын мөөнөтү бүтсө, ага туташуу табигый көрүнбөй калат. Ошондо башка домен тандалып, жаңы секрет түзүлүп, шилтемелер кайра чыгарылат.
Кандай домен ылайыктуу
Домен тармагыңызда бөгөттөлбөгөн кадимки сайт болушу керек. mtg README'синде өзүнчө эскертишет: провайдерлер дал келбестикти байкашы мүмкүн, мисалы Google'га таандык эмес IP-даректе google.com, ошондуктан доменди сервердин дареги менен байланыштыруу жакшы. telemt'те доменди алмаштыруу берилген бардык шилтемелерди иштебей калтырат, аларды кайра чыгаруу керек болот.