MTProto
Mobile Transport Protocol՝ Telegram-ի արձանագրությունը
Telegram-ի սեփական արձանագրությունը հավելվածների և սերվերների կապի համար. հաղորդագրությունների գաղտնագրում, սեսիաներ և տրանսպորտ։
Ինչ է դա
MTProto-ն արձանագրություն է, որով Telegram-ի հավելվածները շփվում են մեսենջերի սերվերների հետ։ Telegram-ի փաստաթղթերը այն նկարագրում են որպես շարժական սարքերի հավելվածներից սերվերային API-ին հասանելիության արձանագրություն։ Ժամանակակից հաճախորդներն օգտագործում են 2.0 տարբերակը։
Ինչից է կազմված
Արձանագրությունն ունի երեք մակարդակ՝
- վերին՝ API հարցումներ և պատասխաններ երկուական տեսքով;
- միջին՝ յուրաքանչյուր հաղորդագրության գաղտնագրում թույլտվության բանալիով (AES-256 IGE ռեժիմում);
- ստորին՝ տրանսպորտ. ինչպես են գաղտնագրված տվյալները ցանցով անցնում TCP, WebSocket կամ HTTP-ի վրայով։
MTProto և պրոքսի
Telegram-ի պրոքսին աշխատում է ստորին մակարդակում. այն ընդունում է տրանսպորտային հոսքը և փոխանցում սերվերներին՝ առանց հաղորդագրությունների բանալու։ Ուստի պրոքսիները կոչվում են MTProto պրոքսի, իսկ պաշտոնական իրականացումը՝ MTProxy։ Տրանսպորտի քողարկումն ապահովում են obfuscated2 և FakeTLS ռեժիմները։
Տարբերակներ
MTProto 2.0-ում հաղորդագրության բանալին հաշվարկվում է SHA-256-ով՝ թույլտվության բանալու հատվածով, իսկ պատահական լրացումը մեծացել է մինչև 12–1024 բայթ։ Առաջին տարբերակն օգտագործում էր SHA-1 և 0–15 բայթ լրացում և համարվում է հնացած։