O Signal está finalmente reforçando a segurança do seu cliente de desktop, mudando a forma como armazena chaves de criptografia de texto simples para o armazenamento de dados, após minimizar o problema desde 2018.
Chave de criptografia Signal
Quando o Signal Desktop para Windows ou Mac é instalado, ele cria um banco de dados SQLite criptografado para armazenar as mensagens de um usuário. Esse banco de dados é criptografado usando uma chave gerada pelo programa e sem entrada do usuário.
Para que um programa consiga descriptografar um banco de dados criptografado e usá-lo para armazenar dados, ele deve ter acesso à chave de criptografia.
No caso do Signal, ele armazena a chave como texto simples em um arquivo local chamado %AppData%\Signal\config.json no Windows e ~/Library/Application/Support/Signal/config.json em um Mac. No entanto, se o Signal pode acessar essa chave, qualquer outro usuário ou programa em execução no computador também pode, tornando o banco de dados criptografado inútil e fornecendo pouca ou nenhuma segurança extra.
Uma solução oferecida pelo pesquisador que encontrou essa falha, Nathaniel Suchy, foi criptografar o banco de dados local com uma senha fornecida pelo usuário que nunca é armazenada em lugar nenhum, como vemos em softwares de backup em nuvem, navegadores da web, gerenciadores de senhas e carteiras de criptomoedas, lembra o Bleeping Computer.
O Signal agora reforçará a criptografia do banco de dados
Em abril, um desenvolvedor independente, Tom Plant, criou uma solicitação para mesclar código que usa a API SafeStorage da Electron para proteger ainda mais o armazenamento de dados do Signal contra ataques offline.
A API safeStorage da Electron fornece métodos adicionais para proteger a chave de criptografia usada para criptografar dados armazenados localmente em um dispositivo.
Quando usadas, as chaves de criptografia são geradas e armazenadas usando o sistema de criptografia de um sistema operacional e armazenamentos de chaves seguros. Por exemplo, em Macs, a chave de criptografia seria armazenada no Keychain, e no Linux, ela usaria o armazenamento secreto do gerenciador de janelas, como kwallet, kwallet5, kwallet6 e gnome-libsecret.
A API safeStorage fica aquém do Windows, pois usa DPAPI, que apenas protege a chave de criptografia contra outros usuários no mesmo dispositivo. Isso significa que qualquer programa ou malware em execução no mesmo contexto de usuário que aquele que usa o Signal teoricamente seria capaz de acessar os dados. Embora a solução fornecesse segurança adicional para todos os usuários de desktop do Signal, a solicitação ficou adormecida até o drama X da semana passada.
Dois dias atrás, um desenvolvedor do Signal finalmente respondeu que eles implementaram suporte para o safeStorage da Electron, que estaria disponível em breve em uma próxima versão Beta. Enquanto a nova implementação do safeStorage é testada, o Signal também incluiu um mecanismo de fallback que permite ao programa descriptografar o banco de dados usando a chave de descriptografia do banco de dados legado.
O Signal diz que a chave legada será removida assim que o novo recurso for testado. Embora seja bom ver que temos essas proteções adicionais chegando ao Signal, alguns estão decepcionados porque isso só aconteceu depois do alvoroço no X.
Via: Bleeping Computer