MTProto — криптографический протокол, который используется в системе обмена сообщениями Telegram для шифрования сообщений и обмена данными. 1 Основная цель протокола — обеспечить приватность сообщений, сохраняя при этом высокую производительность мессенджера. 4
Протокол состоит из трёх независимых компонентов: 3
Во время подготовки пакета сверху сообщения добавляется внешний заголовок. 3 Он представляет собой 64-битный идентификатор ключа, который уникально определяет ключи авторизации пользователя и сервера. 3 Вместе они представляют 256-битный ключ и столько же разрядный вектор инициализации. 3 Последний используется для шифрования сообщения посредством алгоритма AES-256. 3
В шифруемое сообщение включаются: сессия, ID сообщения, порядковый номер сообщения, соль сервера. 3 Эти данные, в свою очередь, оказывают влияние на ключ сообщения. 3
Для большей конфиденциальности Telegram предлагает секретные чаты. 4 В них используется сквозное шифрование, при котором сообщения шифруются непосредственно на устройстве отправителя и расшифровываются только на устройстве получателя. 4 В этом случае серверы Telegram не могут получить доступ к их содержимому, так как ключи шифрования известны только двум пользователям. 4
Кроме того, MTProto поддерживает защиту от атак «человек посередине» с помощью процедуры аутентификации и верификации ключей. 4