Əsaslar

FakeTLS: proksi özünü sayt kimi necə göstərir

Secret-dəki ee prefiksi nə deməkdir və maskalanma domeninin seçimi proksinin axşamadək dayanıb-dayanmayacağını niyə həll edir.

Mündəricat 16 bölmə

FakeTLS — MTProto proksinin elə rejimidir ki, bağlantı adi HTTPS saytına girişə bənzəyir. Onu secret-dəki bir detal işə salır — ee prefiksi. Aşağıda: bu prefiksin arxasında nə var, əl sıxma necə keçir, maskalanma domenini necə seçmək olar və hansı səhvlər rejimi tez-tez korlayır.

ee prefiksi nə deməkdir

Proksinin -i linkin sonuncu parametridir. O, ee ilə başlayırsa, proksi FakeTLS rejimində işləyir. Sonra 16 bayt açar (32 onaltılıq simvol) gəlir, ən sonda isə hex formatında yazılmış maskalanma domeni.[1]

[1] «ee + açar + domen» yazısı mtg sənədlərindəki nümunə ilə üst-üstə düşür: google.com üçün secret.

mtg sənədlərindən nümunə — google.com üçün secret:

ee473ce5d4958eb5f968c87680a23854a0676f6f676c652e636f6d

İlk iki simvol — rejim, sonrakı 32 — açar, qalanı isə baytlarla yazılmış google.com sözüdür. Domen bir əmrlə oxunur:

echo 676f6f676c652e636f6d | xxd -r -p

Əl sıxma necə keçir

HTTPS saytı ilə adi bağlantı ClientHello mesajı ilə başlayır; orada klient lazım olan saytı sahəsində göstərir. FakeTLS bu formanı təkrarlayır, ona görə filtr üçün ilk paketlər adi sayta girişə bənzəyir.

  1. Klient secret-dəki domenlə ClientHello göndərir. Orada proksinin «öz» klientini tanıdığı məlumatlar var.
  2. Proksi onları yoxlayır və TLS serverinin cavab verəcəyi kimi cavab verir.
  3. Sonra qurulmuş bağlantı üzrə TLS-ə bənzər yazılara bükülmüş adi MTProto axını gedir.
  4. Gələn proksinin klienti deyil, təsadüfi ziyarətçi, skaner və ya yoxlayıcıdırsa, proksi özünü açmır: bağlantını həqiqi sayta ötürür və onun əsl cavabını qaytarır.

Sonuncu bənd aktiv yoxlamadan müdafiədir. mtg bunu domain fronting adlandırır: sorğu rədd edilirsə, proksi örtük saytına qoşulur və trafiki ötürür, ona görə yoxlayan həqiqi saytın cavabını görür. Telemt eyni şeyi mask ayarı ilə edir: tanınmayan bağlantılar real veb-serverə gedir.

Filtr nəyi görür

TSPU avadanlığı və sistemləri üçün FakeTLS bağlantısı bunlardır:

  • serverinizin IP ünvanına 443 portunda bağlantı;
  • SNI-də məşhur saytın adı ilə ClientHello;
  • TLS serverinin cavabına bənzər cavab;
  • sonra — hər HTTPS kimi şifrələnmiş yazılar axını.

Belə bağlantını həqiqidən ayırmaq üçün filtr incə uyğunsuzluqlar axtarmalıdır: domen və IP ünvanının uyğunsuzluğu, ClientHello-da qeyri-adi genişlənmələr, axının statistikası. «Məşhur saytla HTTPS-ə bənzəyən hər şeyi» sadəcə bağlamaq isə adi istifadəçilərə zərər vermədən mümkün deyil.

Maskalanma domenini necə seçmək olar

