Signal renforce enfin la sécurité de son client de bureau en modifiant la manière dont il stocke les clés de cryptage en texte brut pour le magasin de données après avoir minimisé le problème depuis 2018.
Comme l'a rapporté BleepingComputer en 2018, lorsque Signal Desktop pour Windows ou Mac est installé, il crée une base de données SQLite chiffrée pour stocker les messages d'un utilisateur. Cette base de données est chiffrée à l'aide d'une clé générée par le programme et sans intervention de l'utilisateur.
Pour qu'un programme puisse décrypter une base de données cryptée et l'utiliser pour stocker des données, il doit avoir accès à la clé de cryptage. Dans le cas de Signal, il stocke la clé sous forme de texte brut dans un fichier local appelé %AppData%\Signal\config.json sous Windows et ~/Library/Application Support/Signal/config.json sur un Mac.
Cependant, si Signal peut accéder à cette clé, tout autre utilisateur ou programme exécuté sur l'ordinateur le peut également, ce qui rend la base de données cryptée inutile et n'offre que peu ou pas de sécurité supplémentaire.
Une solution proposée par le chercheur qui a découvert cette faille, Nathaniel Suchy, était de crypter la base de données locale avec un mot de passe fourni par l'utilisateur qui n'est jamais stocké nulle part, comme on le voit avec les logiciels de sauvegarde dans le cloud, navigateurs Webgestionnaires de mots de passe et portefeuilles de crypto-monnaie.
Lorsque BleepingComputer a contacté Signal au sujet de la faille en 2018, nous n'avons jamais reçu de réponse.
Au lieu de cela, un responsable du support de Signal a répondu aux préoccupations d'un utilisateur sur le forum Signal, déclarant que la sécurité de sa base de données n'était jamais quelque chose qu'il prétendait fournir.
« La clé de la base de données n'a jamais été destinée à être secrète. Le cryptage au repos n'est pas quelque chose que Signal Desktop essaie actuellement de fournir ou a jamais prétendu fournir », a répondu le Employé de signalisation.
Pour être juste envers Signal, le chiffrement des bases de données locales sans mot de passe fourni par l'utilisateur est un problème pour toutes les applications et nécessite des étapes supplémentaires pour renforcer davantage la sécurité.
Cependant, en tant qu’entreprise fière de sa sécurité et de sa confidentialité, il était étrange que l’organisation ait ignoré le problème et n’ait pas tenté de fournir une solution.
Un défaut de conception réapparaît sur X
Près de six ans plus tard, Elon Musk a tweeté« Il existe des vulnérabilités connues dans Signal qui ne sont pas traitées. Cela semble étrange… »
Musk n'a pas précisé à quelles vulnérabilités il faisait référence, et certains ont vu le tweet de Musk dans le but d'aider Telegram dans une campagne affirmant qu'il était plus sécurisé que Signal.
La présidente de Signal, Meredith Whittaker a répondu qu’aucune vulnérabilité connue ne nécessite d’être corrigée et que, si c’est le cas, elles doivent être divulguées de manière responsable à l’organisation.
« Bonjour, bonjour, nous n'avons aucune preuve de vulnérabilités existantes et n'avons été informés de rien. Nous suivons des pratiques de divulgation responsables et surveillons de près security@signal.org + répondons et corrigeons rapidement tout problème valide », a tweeté Whittaker.
Cependant, la semaine dernière, les chercheurs en sécurité mobile Talal Haj Bakry et Tommy Mysk de Mysk Inc ont averti X de ne pas utiliser Signal Desktop en raison de la même faiblesse de sécurité que nous avions signalée en 2018.
Dans un série de tweetsMysk Inc a illustré comment les photos et les applications envoyées via l'application de messagerie ne sont pas stockées dans un emplacement sécurisé ou crypté et que la clé de cryptage du magasin de messages est toujours stockée en texte brut sur le système.
« La note de la communauté est fausse et Elon Musk a raison. Les applications de bureau de Signal cryptent l'historique des discussions locales avec une clé stockée en texte brut et rendue accessible à n'importe quel processus », ont tweeté les chercheurs dans un autre fil.
« Cela rend les utilisateurs vulnérables à l'exfiltration. Le problème a été signalé en 2018, mais il n'a pas été résolu. »
En réponse, Whittaker a minimisé la faille, affirmant que si un attaquant a un accès complet à votre appareil, Signal ne peut pas protéger complètement les données.
« Les problèmes signalés reposent sur le fait qu'un attaquant dispose déjà d'un *accès complet à votre appareil* — soit physiquement, via une compromission de logiciel malveillant, soit via une application malveillante exécutée sur le même appareil », Whittaker a tweeté.
« Signal, ou toute autre application, ne peut pas se protéger complètement contre ce genre de problème. Et nous ne prétendons pas le faire. »
Bien que l’on ne sache pas exactement ce que signifie un accès complet à un appareil, toute personne disposant d’un accès à distance ou d’un logiciel malveillant exécuté sur l’appareil pourrait accéder aux données.
La réponse était inhabituelle après les retweets constants de Whittaker sur les implications en matière de sécurité et de confidentialité du rappel de Windows par Microsoft et sur la façon dont les données pourraient être volées par des attaquants locaux ou des logiciels malveillants.
Bien que la fonction de rappel de Windows consomme sans aucun doute des données beaucoup plus sensibles, des préoccupations similaires pourraient être appliquées à Signal, qui est utilisé pour la messagerie confidentielle qui, dans certains pays, pourrait conduire une personne en prison.
Cependant, Microsoft a répondu aux critiques bien méritées en déclarant qu'il retarderait la sortie de Windows Recall pour ajouter des protections supplémentaires afin de sécuriser les données collectées contre les attaques locales et de tester davantage le produit.
Signal va désormais renforcer le cryptage de la base de données
En avril, un développeur indépendant, Tom Plant, a créé une demande de fusion de code qui utilise l'API SafeStorage d'Electron pour sécuriser davantage le magasin de données de Signal contre les attaques hors ligne.
« En guise de simple atténuation, j'ai implémenté l'API safeStorage d'Electron pour crypter de manière opportuniste la clé avec des API de plateforme comme DPAPI sur Windows et Keychain sur macOS », a expliqué Plant dans le demande de fusion.
Électron API de stockage sécurisé fournit des méthodes supplémentaires pour sécuriser la clé de cryptage utilisée pour crypter les données stockées localement sur un appareil.
Lorsqu'elles sont utilisées, les clés de chiffrement sont générées et stockées à l'aide du système de cryptographie et des magasins de clés sécurisés d'un système d'exploitation. Par exemple, sur les Mac, la clé de chiffrement serait stockée dans le trousseau, et sur Linux, elle utiliserait le magasin de secrets du gestionnaire Windows, tel que kwallet, kwallet5, kwallet6 et gnome-libsecret.
L'API safeStorage est insuffisante pour Windows, car elle utilise DPAPIqui sécurise uniquement la clé de chiffrement contre les autres utilisateurs sur le même appareil. Cela signifie que tout programme ou logiciel malveillant exécuté dans le même contexte utilisateur que celui qui utilise Signal pourrait théoriquement accéder aux données.
Bien que la solution offrirait une sécurité supplémentaire à tous les utilisateurs de Signal sur ordinateur de bureau, la demande est restée en suspens jusqu'au drame X de la semaine dernière. Il y a deux jours, un développeur de Signal a finalement répondu qu'ils ont mis en œuvre le support pour le safeStorage d'Electron, qui serait bientôt disponible dans un prochain Version bêta.
Pendant que la nouvelle implémentation de safeStorage est testée, Signal a également inclus un mécanisme de secours qui permet au programme de décrypter la base de données à l'aide de la clé de décryptage de la base de données héritée.
« En plus de la migration vers des clés de chiffrement de base de données locales chiffrées/soutenues par un magasin de clés sur les plates-formes prises en charge, notre implémentation comprend également des étapes de dépannage supplémentaires et une option de secours temporaire qui permettra aux utilisateurs de récupérer leur base de données de messages à l'aide de leur clé de chiffrement de base de données héritée en cas de problème », a expliqué Jamie Kyle, développeur de Signal.
« Cela devrait aider à minimiser la perte de données si des cas extrêmes ou d'autres bogues liés au magasin de clés sont découverts pendant le processus de migration et le déploiement de la production.
Signal indique que la clé héritée sera supprimée une fois la nouvelle fonctionnalité testée.
Même s’il est bon de voir que ces protections supplémentaires arrivent sur Signal, certains sont déçus que cela ne se soit produit qu’après le tollé sur X.
BleepingComputer a contacté Signal avec d'autres questions mais n'a pas encore reçu de réponse.