17 января 2017

Дыра в безопасности WhatsApp и как ее устранить

Новости Советы Угрозы

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

Дыра в безопасности WhatsApp и как ее устранить

Например, именно в пятницу, 13-го, издание The Guardian выпустило материал под названием «WhatsApp backdoor allows snooping on encrypted messages» («Бэкдор в WhatsApp позволяет читать секретные сообщения»). Речь в статье идет о бреши в безопасности сервиса, обнаруженной немецким исследователем Тобиасом Болтером.

Что за баг журналист The Guardian видит в WhatsApp

Приведем перевод цитаты из этой статьи:

Сквозное шифрование в WhatsApp построено на протоколе Signal, разработанном Open Whisper Systems. Оно основывается на создании уникальных ключей, которыми пользователи обмениваются и которые должны подтверждать, — это гарантирует конфиденциальность общения, а также то, что сообщения никто не перехватит. Однако WhatsApp может самостоятельно генерировать новые ключи для пользователей, находящихся в режиме офлайн, причем эти ключи не известны ни отправителю сообщения, ни получателю. Со стороны отправителя WhatsApp в этом случае повторно шифрует сообщение с новым ключом и отправляет его — это работает для всех сообщений, которые не отмечены как полученные.

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

Это не баг, это фича

СМИ немедленно подняли вокруг этого шум, чем, во-первых, привлекли внимание к проблеме других исследователей, а во-вторых, изрядно расстроили создателя протокола Signal и одноименного мессенджера Мокси Марлинспайка. Он заявил, что в The Guardian извратили суть вопроса, и попытался объяснить ситуацию в блоге Open Whisper Systems.

Согласно Мокси (да и здравому смыслу, пожалуй, тоже), это, как говорится, «не баг, а фича». То есть так и должно быть, и вот почему.

Ключи должны периодически меняться — например, если пользователь установил WhatsApp на новое устройство или снес приложение, а потом переставил его заново. Если собеседник отправит такому пользователю сообщение в тот момент, когда на его устройстве нет WhatsApp, то он никак не сможет его получить, если сервер не сгенерирует за него временный ключ.

Другой вопрос, что WhatsApp мог бы блокировать отправку таких сообщений и каждый раз спрашивать отправителя, включившего предупреждения о безопасности: «Поменялся ключ. Возможно, вас подслушивают. Точно ли вы уверены, что хотите отправить сообщение?»

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

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

По словам Мокси, в WhatsApp долго взвешивали все за и против такого подхода — и в итоге остановились именно на нем. Так достаточно безопасно и при этом удобно для пользователей.

Как эта проблема решена в других мессенджерах: Signal, Telegram, Wire и Allo

Тина Мембе, автор блога на сайте medium.com, решила проверить, как обстоят дела с этой проблемой в других мессенджерах со сквозным шифрованием. Оказалось, что WhatsApp — это далеко не худший случай.

В Signal все более безопасно, но менее удобно — пользователь не получит сообщение, если оно было отправлено, когда у него не был установлен Signal. Зато отправитель узнает о том, что это сообщение не отправилось и что ключ у адресата изменился. Это самый безопасный, но не самый удобный из протестированных Тиной мессенджеров.

В довольно популярном Telegram после смены ключа пользователи вообще не получат адресованные им в секретном чате сообщения. Они просто не дойдут — и все. А отправитель может продолжать писать — он и не узнает о том, что сообщения не доходят. Получается очень неудобно.

В Wire сообщения после смены ключа могут теряться, а могут доходить; уведомления о смене ключа могут появляться, а могут и не появляться — в общем, творится не пойми что. К тому же Wire выдает каждому устройству собственный ключ, в результате чего для подтверждения своей личности пользователи нескольких устройств должны вводить уйму символов, — по сути, использовать Wire для секретных чатов практически невозможно.

Недавно представленный Google Allo справился на удивление хорошо, но он построен на том же протоколе Signal, что и первая пара.

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

Но это верно лишь в том случае, если WhatsApp выводит предупреждения о смене ключей. А по умолчанию он этого не делает, но пользователи могут включить их в настройках сами.

Как включить уведомления о безопасности в WhatsApp

На Android: нажмите Настройки, затем Аккаунт, перейдите в раздел Безопасность, а затем нажмите Показывать уведомления безопасности.

Как включить уведомления о безопасности в WhatsApp на iPhone, iOS

На iOS: нажмите на шестеренку в нижнем правом углу, затем выберите пункты Учетная записьБезопасностьУведомления безопасности.

Как включить уведомления о безопасности в WhatsApp на iPhone, iOS

Если вы получили такое уведомление, как на скриншоте ниже, а ваш диалог не предназначен для чужих глаз и вы хотите быть на 100% уверены, что никто вас не подслушивает, то лучший вариант — дождаться, когда ваш собеседник снова включит WhatsApp. Тогда вы сможете вновь подтвердить ключи и вернуть сквозное шифрование.

Приводим этот скриншот на английском, поскольку на русском нам почему-то не удалось это воспроизвести

Приводим этот скриншот на английском, поскольку на русском нам почему-то не удалось это воспроизвести

Как мы уже упоминали ранее в посте про конфиденциальные мессенджеры, поддержание настоящей конфиденциальности — дело весьма сложное. Мы советуем уделять достаточно внимания настройкам безопасности, чтобы вашим данным ничего не угрожало. Собственно, ради этого мы и выпускаем на Kaspersky Daily по несколько постов в неделю с советами по безопасности и приватности — они могут вам пригодиться.