Domen rejimin zəif yeridir. Provayderin uyğunsuzluğu görüb-görməyəcəyi ondan asılıdır. İmplementasiya müəlliflərinin tövsiyələrindən belə siyahı yaranır:

  • şəbəkənizdə bloklanmayan adi sayt. Domen operatorda əlçatmazdırsa, ona bağlantı şübhəli görünür, link isə işləməyə bilər (telemt tövsiyəsi);
  • server ünvanı ilə bağlı domen. mtg README-si xəbərdarlıq edir: provayderlər google.com-un Google-a məxsus olmayan IP-yə getdiyini görə bilər. Məsləhət — VPS-in yerləşdiyi hostinqin domenini seçmək (məsələn, DigitalOcean-dakı server üçün digitalocean.com);
  • ən yaxşısı — öz domeniniz. mtg-nin BEST_PRACTICES sənədi domeni qeydiyyatdan keçirib VPS-ə yönəltməyi tövsiyə edir: onda DNS və SNI üst-üstə düşür, yoxlama uyğunsuzluq tapmır;
  • öz alt şəbəkənizdən saytı köçürməyin. Eyni tövsiyələrə görə, belə yoxlama DNS üzrə asandır, ünvan isə banlana bilər;
  • iri brendi götürməyin. İri saytı DNS üzrə yoxlamaq asandır — cavablar sizin serverlə üst-üstə düşməyəcək.

Vacib

Əmin deyilsinizsə, mtg README-si əlavə ayarlara toxunmamağı məsləhət görür: «əmin deyilsinizsə, heç nəyə toxunmayın».

Seçilmiş domeni necə yoxlamaq olar

Domeni secret-ə yazmazdan əvvəl onu provayderin edəcəyi kimi yoxlayın:

  1. Domen şəbəkənizdən açılır. Operatorda əlçatmazdırsa, ona bağlantı qəribə görünür: curl -I https://domain/ cavab qaytarmalıdır.
  2. Əl sıxma sizin ünvana keçir. curl -v -I --resolve domain:443:IP https://domain/ əmri sorğunu məcburi olaraq lazım olan IP ünvana yönəldir və TLS əl sıxmasını, etibar zəncirini və sertifikatın qüvvədə olma müddətini göstərir.
  3. Sertifikat qüvvədədir. telemt FAQ-ında nümunə kimi müddəti 2026-cı il martın 1-də bitmiş sertifikat xatırlanır və saytın aktuallığının ayrıca yoxlanmalı olduğu qeyd olunur.
  4. DNS server ünvanı ilə üst-üstə düşür. İdeal hal — ad məhz sizin VPS-ə yönəlib; ən pis variant — yad iri sayt.

Yoxlamanı təkrarlamağa dəyər: saytlar sertifikatları və ünvanları dəyişir, bu gün inandırıcı görünən domen bir aydan sonra açılmaya bilər.

Nümunə: domenin addım-addım hazırlanması

mtg-nin BEST_PRACTICES sənədində tövsiyə olunan sxemin mahiyyəti provayderin yoxlaya biləcəyi hər şeyin bir-birinə uyğun gəlməsidir:

  1. Öz domeninizi qeydiyyatdan keçirin və A-qeydi ilə VPS-in IP ünvanına yönəldin. İndi bu ad üçün DNS cavabı sizin serveri göstərir.
  2. Proksinin qarşısına inandırıcı sayt qoyun: bir neçə adi HTML səhifəsi və Let's Encrypt və ya başqa sertifikat mərkəzindən sertifikat.
  3. Bu domen üçün secret yaradın: mtg generate-secret --hex your-domain.example.
  4. Proksini 443 portunda işə salın. Adi ziyarətçilər və yoxlayanlar saytı, linki olan klientlər isə proksini görəcək.
  5. Qoşulmanı telefondan ev Wi‑Fi-ı ilə yox, mobil internetlə yoxlayın.

Bu, yad məşhur domeni götürməkdən çətindir, amma şübhənin əsas səbəbi aradan qalxır: SNI-dəki ad, DNS cavabı və səhifənin məzmunu üst-üstə düşür.

İmplementasiyalarda maskalanma ayarları

