obfuscated2
MTProto транспортун обфускациялоо
Агым кокус байттардай көрүнгөн режим, бирок туташуунун башталышы жана пакеттердин ритми таанылып турат.
Эмне үчүн керек
Обфускациясыз MTProto туташуусу кыска аталыштан башталат, ал боюнча аны оңой таанууга болот. Обфускация транспорттун үстүнөн бүт агымды шифрлейт, ошондуктан протоколдун ачык белгилери калбайт. Telegram документациясында бул механизм «transport obfuscation» деп аталат, ал эми прокси тууралуу сүйлөшүүдө аны адатта obfuscated2 дешет. Ошол эле документация боюнча, ал WebSocket транспорту үчүн милдеттүү жана провайдерлердин бөгөттөөлөрүн айланып өтүү үчүн колдонулат.
Баштапкы пакет кандай түзүлгөн
Клиент кокус 64 байт жөнөтөт. Алар башка протоколдордун аталыштарына дал келип калбашы үчүн чектөөлөр бар: биринчи байт 0xef боло албайт, алгачкы төрт байт 0xdddddddd, 0xeeeeeeee же HTTP суроосунун башталышы (POST, GET, HEAD) боло албайт. 56-орундан транспорттун идентификатору жайгашкан, ал эми прокси үчүн 60-орундан дата-борбордун номери турат.
Шифрлөө ачкычтары ушул эле 64 байттан алынат: 8–40-байттар — ачкыч, 40–56-байттар — инициализация вектору, ал эми тескери багыт үчүн ошол эле талааларды оодарылган пакеттен алышат. Андан ары агым CTR режиминде AES-256 алгоритми менен шифрленет; шифрдин абалы туташуунун бүт убагына сакталат.
Секреттин ролу
Прокси үчүн ар бир ачкыч секрет менен кошо дагы хештелет: SHA256(ачкыч + секрет). Ошондуктан прокси секретти билгендерди гана кабыл алат, ал эми секреттин өзү тармак аркылуу берилбейт.
Эмнени жашырат, эмнени жашырбайт
Обфускация агымдын мазмунун жана биринчи байттардагы протокол белгилерин жабат. Калганы көрүнүп турат:
- прокси серверинин IP-дареги жана порту;
- трафиктин көлөмү, пакеттердин өлчөмдөрү жана ритми;
- ушул дарек менен узак туташуу орнотулганынын өзү.
Башка режимдер менен катар
Үч режим таанып билүүнүн ар түрдүү жолдоруна жооп берет жана бири-бирин толуктайт:
- obfuscated2 — бүт агымды шифрлейт, протоколду биринчи байттарда жашырат;
- dd (padding) — пакеттерге 0дөн 15ке чейин кокус байт кошот, ошондо өлчөмдөр проксини аныктап албайт;
- ee (FakeTLS) — туташууну чыныгы сайт менен TLS алмашуусундай баштайт.
Алсыз жери
Обфускация мазмунду жашырат, бирок туташуунун формасын жашырбайт. Туташуунун башталышы дайыма 64 «кокус» байт, ал эми пакеттердин өлчөмү менен ритми мурдагыдай калат. Ошондуктан DPI системалары мындай трафикти статистика боюнча айырмалай алат, ушундан улам прокси иштеп чыгууда padding (dd) жана FakeTLS (ee) пайда болгон.