Lüğət

SNI

Server Name Indication — «server adının göstərilməsi»

Müştərinin qorunan bağlantının əvvəlində, hələ şifrələmədən əvvəl açıq göstərdiyi saytın adı.

Bu nədir

SNI — TLS protokolunun genişlənməsidir. Ən birinci mesajda (ClientHello) klient qoşulduğu saytın adını göstərir. Bu, bir IP ünvanın çoxlu HTTPS saytına xidmət etməsi və serverin hansı sertifikatı göstərəcəyini dərhal bilməsi üçün lazımdır. Genişlənmə RFC 6066-da təsvir olunub; ilk redaksiyası 2003-cü ildə çıxıb.

Bu filtrasiya üçün niyə vacibdir

ClientHello şifrələmə qoşulmazdan əvvəl göndərilir və ilkin sxemdə saytın adı açıq mətnlə ötürülür. Ona görə yoldakı müşahidəçi — operator və ya DPI avadanlığı — məzmunu görmədiyi halda bağlantının hansı domenə getdiyini görür. «Ada görə» bloklanma məhz buna əsaslanır.

Encrypted SNI və Encrypted Client Hello genişlənmələri sahəni bağlayır, amma yalnız TLS 1.3 ilə işləyir və hər iki tərəfdən dəstək tələb edir. Vikipediyanın məlumatına görə, rusiyalı provayderlər ESNI-ni 2020-ci ilin oktyabrında bloklamağa başlayıb.

Proksi secret-ində SNI

FakeTLS rejimində proksi klienti ClientHello-da domeni göstərir — açardan dərhal sonra secret-ə yazılmış domeni. Filtr üçün bu, həmin sayta girişə bənzəyir. Domen secret-də onaltılıq rəqəmlərlə yazılıb:

ee473ce5d4958eb5f968c87680a23854a0676f6f676c652e636f6d

Domeni necə oxumaq

Altından xətt çəkilmiş hissə — hex-də google.com sətrinin baytlarıdır. Onları bir əmrlə açmaq olar:

echo 676f6f676c652e636f6d | xxd -r -p

SNI-ni özünüz necə yoxlamaq

Serverin SNI-dəki konkret adə nə cavab verdiyinə OpenSSL utilitası ilə baxmaq olar: -servername parametri klientin ClientHello-da göstərəcəyi adı verir.

openssl s_client -connect IP-ADDRESS:443 -servername domain

Domen açılmağı dayandırıbsa

Maskalanma domeni inandırıcı qalmalıdır: sayt yoxa çıxıbsa, operatorda bloklanıbsa və ya sertifikatının müddəti bitibsə, ona bağlantı təbii görünməyi dayandırır. Onda başqa domen seçir, yeni secret yaradır və linkləri yenidən buraxırlar.

Hansı domen yararlıdır

Domen şəbəkənizdə bloklanmayan adi sayt olmalıdır. mtg README-sində ayrıca xəbərdarlıq edilir: provayderlər uyğunsuzluğu görə bilər, məsələn Google-a məxsus olmayan IP ünvanda google.com, ona görə domeni server ünvanı ilə əlaqələndirmək daha yaxşıdır. telemt-də domenin dəyişdirilməsi bütün verilmiş linkləri işləməz edir, onları yenidən buraxmaq lazım olacaq.

Mənbələr

  1. Server Name Indication — Vikipediya
  2. RFC 6066, bölmə 3: Server Name Indication
  3. mtg: layihənin README-si
  4. telemt: FAQ