Proqramlar iki məsələni müxtəlif cür həll edir: yadlara necə cavab vermək və necə inandırıcı görünmək.

  • mtg. Yad sorğular örtük saytına yönləndirilir (domain fronting). Əlavə olaraq «ikiz» rejimi var — [defense.doppelganger] bölməsi, o, həqiqi saytın taymingini təkrarlayır. README-yə görə, ikiz üçün ünvanları maskalandığınız eyni domendən götürmək lazımdır.
  • telemt. [censorship] bölməsində tls_domain, mask = true (tanınmayan bağlantıları real veb-serverə ötürmək) və tls_emulation = true verilir. Klient köhnə domenlə gələrsə, davranışı unknown_sni_action parametri müəyyən edir.

Klientin izi

İstənilən klientin — brauzerin və ya Telegram-ın — ClientHello-sunda parametrlər dəsti var: dəstəklənən şifrələrin siyahısı, genişlənmələr və onların ardıcıllığı. Birlikdə onlar «iz» yaradır: müxtəlif proqramlarda o, müxtəlif olur. Telegram-ın göndərdiyi ClientHello brauzerinkindən nəzərəçarpacaq dərəcədə fərqlənirsə, filtr bunu əlamət kimi istifadə edə bilər.

Ona görə telemt FAQ-ına görə, maskalanmanın davamlılığı klientin versiyasından asılıdır, tərtibatçılar isə Telegram-ı yeniləməyi məsləhət görür: yeni versiyalarda iz düzəldilib. Praktikada bu o deməkdir ki, eyni link sizdə işləyə, tətbiqin köhnə versiyası olan tanışda isə işləməyə bilər.

Tipik səhvlər

  • Secret ee olmadan daxil edilib və ya kəsilib. Klient başqa rejimdə qoşulur və ya qoşulmur. Secret tam daxil edilir.
  • Domen serverə uyğun gəlmir. Ən çox rast gəlinən hal — yad ünvanda məşhur brend.
  • Şəbəkədə bloklanmış domen. Proksi sanki işləyir, amma bağlantı tez-tez qopur.
  • Linkləri yenidən buraxmadan domenin dəyişdirilməsi. Köhnə linklər xəta verir. telemt-də belə klientlər üçün mask və reject_handshake qiymətləri olan unknown_sni_action ayarı var.
  • Qeyri-standart port. 443 portu HTTPS üçün daha təbii görünür.
  • Köhnəlmiş klient. telemt FAQ-ına görə, Telegram-ın yeni versiyalarında TLS izi düzəldilib, ona görə klienti yeniləmək lazımdır.

Rejim harada işləməyi dayandırır

FakeTLS proksini görünməz etmir. Telemt öz FAQ-ında onun işləmədiyi halları açıq sadalayır:

  • hədəf hostla IP əlaqəsi yoxdur;
  • TCP, TLS, port və ya SNI bloklanıb;
  • yüksək entropiyalı trafikin filtrasiyası qoşulub;
  • DPI FakeTLS-i SNI, ALPN və entropiyaya görə tanıyır.

Ayrıca: Telegram hesabı «ev» data mərkəzinə bağlıdır, ona görə proksinin Telegram infrastrukturunun bir hissəsinə yox, hamısına çıxışı olmalıdır.

Buna görə FakeTLS «həmişəlik rejim» deyil, müdafiənin qatlarından biridir. Ünvana görə bloklanmaya qarşı gücsüzdür, ağ siyahılı mobil internetdə isə proksi ümumiyyətlə əlçatmazdır.

FakeTLS nəyi gizlətmir

Maskalanma bağlantının formasına aiddir, şəbəkədə olmağınıza yox. Provayder əvvəlki kimi görür ki, konkret serverin IP ünvanına qoşulursunuz və nə qədər məlumat ötürürsünüz. Proksinin özü, hər vasitəçi kimi, sizin IP ünvanınızı görür. Yazışmanın məzmunu rejimdən asılı olmayaraq Telegram açarı ilə qorunur — amma FakeTLS rejimindən də asılı deyil. Ona görə proksini «görünməz» adlandırmaq olmaz: o, sadəcə forma üzrə tanınması çətindir.

