Уязвимость в WhatsApp, позволяющая перехватывать чужие сообщения

13.01.2017 15:43

В популярной системе обмена сообщениями WhatsApp выявлена уязвимость, которая позволяет владельцу сервиса (Facebook) и заинтересованным спецслужбам перехватывать и прочитывать сообщения. Проблема вызвана тем тем, что сервис WhatsApp может принудительно сгенерировать новые ключи для пользователей, которые в данным момент находятся вне сети (offline), без ведома отправителя и получателя сообщений.

Уязвимость рассматривается некоторыми исследователями безопасности как преднамеренный бэкдор - Facebook был уведомлен о проблеме ещё в апреле прошлого года, но уязвимость до сих пор остаётся не исправлена. Сокрытие проблемы и игнорирование выпуска исправления может стать серьёзным ударом по имиджу WhatsApp, учитывая то, что ранее Facebook заверял пользователей, что применяемое в WhatsApp end-to-end-шифрование исключает любые возможности перехвата сообщений, в том числе персоналом компании. Тем не менее изучение реализации протокола показало, что на деле компания Facebook имеет возможность чтения чужих сообщений, осуществив замену ключа от имени получателя.

Проблема не касается применяемого для организации связи протокола Signal и связана c применяемой в WhatsApp особенностью механизма передачи сообщений пользователям, находящимся в offline. Для end-to-end шифрования сообщений применяются уникальные ключи, которые подтверждены обоими участниками обмена сообщениями. От имени получателя, который в данный момент находится вне сети, может быть анонсирован новый публичный ключ, после чего механизм доставки на стороне отправителя автоматически перекодирует этим новым ключом все сообщения, ожидающие отправки.

Таким образом отправленные сообщения будут зашифрованы не оригинальным ключом собеседника, а подставным ключом, который сгенерирует сервис. При этом собеседник не узнает о том, что адресованные ему сообщения ушли не туда, а отправитель получит уведомление о смене ключа только если явно выставит в настройках соответствующую опцию и то, уведомление будет выведено после отправки с новым ключом. Примечательно, что оригинальная реализация протокола Signal вместо автоматической переотправки с новым ключом, блокирует доставку подобных сообщений и отправляет уведомление отправителю.

Представители сервиса WhatsApp указывают на то, что пользователи имеют возможность включить уведомления о смене ключа в настройках (Settings / Account / Security / Show Security Notifications). Так как процесс смены ключа в большинстве случаев является следствием переустановки приложения или замены смартфона, обеспечивая автоматическую переотправку с новым ключом сервис в первую очередь заботится о том, чтобы все сообщения были доставлены и не потерялись.