Международный коллектив исследователей из Швейцарской высшей технической школы Цюриха и группы информационной безопасности Лондонского университета завершил детальный анализ безопасности мессенджера Telegram и выявил несколько слабых мест в системе шифрования на протоколе MTProto 2.0.
Разработчики Telegram прокомментировали уязвимости и уже исправили их.
По оценке исследователей, наиболее значительные уязвимости связаны с возможностью злоумышленника в сети манипулировать последовательностью сообщений, поступающих от клиента на один из облачных серверов Telegram. Например, можно поменять местами ответы жертвы на разные вопросы. Эта уязвимость описана в разделах IV-B1, IV-C6 научной работы.
Вторая уязвимость представляет в основном теоретический интерес: она позволяет атакующему в сети определить, какое из двух сообщений зашифровано клиентом или сервером (приложение F).
Обмен ключами в Telegram
Однако стандартные криптографические протоколы разработаны таким образом, чтобы исключить такие атаки, в отличие от MTProto, пишут авторы.
Исследователи изучили реализацию клиентов Telegram и обнаружили, что клиенты под Android, iOS и Desktop содержат код, который в принципе позволяет злоумышленникам расшифровать сообщения (описание в секции VI). Хотя это очень трудоёмкая работа, которая требует отправки миллионов тщательно подготовленных сообщений — и замера мельчайших различий в том, сколько времени требуется для доставки ответа. К счастью, эту атаку практически невозможно осуществить на практике.
Время обработки
SessionPrivate::handleReceived
с неправильным полем msg_length
(слева), а также с правильным полем msg_length
, но с неправильным MAC-адресом (справа) на десктопном клиенте 2.4.1 под Linux, в микросекундах Четвёртая уязвимость допускает атаку MiTM на начальном этапе согласования ключей между клиентом и сервером, что позволяет злоумышленнику выдать сервер за клиента (секции V-B2, IV-C7). Эту атаку тоже довольно сложно осуществить, поскольку она требует от злоумышленника отправки миллиардов сообщений на сервер Telegram в течение нескольких минут. Однако авторы пишут, что безопасность серверов Telegram и их реализации нельзя принимать на веру.
Научная статья «Четыре уязвимости и доказательство для Telegram» принята для конференции IEEE Symposium on Security and Privacy 2022.
Telegram напоминает, что за информацию о багах готова платить от $100 до $100 000 или больше, в зависимости от серьёзности бага.
Об уязвимостях криптографы сообщили Telegram 16 апреля 2021 года и договорились сохранить информацию в секрете до 16 июля, чтобы разработчики успели всё исправить.
Исследователи пояснили, что непосредственный риск невелик, но эти уязвимости демонстрируют главное — проприетарная криптосистема Telegram не соответствует гарантиям безопасности, предоставляемым стандартными и широко распространёнными криптографическими протоколами. Они отмечают, что указанные задачи «могли бы быть решены лучше, более безопасно и более надёжно при стандартном подходе к криптографии». Например, при использовании стандартного протокола Transport Layer Security (TLS).
Как показал опыт протестов в в Гонконге, протестующие в значительной степени полагались на Telegram для координации своей деятельности, хотя мессенджер не прошёл проверку безопасности. Это и стало главной причиной, по которой учёные обратили своё внимание на коммерческую частную разработку.