obfuscated2
Обфускатсияи нақлиёти MTProto
Режиме, ки дар он ҷараён мисли байтҳои тасодуфӣ менамояд, аммо оғози пайвастшавӣ ва ритми бастаҳо шинохташаванда мемонад.
Барои чӣ лозим аст
Бе обфускатсия пайвастшавии MTProto бо сарлавҳаи кӯтоҳ оғоз мешавад, ки аз рӯи он онро осон шинохтан мумкин аст. Обфускатсия тамоми ҷараёнро болои нақлиёт рамзгузорӣ мекунад, бинобар ин аломатҳои кушодаи протокол намемонанд. Дар ҳуҷҷатҳои Telegram ин механизм «transport obfuscation» номида шудааст, ва дар суҳбатҳо дар бораи прокси онро одатан obfuscated2 мегӯянд. Тибқи ҳамин ҳуҷҷатҳо, он барои нақлиёти WebSocket ҳатмист ва барои гузаштан аз масдудкунии провайдерҳо истифода мешавад.
Баста-и аввалин чӣ тавр сохта шудааст
Муштарӣ 64 байти тасодуфӣ мефиристад. Барои онҳо маҳдудиятҳо ҳастанд, то бо сарлавҳаҳои протоколҳои дигар мувофиқат накунанд: байти аввал наметавонад 0xef бошад, чор байти аввал наметавонанд 0xdddddddd, 0xeeeeeeee ё оғози дархости HTTP (POST, GET, HEAD) бошанд. Дар офсети 56 шиносандаи нақлиёт ҷойгир аст, ва дар прокси дар офсети 60 — рақами маркази додаҳо.
Аз ҳамин 64 байт калидҳои рамзгузорӣ ҳосил мекунанд: байтҳои 8–40 — калид, байтҳои 40–56 — вектори ибтидоӣ, ва барои самти баръакс ҳамин майдонҳоро аз баста-и баргардонидашуда мегиранд. Баъд ҷараёнро бо алгоритми AES-256 дар режими CTR рамзгузорӣ мекунанд; ҳолати рамз барои тамоми вақти пайвастшавӣ нигоҳ дошта мешавад.
Нақши махфӣ
Барои прокси ҳар калид иловатан якҷоя бо махфӣ хеш карда мешавад: SHA256(калид + махфӣ). Бинобар ин прокси танҳо касонеро қабул мекунад, ки махфиро медонанд, ва худи махфӣ тавассути шабака фиристода намешавад.
Чиро пинҳон мекунад ва чиро не
Обфускатсия мундариҷаи ҷараён ва аломатҳои протоколро дар байтҳои аввал мепӯшонад. Боқимонда намоён мемонад:
- суроғаи IP ва порти сервери прокси;
- ҳаҷми трафик, андозаҳо ва ритми бастаҳо;
- худи далели он, ки бо ин суроға пайвастшавии дароз барқарор шудааст.
Дар паҳлӯи режимҳои дигар
Се режим ба усулҳои гуногуни шинохтан ҷавоб медиҳанд ва ҳамдигарро пурра мекунанд:
- obfuscated2 — тамоми ҷараёнро рамзгузорӣ мекунад, протоколро дар байтҳои аввал пинҳон мекунад;
- dd (padding) — ба бастаҳо аз 0 то 15 байти тасодуфӣ илова мекунад, то андозаҳо прокси-ро фош накунанд;
- ee (FakeTLS) — пайвастшавиро мисли мубодилаи TLS бо сомонаи воқеӣ оғоз мекунад.
Нуқтаи заиф
Обфускатсия мундариҷаро пинҳон мекунад, аммо шакли пайвастшавиро не. Оғози пайвастшавӣ ҳамеша 64 байти «тасодуфӣ» аст, ва андозаҳо ва ритми бастаҳо пештара мемонанд. Бинобар ин системаҳои DPI метавонанд чунин трафикро аз рӯи оморё фарқ кунанд, ва барои ҳамин дар таҳияи прокси padding (dd) ва FakeTLS (ee) пайдо шуданд.