Защищенный мессенджер Signal, получивший $50 млн от сооснователя WhatsApp Брайана Эктона в феврале 2018 года, стал предметом обсуждений на тему конфиденциальности пользовательских данных. Выяснилось, что во время миграции с Chrome-расширения на полноценный десктопный клиент, программа экспортирует переписку в незащищенном виде. Уязвимость обнаружил ИБ-специалист Мэтью Сиюш.

Chrome-расширение было для Signal временным заменителем клиента для PC и Mac. После выпуска соответствующих приложений в октябре 2017 года, разработчики обозначили время его работы — поддержку плагина будут вести до конца 2018 года. Чтобы не потерять переписку, при переходе на автономный клиент запускалась процедура миграции данных.

https://twitter.com/msuiche/status/1054179613662953472

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

В GiHub-ветке, созданной после обнаружения проблемы, отмечают — Signal никогда не заявлял о защищенном хранении сообщений на дисках. Даже без процедуры миграции, можно найти ключ дешифрования в директории APPDATA. Обеспечить локальное шифрование и надежное хранение — задача конечного пользователя.

Еще одну претензию к Signal Desktop нашел исследователь Нэйтан Сёчи. Он установил, что при установке приложения, создается база данных с архивом сообщений. Однако ключ шифрования к ней тоже никак не защищен — он хранится в открытом виде на компьютере, в папках %AppData%\Signal\config.json и ~/Library/Application Support/Signal/config.json на PC и Mac соответственно.

https://twitter.com/nathanielrsuchy/status/1054720111330951168

Получив ключ, можно расшифровать содержимое архива. Однако, как сообщили представители Signal, ситуация не должна становиться поводом для осуждения. На десктопных ОС существуют программы и системные инструменты для надежного шифрования содержимого диска, поэтому добавлять еще один защитный слой — пароль при открытии JSON-файла с криптографическим ключом — не станут. Зато этот механизм реализован в Android, поскольку ОС не дает возможности работать с FDE-софтов (full disk encryption).

Третий вопрос к Signal Desktop — локальное хранение данных. Программа собирает сведения о контактах, метаданных переписки (имена, телефонные номера и так далее), метаданных вложений и вложениях, оставляя их в незащищенном виде. Например, как отметил сооснователь компании Red Canary Кейт МакКаммон, на macOS для просмотра сохраненных и незашифрованных вложений можно перейти по адресу ~/Library/Application\ Support/Signal/ -type f -print0 | xargs -0 file | grep attachments.

Для просмотра других сведений из базы данных, в число которых входят контакты и метадата, следует перейти в ~/Library/Application\ Support/Signal/IndexedDB/ -type f -print0 | xargs -0 strings. Изначально МакКаммон также предполагал, что программа не справляется со своевременным удалением вложений из «исчезающих» сообщениях, но потом признал собственную ошибку.

Почему Signal все еще надежен

Стоит отметить, что обнаруженные особенности не ставят под вопрос надежность Signal при передаче данных. Мессенджер не хранит на своих серверах сообщения или логи, а в его протоколе по-прежнему не удалось найти брешей для удаленного перехвата переписки. Однако при наличии физического доступа к устройству, прочесть чаты можно будет без труда. Вину за это нельзя перекладывать за разработчиков — как отмечают в обсуждениях недостатков Signal Desktop, они не несут ответственность за чужие устройства. Предполагается, что заботу о шифровании локальных файлов возьмет на себя юзер.

Как устроено базовое шифрование данных на Windows и Mac

На Windows 10 для FDE (full disk encryption — полное шифрование диска) используется встроенная функция Device Encryption. Зачастую она активирована «из коробки». Но для ее активации нужно залогиниться в Microsoft-аккаунте, поскольку ключ дешифрования загрузят в облачный сервис OneDrive. Это поможет при восстановлении файлов в ситуации, когда вы не можете залогиниться на ПК. Проверить, включено ли шифрование, можно в настройках, в разделе «Об устройстве». На Windows 10 Pro/Enterprise/Education доступна продвинутая утилита BitLocker. 

На Mac тоже есть предустановленный FDE-софт. Это утилита FileVault, которую можно активировать из раздела «Безопасность» в настройках компьютера. FileVault использует надежную и проверенную схему шифрования, однако требует определенной ответственности от пользователя. После установки кастомного пароля для доступа к диску, программа позаботится о ситуациях, когда кодовая фраза оказывается забыта или потеряна.

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