Signal corrigiu e minimizou a falha na chave de criptografia

Apesar de ser um problema antigo, que foi relatado em 2018, o Signal corrigiu e minimizou a falha na chave de criptografia.

A Signal está finalmente reforçando a segurança de seu cliente de desktop, alterando a forma como armazena chaves de criptografia de texto simples para o armazenamento de dados, após minimizar o problema desde 2018.

Signal corrigiu e minimizou a falha na chave de criptografia

Signal corrigiu e minimizou a falha na chave de criptografia
Signal corrigiu e minimizou a falha na chave de criptografia

Conforme relatado pelo site BleepingComputer em 2018, 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.

Este banco de dados é criptografado usando uma chave gerada pelo programa e sem entrada do usuário.

Para que um programa seja capaz de 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.

Signal corrigiu e minimizou a falha na chave de criptografia
Signal corrigiu e minimizou a falha na chave de criptografia – Chave de descriptografia no config.json do Signal no Windows Fonte: BleepingComputer

No entanto, se o Signal puder acessar essa chave, qualquer outro usuário ou programa em execução no computador também poderá, 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 com software de backup em nuvem, navegadores da web, gerenciadores de senhas e carteiras de criptomoedas.

Quando o BleepingComputer contatou a Signal sobre a falha em 2018, nunca recebeu uma resposta.

Em vez disso, um gerente de suporte do Signal respondeu às preocupações de um usuário no fórum do Signal, afirmando que a segurança de seu banco de dados nunca foi algo que ele afirmava fornecer.

“A chave do banco de dados nunca foi planejada para ser secreta. A criptografia em repouso não é algo que o Signal Desktop esteja tentando fornecer atualmente ou já tenha afirmado fornecer”, respondeu o funcionário do Signal.

Para ser justo com a Signal, criptografar bancos de dados locais sem uma senha fornecida pelo usuário é um problema para todos os aplicativos e depende de etapas extras para aumentar ainda mais a segurança.

No entanto, como uma empresa que se orgulha da sua segurança e privacidade, foi estranho que a organização tenha descartado o problema e não tenha tentado fornecer uma solução.

Quase seis anos depois, Elon Musk tuitou: “Existem vulnerabilidades conhecidas no Signal que não estão sendo abordadas. Parece estranho…”

Musk não compartilhou a quais vulnerabilidades ele estava se referindo, e alguns viram o tweet de Musk como uma tentativa de ajudar o Telegram em uma campanha alegando que era mais seguro que o Signal.

A presidente da Signal, Meredith Whittaker, respondeu que nenhuma vulnerabilidade conhecida precisa ser abordada e, se houver, elas devem ser divulgadas de forma responsável à organização.

“Olá, olá, não temos evidências de vulnerabilidades existentes e não fomos notificados de nada. Seguimos práticas de divulgação responsável e monitoramos de perto [email protected] + respondemos e corrigimos quaisquer problemas válidos rapidamente”, tuitou Whittaker .

No entanto, na semana passada, o pesquisador de segurança móvel Tommy Mysk alertou novamente no X para não usar o Signal Desktop por causa da mesma falha de segurança relatada em 2018.
http://x.com/mysk_co/status/1809287118235070662
Em uma série de tweets, Mysk ilustrou como as fotos e aplicativos enviados por meio do aplicativo de mensagens não são armazenados em um local seguro ou criptografado e que a chave de criptografia para o armazenamento de mensagens ainda é armazenada em texto simples no sistema.

“A nota da comunidade está errada e Elon Musk está certo. Os aplicativos de desktop do Signal criptografam o histórico de bate-papo local com uma chave armazenada em texto simples e tornada acessível a qualquer processo”, tuitou Mysk em outro tópico.

“Isso deixa os usuários vulneráveis ​​à exfiltração. O problema foi relatado em 2018, mas não foi resolvido”

Em resposta, Whittaker minimizou a falha, afirmando que se um invasor tiver acesso total ao seu dispositivo, o Signal não poderá proteger completamente os dados.

“Os problemas relatados dependem de um invasor já ter *acesso total ao seu dispositivo* – seja fisicamente, por meio de um comprometimento de malware ou por meio de um aplicativo malicioso em execução no mesmo dispositivo”, tuitou Whittaker.

“Isso não é algo que o Signal, ou qualquer outro aplicativo, pode proteger totalmente. Nem nunca afirmamos fazer isso.”

Embora não esteja claro o que significa acesso total a um dispositivo, qualquer pessoa com acesso remoto ou malware em execução no dispositivo pode acessar os dados.

A resposta foi incomum após os constantes retuítes de Whittaker sobre as implicações de segurança e privacidade do Windows Recall da Microsoft e como os dados poderiam ser roubados por invasores locais ou malware.

Embora o recurso Windows Recall, sem dúvida, consuma muito mais dados confidenciais, preocupações semelhantes poderiam ser aplicadas ao Signal, que é usado para mensagens confidenciais que, em alguns países, podem levar uma pessoa à prisão.

No entanto, a Microsoft respondeu às merecidas críticas dizendo que adiaria o lançamento do Windows Recall para adicionar proteções adicionais para proteger os dados coletados de ataques locais e testar o produto mais detalhadamente.

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.

“Como uma mitigação simples, implementei a API safeStorage da Electron para criptografar a chave de forma oportunista com APIs de plataforma como DPAPI no Windows e Keychain no macOS”, explicou Plant na solicitação de mesclagem.

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, usaria o armazenamento secreto do gerenciador do Windows, como kwallet, kwallet5, kwallet6 e gnome-libsecret.

A API safeStorage é insuficiente para o Windows, pois usa DPAPI, que protege apenas a chave de criptografia contra outros usuários no mesmo dispositivo.

Isso significa que qualquer programa ou malware executado no mesmo contexto de usuário daquele que usa o Signal seria, teoricamente, capaz de acessar os dados.

Embora a solução fornecesse segurança adicional para todos os usuários de desktop Signal, a solicitação permaneceu inativa até o drama X da semana passada.

Dois dias atrás, um desenvolvedor do Signal finalmente respondeu que implementou suporte para 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.

“Além de migrar para chaves de criptografia de banco de dados locais criptografadas/apoiadas por keystore em plataformas suportadas, nossa implementação também inclui algumas etapas adicionais de solução de problemas e uma opção de fallback temporária que permitirá aos usuários recuperar seu banco de dados de mensagens usando sua chave de criptografia de banco de dados herdada se algo der errado. errado”, explicou o desenvolvedor do Signal, Jamie Kyle.

“Isso deve ajudar a minimizar a perda de dados se quaisquer casos extremos ou outros bugs relacionados ao keystore forem descobertos durante o processo de migração e implementação da produçã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 desapontados por isso só ter acontecido após o alvoroço no X.

Signal corrigiu e minimizou a falha na chave de criptografia
Signal corrigiu e minimizou a falha na chave de criptografia – Comentário postado na solicitação de mesclagem do Signal

Por fim, o site BleepingComputer entrou em contato com o Signal com mais perguntas, mas ainda não recebeu uma resposta.

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.