Разработчики Signal после критики со стороны профильных экспертов и пользователей согласились усилить безопасность настольного клиента мессенджера и изменить способ хранения ключей шифрования. В настоящее время Signal хранит ключи шифрования на ПК в виде обычного текста (plaintext), что потенциально подвергает пользователей риску кражи данных в случае компрометации системы.
При установке Signal Desktop для Windows или Mac приложение создавало зашифрованную базу данных SQLite для хранения сообщений пользователя. Эта база данных была зашифрована с использованием ключа, сгенерированного приложением, без участия пользователя. Чтобы программа могла расшифровать зашифрованную базу данных и использовать её для хранения данных, она должна иметь доступ к ключу шифрования. В случае с Signal ключ хранился в виде обычного текста в локальном файле с именем %AppData%Signalconfig.json в Windows и ~/Library/Application Support/Signal/config.json на Mac.
Исследователи подтвердили, что настольное приложение Signal для Mac хранит ключи шифрования локальной истории чата в текстовом файле, доступном любому процессу в системе. «Сквозное шифрование бесполезно, если какой-либо из ПК пользователей будет скомпрометирован», — отметили эксперты.
Ранее позиция разработчиков мессенджера была такая: The database key was never intended to be a secret. At-rest encryption is not something that Signal Desktop is currently trying to provide or has ever claimed to provide, Фактически в Signal заявили, что безопасность базы данных пользователей никогда не была приоритетом и в компании не обещали обеспечить защиту этой информации.
1 апреля 2024 года на GitHub проекта мессенджера разработчиками и экспертами по ИБ был сделан pull request, который мог бы облегчить эту проблему за счёт реализации API SafeStorage от Electron — никаких последующих действий по этому предложению от команды проекта не последовало. Также в Signal не прокомментировали эту проблему на запросы СМИ и профильных ресурсов.
В начале июля в Signal решили прислушаться к критике проекта и реализовали поддержку SafeStorage от Electron, которая скоро будет доступна в следующей бета-версии мессенджера.
«Помимо перехода к зашифрованным/поддерживаемым хранилищем ключей ключам шифрования локальной базы данных на поддерживаемых платформах, наша новая реализация защиты также включает в себя некоторые дополнительные шаги по устранению неполадок и временный запасной вариант, который позволит пользователям восстановить свою базу данных сообщений, используя свой устаревший ключ шифрования базы данных, если что-то пойдет не так», — объяснил СМИ разработчик Signal Джейми Кайл.
«Это должно помочь свести к минимуму потерю данных, если в процессе миграции и развёртывания рабочей среды будут обнаружены какие-либо крайние случаи или другие ошибки, связанные с хранилищем ключей. Устаревший ключ будет удалён после тестирования новой функции», — добавили в Signal.
Источник: habr.com