MTProto.fyi
ГлавнаяЧто такое MTProto

Что такое MTProto

MTProto (Mobile Transport Protocol) — протокол, который Telegram использует для шифрования сообщений и обмена данными между приложением и серверами.

Зачем Telegram собственный протокол

Большинство мессенджеров работают поверх готовых протоколов вроде TLS. Telegram создал MTProto — протокол, заточенный под мобильные сети: он экономно расходует трафик, быстро восстанавливает соединение после обрыва и работает при нестабильной связи. Первая версия появилась в 2013 году, актуальная — MTProto 2.0.

Как устроено шифрование

MTProto использует симметричное шифрование AES в режиме IGE, обмен ключами по Диффи — Хеллману и хеширование SHA-256. Различают два уровня:

  • Клиент — сервер. Так работают облачные чаты: сообщения зашифрованы между устройством и серверами Telegram и хранятся на них зашифрованными.
  • Клиент — клиент (end-to-end). Это «секретные чаты»: ключ есть только у двух собеседников, сервер расшифровать переписку не может.

Транспорт: как байты доходят до сервера

Поверх шифрования MTProto описывает транспорт — то, как зашифрованный поток передаётся по сети (TCP, обфусцированный TCP, WebSocket). Транспортный уровень важен для прокси: MTProto-прокси принимает обфусцированный поток и передаёт его серверам Telegram. Режим FakeTLS дополнительно маскирует поток под HTTPS.

Версии протокола

ВерсияЧто изменилось
MTProto 1.0Первая редакция, 2013. Устарела.
MTProto 2.0Действующая версия: усиленная схема ключей сообщений на SHA-256, защита от ряда атак на целостность.

Частые вопросы

MTProto и MTProxy — это одно и то же?
Нет. MTProto — это протокол. MTProxy (MTProto-прокси) — сервер, который проксирует трафик MTProto. Прокси использует протокол, но это разные вещи.
MTProto надёжно шифрует переписку?
Облачные чаты зашифрованы между вами и серверами Telegram, секретные чаты — end-to-end. Содержимое прокси и провайдер не видят.
Какая версия MTProto используется сейчас?
Актуальна MTProto 2.0. Первая версия устарела и в новых клиентах не применяется.

Читать дальше