В защищённом мессенджере Signal устранили уязвимость, которую разработчики игнорировали шесть лет

Читать в полной версии

Разработчики приложения Signal только сейчас приняли меры для устранения уязвимости в десктопной версии клиента, на которую им указали ещё в 2018 году — в течение шести лет они не считали её проблемой и говорили об отсутствии обязательств делать это.

Источник изображения: Mika Baumeister / unsplash.com

При установке настольного приложения Signal для Windows или macOS создаётся зашифрованная база данных SQLite, в которой хранятся сообщения пользователя. Шифрование этой базы осуществляется при помощи ключа, который генерируется программой без участия пользователя. Чтобы программа могла открывать базу данных и использовать её для хранения переписки, ей необходим доступ к ключу шифрования — он хранится в папке приложения в открытом виде в файле формата JSON. Но если доступ к этому ключу есть у приложения, то сделать это могут любой другой работающий на том же компьютере пользователь или другое приложение — в результате шифрование базы данных оказывается бесполезным, потому что не обеспечивает дополнительной безопасности.

Источник изображения: x.com/elonmusk

Пользователи мессенджера неоднократно сообщали об этом его разработчикам с 2018 года, но ответ был всегда примерно одинаковым: они никогда не утверждали, что обеспечивают безопасность базы данных. В мае этого года на проблему обратил внимание Илон Маск (Elon Musk), который написал в своей соцсети X, что существуют известные уязвимости в Signal, которые не исправляются. Служба проверки фактов на платформе опровергла это заявление, отметив, что надлежащим образом зарегистрированных уязвимостей в мессенджере не обнаружено — этот тезис подтвердила и президент Signal Мередит Уиттакер (Meredith Whittaker).

Ситуация продолжала накаляться, но разрешению проблемы способствовал независимый разработчик Том Плант (Tom Plant), который предложил использовать для защиты хранилища данных Signal средства Electron SafeStorage API. Это позволит перенести ключи шифрования в защищённые местоположения: для Windows это DPAPI, для macOS — «Связка ключей» (Keychain), а для Linux — секретное хранилище текущего оконного менеджера, например, kwallet или gnome-libsecret. Это не совсем безупречное решение, особенно в Windows с DPAPI, но всё-таки дополнительная мера защиты. И два дня назад представитель Signal сообщил, что предложенное решение было интегрировано в мессенджер, и оно уже появится в предстоящей бета-версии клиента. Пока новая реализация тестируется, разработчики Signal сохранили резервный механизм, который позволяет программе расшифровывать базу данных привычным способом.