Обнаружена критическая уязвимость в мессенджере Telegram

Опубликовано: Понедельник, 10 августа 2015 13:55

Французский консультант в сфере безопасности программного обеспечения, криптоботаник и разработчик VLC mediaplayer Жоффруа Купрэ обнаружил уязвимость в программе-мессенджере для мобильных устройств Telegram, которую создал российский бизнесмен Павел Дуров – основатель соцсети "ВКонтакте".

По словам Жоффруа Купрэ, в Telegram содержатся странные системы шифрования, которые составляют большую угрозу для безопасности сообщений. Образно говоря, Ваша мать через плечо увидит, что Вы пишите и отправляете.

Что касается команды Telegram, то она во главе с Николаем Дуровым (родным братом основателя соцсети Вконтакте Павла Дурова) состоит из 6 ACM-чемпионов, половина из которых доктора матиматических наук.

Он взял их около двух лет назад, чтобы выкатить версию протокола MTProto. Их имена и степени может не означают так много в некоторых областях, но этот протокол является результатом длительной работы специалистов.

Они не криптографы, но у них есть некоторый багаж знаний в математике. И очень даже большой!

Итак, что такое архитектура системы? В принципе, несколько серверов по всему миру, а также маршрутизация сообщений между клиентами.

Аутентификация выполняется только между клиентом и сервером. Шифрование происходит между клиентом и сервером, но не с помощью TLS. Шифрование может произойти с конца в конец между клиентами, но нет никакой аутентификации, так что сервер может выполнять MITM атаки.

"В принципе, их модель, просто угроза "доверию сервера". То, что происходит вокруг сети может быть безопасно зашифровано, хотя мы ничего об их связи сервер-сервер не знаем, а также о своей системе хранения данных. Но все, что проходит через сервер доступно и открыто для всех. По сегодняшним меркам, это скучно, и очень небезопасно. Ваши сообщения не будут защищены от прослушки сотрудников правоохранительных органов. Хуже всего, вы не сможете обнаружить MITM между вами и вашими коллегами", – уверен Купрэ.

Протокол имеет два этапа: обмен ключами и связь.

Обмен ключами регистрирует устройство к серверу. Они написали собственный протокол для этого, потому что TLS была слишком медленной и сложной. TLS, по мнению Купрэ, нуждается в обмене ключами между клиентом и сервером. Она также должна иметь x509 сертификаты и сочетание открытого ключа алгоритму RSA или DSA, а в итоге обмен ключами по алгоритму, как Диффи-Хеллмана.

Telegram, по мнению Купрэ, значительно упростил обмен, используя RSA, AES-IgE (некоторые странные режимы, которые никто не использует).

Кроме того, они используют некоторые домашние функции для генерации ключа AES и IV от одноразовых номеров, генерируемых сервером и клиентом (server_nonce появляется в открытом виде во время связи):

Купрэ просит обратить внимание, что AES-IgE не аутентифицированный режим шифрования.

Окончательный обмен DH создает ключ авторизации, который будет храниться (вероятно, в виде обычного текста) у клиента и на сервере.

"Я действительно не понимаю, почему они создали такой ​​сложный протокол. Они могли бы сделать что-то вроде: клиент генерирует пару ключей, шифрует открытый ключ с открытым ключом сервера, отправляет его на сервер с одноразового номера, и сервер отправляет обратно зашифрованный одноразовый номер с открытым ключом клиенту. Простой и удобный", – отмечает Купрэ на сайте Unhandled expression.

В итоге, Купрэ советует избегать мессенджера Telegram любой ценой.