PDA

Просмотр полной версии : Представлен метод атаки на групповой чат WhatsApp и Signal


Suicide
12.01.2018, 02:17
Группа исследователей безопасности из Рурского университета опубликовала (https://blog.cryptographyengineering.com/2018/01/10/attack-of-the-week-group-messaging-in-whatsapp-and-signal/) сведения (https://eprint.iacr.org/2017/713.pdf) о недоработках протокола в системе групповых чатов WhatsApp, позволяющих при получении доступа к серверу организовать прослушивание закрытого чата, несмотря на применение оконечного (end-to-end) шифрования на стороне участников чата. Таким образом, поставлена под сомнение способность групповых чатов WhatsApp обеспечить тайну переписки в случае компрометации инфраструктуры, диверсии персонала или предоставления доступа спецслужбам.

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

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

В мессенджере Signal недоработка связана с отсутствием проверки факта участия в группе пользователя отправившего управляющее сообщение c включением нового участника в группу. Данная особенность позволяет любому пользователю Signal отправить служебное сообщение с включением участника в группу, но для этого участник должен определить секретный идентификатор группы (128-разрядное случайное значение), узнать который нереально, даже имея доступ к серверу (идентификатор передаётся между участниками только в зашифрованном виде).

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

Moxie Marlinspike (https://en.wikipedia.org/wiki/Moxie_Marlinspike), один из авторов протокола Signal, скептически отнёсся (https://news.ycombinator.com/item?id=16117487) к практической пользе от атаки на групповой чат, так как все участники группы получат уведомление о подключении нового участника и скрыть данное уведомление не получится, так как связь с каждым новым участником устанавливается на стороне клиента, а сервер лишь обслуживает метаданные и не имеет доступа непосредственно к переписке. Кроме того, атакующий сможет перехватить только новые сообщения, отправленные после его подключения к чату, все ранее отправленные в группу сообщения останутся зашифрованы ключами, недоступными атакующему.

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

Тем временем, Facebook, который владеет сервисом WhatsApp, опубликовал (https://github.com/facebookresearch/asynchronousratchetingtree) на GitHub реализацию нового протокола ART (Asynchronous Ratcheting Tree (https://eprint.iacr.org/2017/666.pdf)) для создания защищённых групповых чатов. В протоколе используется end-to-end шифрование и гарантируется конфиденциальность передаваемых сообщений. Прототип реализации написан на языке Java и поставляется под лицензией CC-BY-NC. В отличие от систем групповых чатов, подобных Signal, WhatsApp и Facebook Messenger, в ART предоставляется защита от подслушивания в случае компрометации одного из участников. Например, если кто-то получил контроль за одним из участников чата, в Signal он cможет прослушивать все дальнейшие разговоры группы.

Для решения этой проблемы в ART предложено использовать асимметричные предварительные ключи в сочетании с асимметричным одноразовым установочным ключом, которые позволяют в любой момент выполнить обмен новыми ключами для неполного набора участников и сохранить безопасность даже если некоторые участники не находятся в online или скомпрометированы. Установочный ключ генерируется создателем чата и используется только в процессе создания сеанса, давая возможность лидеру группы создать секретные ключи для участников, находящихся в offline.

https://www.opennet.ru/opennews/art.shtml?num=47887 11/01/2018​