Представлен метод атаки на групповой чат WhatsApp и Signal
11 января 2018 года
Группа исследователей безопасности из Рурского университета опубликовала сведения о недоработках протокола в системе групповых чатов WhatsApp, позволяющих при получении доступа к серверу организовать прослушивание закрытого чата, несмотря на применение оконечного (end-to-end) шифрования на стороне участников чата. Таким образом, поставлена под сомнение способность групповых чатов WhatsApp обеспечить тайну переписки в случае компрометации инфраструктуры, диверсии персонала или предоставления доступа спецслужбам.
Принцип работы группового чата WhatsApp и Signal сводится к тому, что каждый участник чата шифрует все отправляемые сообщения на своей стороне и рассылает всем участникам чата, используя групповой ключ. Каждый участник имеет подобный ключ, позволяющий остальным читать его сообщения (т.е. вместо создания ключей для всех связей в группе, создаются групповые ключи для каждого участника). При подключении нового участника, члены группы обмениваются новыми групповыми ключами.
Слабой стороной WhatsApp является то, что участие в чате координируется сервером и каждый новый пользователь, который получил от сервера полномочия участия в чате, обретает возможность получения и отправки сообщений каждому участнику чата. В случае контроля за сервером можно обходным путём без получения пригласительного кода от члена группы добавить в группу фиктивного участника, который сможет установить end-to-end соединения со всеми остальными участниками и получать отправляемые в чат сообщения.
В мессенджере Signal недоработка связана с отсутствием проверки факта участия в группе пользователя отправившего управляющее сообщение c включением нового участника в группу. Данная особенность позволяет любому пользователю Signal отправить служебное сообщение с включением участника в группу, но для этого участник должен определить секретный идентификатор группы (128-разрядное случайное значение), узнать который нереально, даже имея доступ к серверу (идентификатор передаётся между участниками только в зашифрованном виде).
В WhatsApp сервер принимает большее участие в организации работы группы и не использует end-to-end шифрование для служебных сообщений управления группой, что позволяет на сервере перехватить идентификатор группы. Таким образом при наличии контроля за сервером WhatsApp можно определить идентификатор группы и инициировать подключение нового участника в чат, без ведома текущих членов группы.
Moxie Marlinspike, один из авторов протокола Signal, скептически отнёсся к практической пользе от атаки на групповой чат, так как все участники группы получат уведомление о подключении нового участника и скрыть данное уведомление не получится, так как связь с каждым новым участником устанавливается на стороне клиента, а сервер лишь обслуживает метаданные и не имеет доступа непосредственно к переписке. Кроме того, атакующий сможет перехватить только новые сообщения, отправленные после его подключения к чату, все ранее отправленные в группу сообщения останутся зашифрованы ключами, недоступными атакующему.
Данный подход оценивается как разумный компромисс между безопасностью и удобством работы. Например, в Telegram в групповых чатах к сообщениям вообще не применяется end-to-end шифрование и шифруются лишь потоки трафика между клиентом и сервером. В такой ситуации при наличии доступа к серверу можно полностью контролировать всю переписку, включая возможность просмотра ранее отправленных в чат сообщений, и делать это незаметно для участников чата.
Тем временем, Facebook, который владеет сервисом WhatsApp, опубликовал на GitHub реализацию нового протокола ART ( Asynchronous Ratcheting Tree) для создания защищённых групповых чатов. В протоколе используется end-to-end шифрование и гарантируется конфиденциальность передаваемых сообщений. Прототип реализации написан на языке Java и поставляется под лицензией CC-BY-NC. В отличие от систем групповых чатов, подобных Signal, WhatsApp и Facebook Messenger, в ART предоставляется защита от подслушивания в случае компрометации одного из участников. Например, если кто-то получил контроль за одним из участников чата, в Signal он cможет прослушивать все дальнейшие разговоры группы.
Для решения этой проблемы в ART предложено использовать асимметричные предварительные ключи в сочетании с асимметричным одноразовым установочным ключом, которые позволяют в любой момент выполнить обмен новыми ключами для неполного набора участников и сохранить безопасность даже если некоторые участники не находятся в online или скомпрометированы. Установочный ключ генерируется создателем чата и используется только в процессе создания сеанса, давая возможность лидеру группы создать секретные ключи для участников, находящихся в offline.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.