Что такое 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, защита от ряда атак на целостность. |