Esaslar

dd we ee secret-leri: proksi salgysyny nädip okamaly

Serwer, port we secret: dd we ee prefiksler näme aňladýar we birikmezden öň nämäni barlap bolýar.

Mazmun 18 bölüm

Proksi salgysyna adatça okamazdan ýöne basýarlar. Emma ondaky üç parametr — birikmezden öň barlap bolýan ýeke-täk zat, secret bolsa işleýiş režimini, köplenç hem proksiniň näme üçin birigenokdygyny görkezýär. Salgyny bölek-bölek derňäliň.

Parametrler boýunça salgy

Salgynyň formatyny Telegram resminamasy kesgitleýär. Iki deň ýazgy bar: tg://proxy programmada göni açylýar, t.me/proxy bolsa brauzerde. t.me hostuny telegram.me ýa-da telegram.dog görnüşinde hem ýazyp bolýar, #-dan soňky bölek bolsa äsgerilmeýär.

tg://proxy?server=proxy.example.com&port=443&secret=ee473ce5d4958eb5f968c87680a23854a0676f6f676c652e636f6d
ParametrHökmanyBu näme
serverhawaserweriň salgysy ýa-da IP salgysy
porthawaserweriň porty
secrethawaproksiniň secret-i

Parametrler & belgisi bilen aýrylýar. Salgyny sahypadan göçürseňiz, onuň bilen artykmaç simwollaryň göçürilmändigine göz ýetiriň: HTML-de ampersand & görnüşinde ýazylýar we şeýle salgy açylmaz.

Serwer we port

Serwer — domen ady ýa-da IP salgy. Domen amatlyrak: serweriň salgysyny salgyny täzeden çykarman çalşyp bolýar. Port köplenç 443 — HTTPS arkaly işleýän adaty saýtlardaky ýaly: onda traffik tebigyrak görünýär, adaty däl portlarda bolsa birikmeler süzgüçlere köplenç düşýär.[1]

[1] ee režimi üçin bu aýratyn möhüm: ol HTTPS-i meňzedýär, HTTPS bolsa 443 portda ýaşaýar.

Serwer we port barada artyk aýdara zat ýok: salgynyň jogap berýändigini diňe birigip barlap bolýar. Salgyda gizlenen esasy zat — secret.

Secret

— onaltylyk setir. Onuň esasynda hemişe 16 tötänleýin baýt, ýagny 32 simwol bar. Soňra üç görnüş mümkin:

GörnüşUzynlykGurluşRežim
Prefiksiz32 simwolaçaradaty (obfuscated2)
dd34 simwoldd + açarpaketlere tötänleýin goşundy
ee42 simwoldanee + açar + hex-de domenFakeTLS

Telegram resminamasynda format hut şeýle beýan edilýär: secret — 16 baýt, adatça hex görnüşinde; 17 baýtly görnüş hem bar, onda birinji baýt transporty saýlaýar, köplenç 0xdd — padded intermediate.

dd näme aňladýar

Resmi MTProxy-niň README-sinde ýazylýar: käbir provaýderler MTProxy-ni paketleriň ölçegleri boýunça kesgitleýär, şonuň üçin şeýle režime tötänleýin goşundy goşuldy. Ony kliýent tarapynda secret-däki dd prefiksi bilen açýarlar (cafe…babe ddcafe…babe bolýar), goşundy bolsa ony soran kliýentler üçin ulanylýar.

Protokol derejesinde bu padded intermediate transport: paketiň öňünde 4 baýtly uzynlyk gelýär, umumy uzynlyk bolsa 0-dan 15-e çenli tötänleýin baýty öz içine alýar. Ölçegler hemişelik bolmaýar, ýöne birikmäniň başy öňküligine galýar.

ee näme aňladýar

ee prefiksi FakeTLS-i açýar. dd-den tapawutlylykda, secret-de açardan soň domen hem gelýär — kliýentiň meýdanynda görkezjek baýtlary. Şonuň üçin ee secret hemişe uzynrak. Domen hex-den okalýar:

echo 676f6f676c652e636f6d | xxd -r -p

Proksiniň ömrüniň şu domene näme üçin bagly bolýandygy «FakeTLS: proksi saýt bolup nähili görünýär» makalasynda.

mtg üçin secret base64 formatynda hem, ee prefiksli hex-de hem bolup biler: mtg generate-secret --hex google.com buýrugy ikinji görnüşi berýär, --hex açarsyz bolsa — birinjisini. Sizde base64 bolsa, ony kesmäň we el bilen täzeden ýygnamaň, taýýar salgyny mtg access buýrugy bilen alyň.

Praktikum: secret-i simwollar boýunça derňeýäris

mtg resminamasyndan mysal alalyň — google.com üçin secret. Onda 54 simwol bar, olary jedwel boýunça hasaplamak amatly:

