FakeTLS: прокси сайт болып қалай көрінеді
Құпиясөздегі ee префиксі нені білдіреді және прокси кешке дейін шыдайды ма, жоқ па — бүркемелеу доменін таңдауға неге байланысты.
Мазмұны
FakeTLS — қосылым қарапайым HTTPS сайтына кіру сияқты көрінетін MTProto прокси режимі. Оны құпиясөздегі бір ғана ерекшелік қосады — ee префиксі. Төменде: осы префикстің артында не тұр, рукопожатие қалай өтеді, бүркемелеу доменін қалай таңдау керек және қандай қателер режимді жиі бұзады.
ee префиксі нені білдіреді
Проксидің құпиясөзі — сілтемедегі соңғы параметр. Ол ee деп басталса, прокси FakeTLS режимінде жұмыс істейді. Одан әрі 16 байт кілт (32 он алтылық таңба), ал соңында hex түрінде жазылған бүркемелеу домені тұрады.[1]
[1] «ee + кілт + домен» жазбасы mtg құжаттамасындағы мысалмен сәйкес келеді: google.com үшін құпиясөз.
mtg құжаттамасындағы мысал — google.com үшін құпиясөз:
ee473ce5d4958eb5f968c87680a23854a0676f6f676c652e636f6d
Алғашқы екі таңба — режим, келесі 32 — кілт, қалғаны — google.com сөзінің байттары. Доменді бір командамен оқуға болады:
echo 676f6f676c652e636f6d | xxd -r -p
Рукопожатие қалай өтеді
HTTPS сайтына қарапайым қосылым ClientHello хабарламасынан басталады, онда клиент керекті сайтты SNI өрісінде атайды. FakeTLS осы пішінді қайталайды, сондықтан сүзгіге алғашқы пакеттер сайтқа қарапайым кіру сияқты көрінеді.
- Клиент құпиясөздегі доменмен ClientHello жібереді. Онда прокси «өз» клиентін танитын деректер бар.
- Прокси оларды тексеріп, TLS сервері жауап беретіндей жауап береді.
- Одан әрі орнатылған қосылым арқылы TLS-ке ұқсас жазбаларға оралған қарапайым MTProto ағыны жүреді.
- Егер прокси клиенті емес, кездейсоқ келуші, сканер немесе тексеруші келсе, прокси өзін ашпайды: қосылымды нағыз сайтқа береді және оның нағыз жауабын қайтарады.
Соңғы тармақ — белсенді тексеруден қорғаныс. mtg мұны domain fronting деп атайды: сұраныс қабылданбаса, прокси жасырын сайтқа қосылып, трафикті ретрансляциялайды, сондықтан тексеруші нағыз сайттың жауабын көреді. Telemt де дәл солай істейді — mask баптауы бойынша: танылмаған қосылымдар нақты веб-серверге барады.
Сүзгі нені көреді
ТСПУ жабдығы мен DPI жүйелері үшін FakeTLS қосылымы мынадай:
- 443 портындағы сіздің сервердің IP-мекенжайына қосылым;
- SNI-да танымал сайттың атауы бар ClientHello;
- TLS серверінің жауабына ұқсас жауап;
- одан әрі — кез келген HTTPS сияқты шифрланған жазбалар ағыны.
Мұндай қосылымды нағыздан ажырату үшін сүзгі нәзік айырмашылықтарды іздеуі керек: домен мен IP-мекенжайдың сәйкессіздігі, ClientHello-дағы әдеттен тыс кеңейтулер, ағын статистикасы. Ал «танымал сайтпен HTTPS-ке ұқсайтын барлығын» жай ғана жабу қарапайым пайдаланушыларға зиян келтірмей мүмкін емес.
Бүркемелеу доменін қалай таңдау керек
Домен — режимнің әлсіз тұсы. Провайдер сәйкессіздікті байқайды ма, жоқ па — осыған байланысты. Іске асыру авторларының ұсыныстарынан мынадай тізім құралады:
- сіздің желіңізде бұғатталмаған қарапайым сайт. Домен операторда қолжетімсіз болса, оған қосылым күдікті көрінеді, ал сілтеме жұмыс істемеуі мүмкін (telemt ұсынысы);
- сервердің мекенжайымен байланысты домен. mtg README-і ескертеді: провайдерлер
google.comGoogle-ға тиесілі емес IP-ге апаратынын байқауы мүмкін. Кеңес — VPS тұрған хостингтің доменін таңдау (мысалы, DigitalOcean-дағы сервер үшінdigitalocean.com); - ең жақсысы — өз доменіңіз. mtg BEST_PRACTICES-інде доменді тіркеп, VPS-ке бағыттау ұсынылады: сонда DNS пен SNI сәйкес келеді, ал тексеру сәйкессіздік таппайды;
- өз ішкі желіңіздегі сайтты көшірмеңіз. Сол ұсыныстар бойынша, мұндай тексеру DNS арқылы оңай, ал мекенжайды бандау мүмкін;
- ірі брендті алмаңыз. Ірі сайтты DNS арқылы тексеру оңай — жауаптар сіздің серверіңізбен сәйкес келмейді.
Маңызды
Егер сенімсіз болсаңыз, mtg README-і қосымша баптауларды өзгертпеуді кеңес етеді: «сенімсіз болсаңыз, ештеңеге тимеңіз».
Таңдалған доменді қалай тексеру керек
Доменді құпиясөзге енгізбес бұрын, оны провайдер істейтіндей тексеріңіз:
- Домен сіздің желіңізден ашылады. Операторда ол қолжетімсіз болса, оған қосылым біртүрлі көрінеді:
curl -I https://домен/жауап қайтаруы керек. - Рукопожатие сіздің мекенжайға өтеді.
curl -v -I --resolve домен:443:IP https://домен/командасы сұранысты керекті IP-мекенжайға мәжбүрлеп бағыттайды да, TLS рукопожатиесін, сенім тізбегін және сертификаттың жарамдылық мерзімін көрсетеді. - Сертификат жарамды. telemt FAQ-ында мысал ретінде жарамдылық мерзімі 2026 жылғы 1 наурызда аяқталған сертификат аталған және сайттың өзектілігін бөлек тексеру керек екені айтылған.
- DNS сервер мекенжайымен сәйкес. Ең жақсысы — атау дәл сіздің VPS-ке нұсқаса; ең нашар нұсқа — бөтен ірі сайт.
Тексеруді қайталаған жөн: сайттар сертификаттар мен мекенжайларды өзгертеді, ал бүгін сенімді көрінетін домен бір айдан кейін ашылмай қалуы мүмкін.
Мысал: доменді қадамдап дайындау
mtg BEST_PRACTICES-інде ұсынылатын схема провайдер тексере алатын барлық нәрсенің бір-бірімен сәйкес болуына келіп тіреледі:
- Өз доменіңізді тіркеп, A-жазбасымен VPS-тің IP-мекенжайына бағыттаңыз. Енді осы атауға DNS жауабы сіздің серверді көрсетеді.
- Проксидің алдына сенімді сайт қойыңыз: бірнеше қарапайым HTML-бет және Let's Encrypt не басқа куәландырушы орталықтан сертификат.
- Осы доменге құпиясөз жасаңыз:
mtg generate-secret --hex сіздің-домен.example. - Проксиді 443 портында іске қосыңыз. Қарапайым келушілер мен тексерушілер сайтты көреді, ал сілтемесі бар клиенттер — проксиді.
- Қосылымды үйдегі Wi‑Fi арқылы емес, ұялы интернет арқылы телефоннан тексеріңіз.
Бұл бөтен танымал доменді алудан күрделірек, бірақ күдіктің басты себебі жоғалады: SNI-дағы атау, DNS жауабы және беттің мазмұны сәйкес келеді.
Іске асырулардағы бүркемелеу баптаулары
Бағдарламалар екі міндетті әртүрлі шешеді: бөтендерге қалай жауап беру және сенімді қалай көріну.
- mtg. Бөтен сұраныстар жасырын сайтқа бағытталады (domain fronting). Қосымша «қосарлану» режимі бар —
[defense.doppelganger]бөлімі, ол нағыз сайттың таймингтерін қайталайды. README бойынша, қосарлану үшін мекенжайларды дәл өзіңіз бүркенетін доменнен алған жөн. - telemt.
[censorship]бөліміндеtls_domain,mask = true(танылмаған қосылымдарды нақты веб-серверге беру) жәнеtls_emulation = trueберіледі. Клиент ескі доменмен келсе, мінез-құлықтыunknown_sni_actionпараметрі анықтайды.
Клиенттің ізі
Кез келген клиенттің — браузердің немесе Telegram-ның — ClientHello-сында параметрлер жиыны бар: қолдау көрсетілетін шифрлар тізімі, кеңейтулер және олардың реті. Олар бірге «із» құрайды: әртүрлі бағдарламаларда ол әртүрлі. Telegram жіберетін ClientHello браузердікінен айтарлықтай өзгеше болса, сүзгі мұны белгі ретінде пайдалана алады.
Сондықтан telemt FAQ-ына сәйкес, бүркемелеудің тұрақтылығы клиент нұсқасына байланысты, ал әзірлеушілер Telegram-ды жаңартуды кеңес етеді: жаңа нұсқаларда із түзетілген. Іс жүзінде бұл дәл сол сілтеме сізде жұмыс істеп, қолданбаның ескі нұсқасы бар таныста істемеуі мүмкін дегенді білдіреді.
Әдеттегі қателер
- Құпиясөз ee-сіз енгізілген немесе қиылған. Клиент басқа режимде қосылады немесе қосылмайды. Құпиясөзді толық енгізеді.
- Домен серверге сәйкес келмейді. Ең жиі кездесетін жағдай — бөтен мекенжайдағы танымал бренд.
- Желіде бұғатталған домен. Прокси жұмыс істеп тұрған сияқты, бірақ қосылым жиі үзіледі.
- Сілтемелерді қайта шығармай доменді ауыстыру. Ескі сілтемелер қате береді. telemt-те мұндай клиенттер үшін
unknown_sni_actionбаптауы бар, мәндері —maskжәнеreject_handshake. - Стандартты емес порт. 443 порты HTTPS үшін табиғирақ көрінеді.
- Ескірген клиент. telemt FAQ-ына сәйкес, Telegram-ның жаңа нұсқаларында TLS ізі түзетілген, сондықтан клиентті жаңартқан жөн.
Режим қай жерде жұмыс істемей қалады
FakeTLS проксиді көрінбейтін етпейді. Telemt өз FAQ-ында ол жұмыс істемейтін жағдайларды тікелей атайды:
- мақсатты хостпен IP-байланыс жоқ;
- TCP, TLS, порт немесе SNI бұғатталған;
- жоғары энтропиялы трафикті сүзу қосулы;
- DPI FakeTLS-ті SNI, ALPN және энтропия бойынша таниды.
Бөлек: Telegram аккаунты «үй» деректер орталығына байланған, сондықтан проксидің Telegram инфрақұрылымының бір бөлігіне емес, барлығына қолжетімділігі болуы керек.
Сондықтан FakeTLS — «мәңгілік режим» емес, қорғаныстың бір қабаты. Мекенжай бойынша бұғаттауға ол дәрменсіз, ал ақ тізімдері бар ұялы интернетте прокси мүлде қолжетімсіз.
FakeTLS нені жасырмайды
Бүркемелеу қосылымның пішініне қатысты, желідегі қатысуыңызға емес. Провайдер сіздің нақты сервердің IP-мекенжайына қосылып жатқаныңызды және қанша деректі жіберетініңізді бұрынғыдай көреді. Прокси өзі сіздің IP-мекенжайыңызды көреді, кез келген делдал сияқты. Хат алмасудың мазмұны режимге қарамастан Telegram кілтімен қорғалған — ол да FakeTLS режиміне тәуелді емес. Сондықтан проксиді «көрінбейді» деп айтуға болмайды: оны пішіні бойынша тану тек қиынырақ.
Режимнің қосулы екенін қалай тексеруге болады
- Құпиясөзге қараңыз: ол
eeдеп басталып, 32 таңбадан айтарлықтай ұзын болуы керек. - Соңын
xxd -r -pкомандасымен шешіп, бұл керекті домен екенін тексеріңіз. - mtg бар серверде
mtg doctor /path/to/config.tomlорындаңыз: команда конфигурацияны және байланыстылықты тексереді. - telemt бар серверде жасырын сайтпен TLS рукопожатиесін тексеріңіз:
curl -v -I --resolve домен:443:IP https://домен/сертификаттар тізбегін және жарамдылық мерзімін көрсетеді.
ee бар прокси жұмыс істеуін тоқтатса
Режим қосулы, құпиясөз дұрыс, ал прокси қосылмай ма? Себептерді қарапайымнан күрделіге қарай іріктеңіз:
- Құпиясөздегі домен әлі ашылатынын және ондағы сертификат жарамды екенін тексеріңіз.
- Клиенттің жаңартылғанына көз жеткізіңіз: Telegram-ның жаңа нұсқаларында TLS ізі түзетілген.
- Проксиді басқа желіде тексеріңіз: онда жұмыс істесе, мекенжай бұғатталмаған, мәселе нақты желіде.
- Ешқайда жұмыс істемесе, сервер мекенжайы көбіне жабылған: тек IP-мекенжайды ауыстыру немесе жаңа прокси көмектеседі.
- Өз серверіңізде журналды қараңыз: mtg-де —
mtg doctor, telemt-те — қызмет күйі және ескі сілтемелер үшін «Unknown TLS SNI» қатесі.
FakeTLS және басқа режимдер
| Режим | Префикс | Нені жасырады | Әлсіз тұсы |
|---|---|---|---|
| Қарапайым | жоқ | Ағынның мазмұнын | Қосылымның басы мен пакеттер ырғағы танылады |
| Padding | dd | Пакеттердің өлшемдерін ішінара | Қосылымның басы бұрынғыдай |
| FakeTLS | ee | Протоколды: TLS сияқты көрінеді | Домен, мекенжай, порт, клиенттің ізі |
Telegram құжаттамасында прокси иелеріне мүмкіндігінше padding пен TLS emulation-ды бірге қосуды кеңес етеді: режимдер бірін-бірі толықтырады.
Жиі қойылатын сұрақтар
Проксидің құпиясөзіндегі ee нені білдіреді?
ee префиксі FakeTLS режимін қосады. Одан кейін 16 байт кілт (32 он алтылық таңба) және hex түріндегі бүркемелеу домені келеді. Клиент қосылымды осы доменмен қарапайым TLS алмасуы ретінде бастайды.
FakeTLS VPN-нен несімен ерекшеленеді?
FakeTLS — MTProto проксиінің режимі: ол проксиге қосылымды HTTPS ретінде бүркемелейді, бірақ тек Telegram үшін жұмыс істейді. VPN бүкіл құрылғының трафигін өзі арқылы өткізеді және өз протоколдарын пайдаланады.
FakeTLS проксиіне нағыз сайт керек пе?
Прокси жұмыс істеуі үшін — жоқ, ол рукопожатиеге өзі жауап береді. Бірақ mtg авторлары проксидің алдына өз домені мен сертификаты бар сенімді сайт қоюды кеңес етеді: сонда SNI-дағы атау, DNS және сервер жауабы сәйкес келеді, ал тексеру сәйкессіздік таппайды.
Бүркемелеу доменін ауыстырсам не болады?
Бұрын берілген барлық сілтемелер жұмыс істеуін тоқтатады, себебі домен құпиясөзге тігілген. telemt FAQ-ына сәйкес, ескі сілтемесі бар клиенттер «Unknown TLS SNI» қатесін алады; сілтемелерді қайта шығару керек болады.