Contexte et objectif
Le protocole Signal, à la base des applications de messagerie sécurisée comme Signal et WhatsApp, repose sur des primitives cryptographiques complexes (Double Ratchet, X3DH). Jusqu’à présent, sa robustesse était attestée par des analyses manuelles et des audits ponctuels. DeepMind a présenté un nouvel outil d’intelligence artificielle, nommé AlphaProof, destiné à automatiser la vérification formelle de protocoles cryptographiques. L’objectif déclaré est de réduire le temps de preuve tout en augmentant la couverture des propriétés de sécurité.
Mécanisme de l’outil
AlphaProof combine un moteur de machine learning avec un assistant de preuve interactive basé sur le système de preuve Coq. Le modèle d’apprentissage, entraîné sur des milliers de lemmes et de tactiques de preuve, propose des stratégies de résolution pour chaque obligation de preuve générée par la traduction du protocole en logique de haut niveau. Dans le cas du protocole Signal, plus de 1 800 obligations ont été générées ; le système a résolu automatiquement ≈ 90 % d’entre elles, le reste ayant nécessité une intervention humaine limitée.
Résultats de la vérification
La preuve formelle obtenue couvre les propriétés d’authentification mutuelle, de confidentialité des messages et de forward secrecy. Concrètement, AlphaProof a démontré que, sous les hypothèses cryptographiques standard (sécurité des courbes elliptique Curve25519, sécurité du hash SHA‑256), un adversaire ne peut pas distinguer un échange légitime d’un échange simulé, même après compromission de clés à long terme. Aucun contre‑exemple n’a été trouvé, ce qui constitue une vérification exhaustive du modèle abstrait du protocole.
Analyse critique et limites
Si la preuve formelle renforce la confiance dans le design du protocole, elle repose sur un modèle abstrait qui ne capture pas toutes les implémentations réelles (gestion des erreurs, timing, canaux auxiliaires). De plus, la démarche nécessite une traduction manuelle du code source du protocole en spécifications Coq, étape qui reste sujette à des erreurs humaines. Enfin, l’outil ne fournit pas de garantie contre des vulnérabilités introduites par des bibliothèques tierces ou des défauts d’intégration.