SimwollarUzynlykBu näme
1–22ee — FakeTLS režimi
3–3432açar — 16 tötänleýin baýt
35–5420676f6f676c652e636f6d — baýtlar görnüşinde ýazylan google.com sözi: her harp üçin iki simwol

Bu ýerden düzgün: ee-secret-iň uzynlygy 2 + 32 + domen simwollarynyň sanynyň iki essesine deň. On simwollyk domenli secret üçin 54, on iki simwollyk üçin 58 bolar. 42 simwoldan gysga ee-secret bolmaýar: Telegram Desktop ony 21 baýtdan kabul edýär, ýagny domene azyndan dört baýt düşmeli. Uzynlyk gabat gelmese, secret kesilen ýa-da ýalňyşlyk bilen ýygnalan.

Şol bir açar dd režiminde dd473ce5d4958eb5f968c87680a23854a0 ýaly görünerdi — domensiz 34 simwol, adaty režimde bolsa — açaryň ýönekeý 32 simwoly.

Secret-i özüňiz nädip döretmeli

Açar — 16 tötänleýin baýt. Domensiz režimler üçin bir buýruk ýeterlik; ikisi hem taslamalaryň resminamalaryndan alyndy:

openssl rand -hex 16 head -c 16 /dev/urandom | xxd -ps

dd režimi üçin netijä dd prefiksi goşulýar. FakeTLS üçin iň ýönekeýi — programma ynanmak: mtg generate-secret --hex siziň-domen.example prefiksli we domenli taýýar secret-i dessine berýär. Ony el bilen ýygnamaly bolsa, prefiksi, açary we hex-de domeni birleşdirmek ýeterlik:

KEY=$(openssl rand -hex 16) DOMAIN=siziň-domen.example printf 'ee%s%s\n' "$KEY" "$(printf '%s' "$DOMAIN" | xxd -p | tr -d '\n')"

Secret-däki domen serwerde sazlanan bilen gabat gelmeli: telemt-de bu tls_domain parametri, mtg-de domen secret-iň özünden alynýar.

Kliýent secret bilen näme edýär

Secret tor boýunça iberilmeýär: ol açarlary çykarmakda gatnaşýar. Telegram resminamasyna görä, obfuskasiýada akymy şifrlemek açary başlangyç paketdäki açaryň we secret-iň SHA256-sy hökmünde hasaplanýar. Bir secret-i bilýän kliýent we proksi birmeňzeş açarlary alýar; ýat kliýentiň açarlary başga bolar we proksi onuň birikmesini kabul etmez.

Secret 17 baýtly bolsa (dd ýaly prefiksli), birinji baýt transporty kesgitleýär we açarlary çykarmakda gatnaşmaýar. Artykmaç baýty gören kliýentler adaty ýagdaýda padded intermediate — tötänleýin goşundyly režimi ulanýar.

Bir secret ýa-da birnäçe

Serwer birnäçe secret kabul edip biler: resmi MTProxy-de -S açaryny birnäçe gezek görkezip bolýar. Bu dürli adamlara dürli salgylary bermek we olary aýratynlykda yzyna almak üçin gerek. mtg-de secret ýeke — awtorlar muny düşünilen çözgüt hasaplaýar; telemt-de secret-ler ulanyjylar üçin [access.users] bölüminde berilýär.

Salgynyň üç mysaly

Şol bir «serwer we port» jübüti dürli secret bilen berlip bilner. Üç görnüş şeýle görünýär (salgy we açar şertli):

tg://proxy?server=proxy.example.com&port=443&secret=473ce5d4958eb5f968c87680a23854a0 tg://proxy?server=proxy.example.com&port=443&secret=dd473ce5d4958eb5f968c87680a23854a0 tg://proxy?server=proxy.example.com&port=443&secret=ee473ce5d4958eb5f968c87680a23854a0676f6f676c652e636f6d

Birinji salgy adaty režimi açýar, ikinjisi — tötänleýin goşundyly režimi, üçünjisi — google.com domenli FakeTLS-i. Kliýent üçin tapawut diňe secret-de: serwer we port şol bir. Hut şonuň üçin secret — okamaly ilkinji zat.

Domen we secret bilelikde üýtgeýär

ee-secret-de domen açaryň bir bölegi, serwerde bolsa domen aýratyn berilýär: telemt-de bu tls_domain parametri, mtg-de domen secret-den alynýar. Biri üýtgedilip, beýlekisi üýtgedilmese, kliýentler birigip bilmez: telemt FAQ-na görä, domen çalşylanda köne salgylar «Unknown TLS SNI» ýalňyşlygyny berýär. Şonuň üçin olary jübüt görnüşinde çalşyň we salgylary täzeden çykaryň.

Salgyny nädip bermeli

  • ynanýan adamlaryňyza şahsy habarda, köpçülik kanallarynda we çatlarda däl;
  • mümkin bolsa — her kime aýratyn secret: şeýle secret-i beýlekilere degmän yzyna almak bolýar (resmi MTProxy we telemt goldaýar);
  • salgy eýýäm ýaýran bolsa, ony «ýitirerler» diýip garaşman, secret-i çalşyň;
  • secret-i «proksi barlaýan» daşarky hyzmatlara ibermäň: siz parol berýärsiňiz.

