From Specs to Apps: Verifying and Monitoring Models of Signal and WhatsApp
Cet article comble l'écart entre les spécifications de protocoles formels et les implémentations réelles en utilisant le moniteur d'exécution SpecMon pour vérifier que les exécutions observées de WhatsApp Web et de Signal Desktop sont conformes à des modèles nouvellement développés et compatibles avec Tamarin, confirmant ainsi les propriétés de sécurité et mettant au jour des différences non documentées entre les applications.
Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète
À l'ère du numérique, des milliards de personnes comptent sur les applications de messagerie pour partager leurs pensées les plus privées, sécuriser leurs données financières et coordonner leur vie quotidienne. Derrière les coulisses de ces applications se cache un ensemble complexe de règles appelé protocole, qui sert de plan directeur pour la manière dont les messages sont verrouillés, envoyés et déverrouillés. Le plus célèbre de ces plans est le protocole Signal, un système conçu pour garantir que même si un pirate intercepte un message, il ne puisse pas le lire. Depuis des années, les experts en sécurité utilisent de puissants outils informatiques pour prouver que ce plan est mathématiquement sain. Ils ont démontré que si les règles sont suivies parfaitement, le système est incassable. Cependant, un plan n'est pas la même chose qu'un bâtiment. Ce n'est pas parce qu'une conception semble parfaite sur papier que l'équipe de construction a suivi chaque instruction, utilisé les bons matériaux ou évité des erreurs accidentelles lors de la construction des murs. Dans le monde du logiciel, l'écart entre la conception théorique et le code réel qui s'exécute sur le téléphone d'un utilisateur est l'endroit où les vulnérabilités se cachent souvent.
Une équipe de chercheurs du centre CISPA Helmholtz pour la sécurité de l'information s'est donné pour mission de combler cet écart. Ils voulaient savoir si les versions réelles du protocole Signal, telles qu'elles fonctionnent dans les applications WhatsApp et Signal, respectent réellement les règles strictes qu'elles sont censées obéir. Au lieu d'essayer de lire l'intégralité du code source de ces applications massives — une tâche rendue difficile car certaines parties sont cachées ou fermées — les chercheurs ont construit un chien de garde spécialisé. Ce chien de garde, appelé SpecMon, surveille l'application pendant qu'elle fonctionne, écoutant chaque conversation qu'elle a avec le réseau et chaque calcul qu'elle effectue avec ses clés de sécurité. Il compare ces actions en direct contre le modèle théorique parfait en temps réel. Si l'application tente de prendre un raccourci, de sauter une étape ou d'utiliser une méthode différente de celle autorisée par le plan, le chien de garde déclenche une alarme.
Les chercheurs ont appliqué cette méthode à deux applications majeures : Signal Desktop, qui est ouverte à l'inspection de tous, et WhatsApp Web, un système propriétaire fermé appartenant à une immense corporation. Pour l'application Signal Desktop, ils sont partis d'un modèle mathématique existant et hautement détaillé du protocole et y ont ajouté les détails spécifiques et désordonnés trouvés dans le logiciel réel, comme la gestion de nouveaux types de chiffrement conçus pour résister aux futurs ordinateurs quantiques. Pour WhatsApp, ils ont dû travailler à rebours. Partant d'aucun modèle préalable, ils ont observé le comportement de l'application, enregistré ses actions et construit un nouveau plan personnalisé à partir de zéro qui correspondait exactement à ce que le logiciel faisait. Ce fut une réussite significative, car cela marquait la première fois qu'un modèle formel était dérivé directement de l'implémentation de la version du protocole de WhatsApp.
Une fois ces modèles prêts, les chercheurs les ont mis à l'épreuve. Ils ont lancé des milliers de conversations simulées, incluant des scénarios où les messages étaient retardés, envoyés dans le désordre, ou bien où la connexion réseau était interrompue. Dans chaque cas, les applications se sont comportées exactement comme les modèles le prédisaient, confirmant que les mécanismes de sécurité de base fonctionnaient correctement. Les chercheurs ont également injecté délibérément des erreurs dans le logiciel pour voir si leur chien de garde les détecterait. Ils ont fait en sorte que les applications réutilisent d'anciennes clés de chiffrement, sautent des vérifications de signature ou divulguent des données secrètes de manière inattendue. Le système a détecté chacune de ces failles de sécurité, prouvant que l'outil de surveillance est assez sensible pour repérer des écarts dangereux par rapport aux règles.
Cependant, la surveillance a également révélé des différences subtiles entre les deux applications qui n'étaient pas immédiatement évidentes. Les chercheurs ont découvert que WhatsApp gère les « confirmations de lecture » — les notifications qui indiquent à l'expéditeur qu'un message a été consulté — différemment de Signal. Dans Signal, ces confirmations sont enveloppées dans la même couche de chiffrement fort que les messages et participent à la mise à jour continue des clés de sécurité. Dans WhatsApp, ces confirmations sont envoyées en dehors de cette couche chiffrée, ce qui signifie qu'elles ne déclenchent pas les mêmes mises à jour de sécurité. Bien que les chercheurs n'aient pas trouvé de moyen de briser la sécurité de WhatsApp sur la base de cette différence, ils ont noté que cela signifie que l'application pourrait mettre plus de temps à récupérer sa sécurité si une clé secrète était un jour volée. Ils ont également confirmé que WhatsApp n'inclut pas encore certaines fonctionnalités de confidentialité avancées, comme le masquage de l'identité de l'expéditeur vis-à-vis du serveur, qui sont présentes dans l'application Signal.
L'étude démontre qu'il est possible de surveiller des logiciels complexes et réels en action et de vérifier qu'ils adhèrent à leurs promesses de sécurité sans avoir besoin de voir chaque ligne de leur code source. Le processus a été efficace, ne prenant que quelques semaines pour être configuré et exécuté, et il a ajouté très peu de délai à la vitesse des applications. En créant un système où le modèle théorique et la surveillance en direct partagent le même langage, les chercheurs ont fourni un moyen pour les développeurs et les experts en sécurité de vérifier continuellement que leurs applications restent sécurisées à mesure qu'elles évoluent. Cette approche offre une nouvelle voie pour instaurer la confiance dans les outils numériques que nous utilisons chaque jour, garantissant que les bâtiments dans lesquels nous vivons sont aussi sûrs que les plans dont ils sont issus.
Noyé(e) sous les articles dans votre domaine ?
Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.