SHARE THE PERSPECTIVE

L’agilité cryptographique est la capacité de faire passer un protocole d’une suite cryptographique à une autre sans perdre un cadre clair de garanties de sécurité. En messagerie, cela implique davantage que l’ajout d’un nouveau nom d’algorithme. Les anciens clients, les destinataires hors ligne, les messages stockés et les appareils associés doivent tous se comporter de façon prévisible pendant la transition.

La RFC 7696 de l’IETF décrit l’agilité algorithmique comme un problème de migration impliquant des identifiants, des implémentations et des changements opérationnels. Un numéro de version aide à identifier ce qui est utilisé ; il ne rend pas la migration sûre à lui seul.

Trois versions faciles à confondre

Une messagerie peut avoir une version de l’application, une version du protocole de communication et un identifiant de suite cryptographique. Ils répondent à des questions différentes :

Identifiant Ce qu’il indique à une personne chargée de l’examen Ce qu’il ne démontre pas
Version de l’application Quelle compilation du logiciel est installée Que chaque conversation utilise le protocole le plus récent
Version du protocole Quel format de message et quelles règles d’état s’appliquent Que l’implémentation respecte correctement ces règles
Identifiant d’algorithme ou de suite Quels composants cryptographiques sont sélectionnés Que la négociation ne peut pas être rétrogradée vers une option plus faible

Les notes de version devraient expliciter cette relation. « Nouveau chiffrement livré » est ambigu si seules les nouvelles conversations l’utilisent, ou si un ancien client associé provoque un retour à un mode antérieur.

Ce qu’une migration sûre doit préciser

Partons d’un scénario concret : Alice effectue la mise à jour aujourd’hui ; Bob reste hors ligne avec un ancien téléphone. Alice envoie un message, puis ajoute un second appareil. Que doit accepter, stocker et afficher chaque appareil ?

Une conception susceptible d’être examinée répond au moins aux questions suivantes :

  • Comment chaque partie découvre-t-elle les versions prises en charge par l’autre ?
  • La version sélectionnée est-elle authentifiée dans le cadre de la session ?
  • Que se passe-t-il lorsqu’aucune version acceptable n’est commune aux deux parties ?
  • Un relais malveillant peut-il supprimer une capacité et provoquer le recours à un mode plus faible ?
  • Les anciens messages restent-ils lisibles, et quelles anciennes clés restent nécessaires ?
  • La restauration d’une sauvegarde réactive-t-elle un état de protocole obsolète ?
  • Quand les algorithmes dépréciés seront-ils désactivés, plutôt que simplement déconseillés ?

Un échec visible est souvent plus sûr qu’une transition silencieuse vers un mode non voulu par l’utilisateur. Mais le comportement exact en cas d’échec et lors de la récupération devrait être documenté afin que les personnes ne le contournent pas en passant à un canal non protégé.

Une matrice pratique de tests de mise à niveau

Une mise à niveau de sécurité exige davantage qu’une conversation réussie entre deux installations neuves. Testez ces cas avec des données non sensibles :

Test Éléments à consigner
Nouveau client vers ancien client Protocole sélectionné ou résultat d’incompatibilité explicite
Destinataire hors ligne pendant la mise à niveau Comportement de livraison et de déchiffrement après reconnexion
Retour d’un ancien appareil associé S’il peut lire, envoyer ou imposer un mode inattendu
Ajout d’un membre incompatible à un groupe Politique explicite du groupe et état visible par l’utilisateur
Sauvegarde restaurée après abandon d’anciens mécanismes Si l’état non pris en charge est rejeté ou migré
Métadonnées de version altérées Échec d’authentification plutôt qu’une rétrogradation inaperçue

Il s’agit de critères d’évaluation, et non d’affirmations selon lesquelles un produit nommé aurait réussi ces tests. Conservez les identifiants de compilation et les résultats observés pour pouvoir distinguer une régression ultérieure d’une modification de la documentation.

Comment interpréter les noms de protocoles de Livara

Dans sa documentation de sécurité, Livara utilise le nom LVR1 pour les conversations directes et LGS1 pour les groupes privés. Ces noms distinguent les responsabilités ; ils ne doivent pas être interprétés comme la preuve d’une normalisation ou d’un audit indépendant. La page traite aussi du comportement des clients ou groupes qui ne peuvent pas satisfaire aux prérequis du mode chiffré.

Les prochains éléments utiles seraient une spécification versionnée, des vecteurs de test, des règles de compatibilité et des résultats d’examen rattachés à une version précise. Le Proof Lab indique explicitement la portée plus restreinte de sa démonstration. Exécuter des primitives dans un navigateur ne revient pas à tester tous les chemins de migration dans l’application.

Que faire pendant une mise à niveau du chiffrement ?

Gardez les clients pris en charge à jour, lisez les avis de sécurité concernant la compatibilité des appareils et soyez attentif aux changements des indicateurs d’identité ou d’état du chiffrement. Ne supposez pas qu’une nouvelle icône d’application signifie que tous les anciens groupes et toutes les sauvegardes bénéficient d’une nouvelle protection. Si le produit ne peut pas expliquer quelles données ont changé de protection, posez la question avant de partager des informations sensibles.

Une bonne agilité cryptographique rend le changement vérifiable. Elle indique ce qui a changé, comment les correspondants s’accordent sur ce changement, ce qui peut mal se passer et quand l’ancien mécanisme cesse d’être accepté.

Ouvrir Livara Chat
CONTINUE THE THREADPrivate messaging ↗
YOU’VE REACHED THE ENDBack to the reading room ↗