Rejimin qoşulduğunu necə yoxlamaq

  • Secret-ə baxın: o, ee ilə başlamalı və 32 simvoldan nəzərəçarpacaq dərəcədə uzun olmalıdır.
  • Quyruğu xxd -r -p əmri ilə açın və bunun lazım olan domen olduğuna əmin olun.
  • mtg olan serverdə mtg doctor /path/to/config.toml icra edin: əmr konfiqurasiyanı və bağlantını yoxlayır.
  • telemt olan serverdə örtük saytı ilə TLS əl sıxmasını yoxlayın: curl -v -I --resolve domain:443:IP https://domain/ sertifikatlar zəncirini və qüvvədə olma müddətini göstərəcək.

ee olan proksi işləməyi dayandırıbsa

Rejim qoşulub, secret düzgündür, proksi isə qoşulmur? Səbəbləri sadədən mürəkkəbə doğru yoxlayın:

  1. Secret-dəki domenin hələ də açıldığını və onun sertifikatının qüvvədə olduğunu yoxlayın.
  2. Klientin yeniləndiyinə əmin olun: Telegram-ın yeni versiyalarında TLS izi düzəldilib.
  3. Proksini başqa şəbəkədə yoxlayın: orada işləyirsə, ünvan bloklanmayıb, problem konkret şəbəkədədir.
  4. Heç yerdə işləmirsə, serverin ünvanı çox güman ki, bağlanıb: yalnız IP ünvanın dəyişdirilməsi və ya yeni proksi kömək edər.
  5. Öz serverinizdə jurnala baxın: mtg-də — mtg doctor, telemt-də — xidmətin vəziyyəti və köhnə linklər üçün «Unknown TLS SNI» xətası.

FakeTLS və digər rejimlər

RejimPrefiksNəyi gizlədirZəif yeri
AdiyoxdurAxının məzmunuBağlantının başlanğıcı və paketlərin ritmi tanınır
PaddingddPaket ölçülərini qismənBağlantının başlanğıcı əvvəlki kimidir
FakeTLSeeProtokolu: TLS kimi görünürDomen, ünvan, port, klientin izi

Telegram-ın proksi sahibləri üçün sənədində imkan olduqda həm padding, həm də TLS emulation qoşmağı məsləhət görürlər: rejimlər bir-birini tamamlayır.

Tez-tez verilən suallar

Proksi secret-indəki ee nə deməkdir?

ee prefiksi FakeTLS rejimini qoşur. Ondan sonra 16 bayt açar (32 onaltılıq simvol) və hex formatında maskalanma domeni gəlir. Klient bağlantını bu domenlə adi TLS mübadiləsi kimi başlayır.

FakeTLS VPN-dən nə ilə fərqlənir?

FakeTLS — MTProto proksinin rejimidir: proksi ilə bağlantını HTTPS kimi maskalayır, amma yalnız Telegram üçün işləyir. VPN cihazın bütün trafikini öz üzərindən buraxır və öz protokollarından istifadə edir.

FakeTLS proksi üçün həqiqi sayt lazımdırmı?

Proksinin işləməsi üçün yox, əl sıxmaya özü cavab verir. Amma mtg müəllifləri proksinin qarşısına öz domeni və sertifikatı olan inandırıcı sayt qoymağı məsləhət görür: onda SNI-dəki ad, DNS və serverin cavabı üst-üstə düşür, yoxlama uyğunsuzluq tapmır.

Maskalanma domenini dəyişsək nə olacaq?

Əvvəl verilmiş bütün linklər işləməyəcək, çünki domen secret-ə yazılıb. telemt FAQ-ına görə, köhnə linki olan klientlər «Unknown TLS SNI» xətası alır; linkləri yenidən buraxmaq lazım olacaq.

Mənbələr

  1. Telegram: proksi (padding və TLS emulation üzrə tövsiyələr)
  2. mtg: README — secret-lər, domain fronting, domenin seçimi
  3. mtg: BEST_PRACTICES
  4. telemt: README
  5. telemt: FAQ
  6. RFC 6066, bölmə 3: Server Name Indication
  7. Telegram: MTProto transports