Birikmezden öň nämäni barlamaly

  1. Salgy tg://proxy ýa-da t.me/proxy bilen başlaýar we üç parametriň ählisini öz içine alýar.
  2. Secret ee bilen başlaýar — ýogsam režim adaty ýa-da dd.
  3. Secret-iň uzynlygy ýokardaky jedwele gabat gelýär: 32, 34 ýa-da azyndan 42 simwol.
  4. ee-secret-iň ahyrynda domen okalýar we bu adaty saýt, tötänleýin simwollar ýygyndysy däl.
  5. Port — 443 ýa-da HTTPS üçin adaty başga port.
  6. Boşluklar, setir geçirmeler we & ýaly artykmaç simwollar ýok.

Köp duşýan ýalňyşlyklar

  • Secret kesilen. Setir geçirmeden ýa-da messenjerde gysgaldylmagy sebäpli domenli guýruk ýitýär; Telegram başga režimde birigýär ýa-da birigenok.
  • Secret SOCKS5 paroly meýdanyna ýerleşdirilen. MTProto üçin MTProto görnüşini saýlap, secret-i degişli meýdana girizmeli.
  • Serwer bilen port garyşdyrylan. Aýratyn el bilen girizilende.
  • Salgy el bilen üýtgedilen. Secret-däki bir üýtgedilen simwol başga açar berýär — proksi kliýenti goýbermez.

Mysal: secret-däki ýalňyşlygy nädip tapmaly

Aýdalyň, size salgy iberdiler, onda uzynlygy 48 simwol bolan, ee bilen başlaýan secret bar. 2 + 32 + domen simwollarynyň sanynyň iki essesi formulasy boýunça domene 14 simwol düşýär, ýagny ýedi harply at. Guýrugy xxd -r -p buýrugy bilen çözüň: okalýan saýt ady çykýan bolsa, secret ýerinde. Çykyşda zir-zibil ýa-da garaşylandan gysga at bolsa, secret ýolda kesilen — salgyny täzeden soraň.

Şol bir usul başga adamlaryň salgylaryny barlamak üçin hem işleýär: ol ýarym minut alýar we birikmegi talap etmeýär.

Secret — parol

Secret-i bilýän proksä birigýär we salgyny beýlekilere berip biler. mtg README-sinde secret proksiniň açary we kliýentiň paroly diýlip atlandyrylýar. Şonuň üçin şahsy salgyny açyk çatlarda çap etmeýärler: ol näçe giň ýaýrasa, serwere ýük şonça ýokary, ony petikleme sanawlaryna goşmaklyk şonça çalt bolýar.

Köp soralýan soraglar

Proksi secret-iniň başyndaky dd näme aňladýar?

dd prefiksi tötänleýin goşundyly (padding) režimi açýar: paketlere 0-dan 15-e çenli tötänleýin baýt goşulýar, şonuň üçin proksini paketleriň ölçegleri boýunça tanamak kynrak bolýar. Prefiksden soňky açar — şol bir 16 baýt.

ee secret-i dd-den nädip tapawutlandyrmaly?

Ilkinji iki simwol we uzynlyk boýunça. dd secret — dd we açaryň 32 simwoly, jemi 34. ee secret uzynrak: açardan soň onaltylyk ýazgyda maskirleme domeni gelýär.

Secret-i çap etmek bolýarmy?

Ýok, gowusy. Secret parol ýaly işleýär: ony bilýän proksä birigýär we salgyny başga birine berip biler. Salgy näçe giň ýaýrasa, ony petikleme sanawlaryna şonça çalt goşýarlar.

ee-secret-däki domeni nädip bilmeli?

Secret-iň ilkinji 34 simwolyndan soňky bölegini (prefiksiň iki simwoly we açaryň 32 simwoly) alyp, ony onaltylyk ýazgydan tekste öwrüň, meselem, echo GUÝRUK | xxd -r -p buýrugy bilen. Netije proksiniň maskirlenýän saýtynyň ady bolar.

t.me/proxy tg://proxy-dan nämesi bilen tapawutlanýar?

Parametrler birmeňzeş. tg://proxy salgysy programmada göni açylýar, t.me/proxy bolsa brauzerde hem işleýär. Telegram resminamasyna görä, t.me-ni telegram.me ýa-da telegram.dog görnüşinde hem ýazyp bolýar.

Çeşmeler

  1. Telegram: proksi salgylary (proxy links)
  2. Telegram: MTProto transports — secret formaty
  3. MTProxy (GitHub): README, Random padding
  4. mtg: README — secret döretmek
  5. telemt: README — classic, secure, tls režimleri
  6. Telegram Desktop: mtproto_proxy_data.cpp — secret-iň rugsat berlen uzynlygy