Բառարան

FakeTLS

MTProto պրոքսիի ռեժիմ՝ secret-ում ee նախածանցով

Ռեժիմ, որում պրոքսին կապը սկսում է որպես իրական կայքի հետ սովորական TLS փոխանակում. ֆիլտրը տեսնում է կայք այցելություն։

Ինչպես ճանաչել

FakeTLS ռեժիմում պրոքսիի secret-ը սկսվում է ee-ով։ Հետո գալիս են բանալու 16 բայթը (32 տասնվեցական նիշ) և hex տեսքով գրված քողարկման տիրույթը։ Տիրույթը ֆիլտրին երևում է SNI դաշտում։ mtg-ն իր փաստաթղթերում օրինակ է բերում google.com-ի համար secret-ը՝

ee473ce5d4958eb5f968c87680a23854a0676f6f676c652e636f6d

Ինչպես է աշխատում

Հաճախորդը կապը սկսում է որպես սովորական TLS փոխանակում. ուղարկում է ClientHello՝ կայքի անունով։ Պրոքսին «իրենցին» ճանաչում է այդ հաղորդագրության ներսի տվյալներով, որոնք կարող է ստուգել միայն secret-ին տիրապետողը, և պատասխանում է որպես սերվեր։ Մյուսներին նա չի ճանաչում և, ըստ քողարկման կարգավորման, փոխանցում է իրական կայքին. օրինակ՝ mtg-ն հարցումը վերահասցեավորում է քողարկող կայքին։ Հասցեն ստուգող պատահական դիտորդի համար սա սովորական վեբ սերվեր է։

Ձեռքսեղմման քայլ առ քայլ վերլուծությունը՝ «FakeTLS. ինչպես է պրոքսին կայք ձևացնում» հոդվածում։

Ինչով է տարբերվում dd-ից և սովորական ռեժիմից

Սովորական ռեժիմը թաքցնում է հոսքի բովանդակությունը (obfuscated2), բայց կապի սկիզբը և փաթեթների ռիթմը մնում են ճանաչելի։ dd նախածանցը փաթեթներին ավելացնում է պատահական լրացում, որպեսզի չափերը չմատնեն պրոքսիին։ FakeTLS-ը փոխում է հենց կապի սկիզբը։ Telegram-ի փաստաթղթերում պրոքսիի տերերին խորհուրդ է տրվում հնարավորության դեպքում միացնել և՛ padding-ը, և՛ TLS emulation-ը։

Հաճախ խառնում են

FakeTLS-ը VPN չէ և առանձին գաղտնագրում էլ չէ. այն նմանակում է TLS փոխանակման սկիզբը, որպեսզի պրոքսիին միանալը կայք այցելության նման երևա։ Telegram-ի հաղորդագրությունները պաշտպանված են սեփական բանալիով՝ անկախ ռեժիմից, իսկ այս ռեժիմում պրոքսին շարունակում է աշխատել միայն Telegram-ի համար։

Որտեղ կա

ee ռեժիմը աջակցում են mtg-ն և telemt-ը. mtg-ում այն միակն է, telemt-ում միանում է [general.modes] բաժնի tls = true պարամետրով։ Պաշտոնական MTProxy-ի README-ում նկարագրված է միայն dd ռեժիմը, իսկ Telegram-ի փաստաթղթերը խորհուրդ են տալիս padding-ի հետ մեկտեղ միացնել «TLS emulation»-ը։

Սահմանները

FakeTLS-ը պրոքսին անտեսանելի չի դարձնում։ telemt-ի FAQ-ի համաձայն՝ DPI-ն այդպիսի տրաֆիկը կարող է ճանաչել SNI-ով, ALPN-ով և էնտրոպիայով, իսկ արդյունքը կախված է Telegram հաճախորդի տարբերակից, տիրույթից և սերվերի ճանապարհից։ Եթե արգելափակվում է IP հասցեն կամ պորտը, քողարկումը չի օգնի։

  • Secret-ը մուտքագրվում է ամբողջությամբ՝ ee-ի հետ միասին. առանց դրա հաճախորդը կմիանա սովորական ռեժիմով։
  • Խոշոր բրենդ մի վերցրեք, եթե սերվերը այդ ընկերությանը չի պատկանում. տիրույթի և հասցեի անհամապատասխանությունը հեշտ է ստուգել։
  • Սերվերում տիրույթը փոխելուց հետո հին հղումները դադարում են աշխատել։

Աղբյուրներ

  1. Telegram: պրոքսիներ
  2. mtg: նախագծի README
  3. telemt: FAQ
  4. Telegram: MTProto transports