Sözlük

obfuscated2

MTProto transportynyň obfuskasiýasy

Akymyň tötänleýin baýtlar ýaly görünýän, emma birikmäniň başy we paketleriň yrgyldysy tanalýan bolup galýan režimi.

Näme üçin gerek

Obfuskasiýasyz MTProto birikmesi gysga sözbaşy bilen başlaýar, ol boýunça ony aňsat tanamak bolýar. Obfuskasiýa transportyň üstünden tutuş akymy şifrleýär, şonuň üçin protokolyň açyk alamatlary galmaýar. Telegram resminamasynda bu mehanizm «transport obfuscation» diýip atlandyrylýar, proksi hakdaky gürrüňlerde bolsa ony adatça obfuscated2 diýýärler. Şol resminama görä, ol WebSocket transporty üçin hökmany we provaýderleriň petiklemelerini aýlanyp geçmek üçin ulanylýar.

Başlangyç paket nähili gurlan

Kliýent tötänleýin 64 baýt iberýär. Olaryň beýleki protokollaryň sözbaşylary bilen gabat gelmezligi üçin çäklendirmeler bar: birinji baýt 0xef bolup bilmez, ilkinji dört baýt 0xdddddddd, 0xeeeeeeee ýa-da HTTP soragynyň başy (POST, GET, HEAD) bolup bilmez. 56-njy süýşmede transportyň ID-si ýerleşýär, proksi üçin 60-njy süýşmede bolsa maglumat merkeziniň belgisi.

Şol 64 baýtdan şifrleme açarlary çykarylýar: 8–40 baýtlar — açar, 40–56 baýtlar — başlangyç wektor, ters ugur üçin bolsa agdarylan paketden şol meýdanlary alýarlar. Soňra akymy CTR režiminde AES-256 algoritmi bilen şifrleýärler; şifriň ýagdaýy birikmäniň ähli wagtyna saklanýar.

Secret-iň roly

Proksi üçin her açary secret bilen bilelikde heşleýärler: SHA256(açar + secret). Şonuň üçin proksi diňe secret-i bilýänleri kabul edýär, secret-iň özi bolsa tor boýunça iberilmeýär.

Näme gizleýär, näme gizlemeýär

Obfuskasiýa akymyň mazmunyny we ilkinji baýtlardaky protokol alamatlaryny ýapýar. Galan zatlar görünýän bolup galýar:

  • proksi serweriniň IP-salgysy we porty;
  • traffigiň göwrümi, paketleriň ölçegleri we yrgyldysy;
  • şu salga uzak wagtlap birikmäniň gurlandygynyň özi.

Beýleki režimler bilen ýanaşyk

Üç režim tanamagyň dürli usullaryna jogap berýär we biri-birini dolduryp durýar:

  • obfuscated2 — tutuş akymy şifrleýär, protokoly ilkinji baýtlarda gizleýär;
  • dd (padding) — ölçegler proksini aýan etmezligi üçin paketlere 0-dan 15-e çenli tötänleýin baýt goşýar;
  • ee (FakeTLS) — birikmäni hakyky saýt bilen TLS alyş-çalşy ýaly başlaýar.

Gowşak ýeri

Obfuskasiýa mazmuny gizleýär, ýöne birikmäniň şekilini däl. Birikmäniň başy elmydama 64 «tötänleýin» baýt, paketleriň ölçegleri we yrgyldysy bolsa öňküsi ýaly galýar. Şonuň üçin DPI ulgamlary şeýle traffigi statistika boýunça tapawutlandyryp bilýärler, proksini ösdürmekde bolsa padding (dd) we FakeTLS (ee) peýda boldy.

Çeşmeler

  1. Telegram: MTProto transports