Les applications de messagerie se mettent au chiffrement post-quantique

Dans la lignée de Signal, iMessage intègre une couche de chiffrement post-quantique.

CRYSTALS-Kyber, en pole position pour apporter aux applications de messagerie une couche de sécurité post-quantique ? Signal l’avait mis en œuvre l’an dernier. Apple vient de faire de même pour iMessage.

CRYSTALS-Kyber fait partie des schémas d’encapsulation de clés ayant obtenu le statut de future norme du NIST. L’ANSSI le recommande… comme la NSA, entre autres.

Signal l’a utilisé pour mettre à niveau son protocole X3DH (Extended Triple Diffie-Hellman). Il a opté pour une approche hybride, en conservant le chiffrement ECC. En résulte PQXDH (Post-Quantum Extended Diffie-Hellman).

Apple, qui exploite ECC sur iMessage depuis 2019 en remplacement de RSA, a suivi la même voie. Il a toutefois ajouté un système de rotation, afin que la compromission d’une clé n’expose pas l’entièreté d’une conversation.

Le protocole, baptisé PQ3, est intégré dans les dernières versions mineures d’iOS, iPadOS, macOS et watchOS, publiées début mars. Le basculement est automatique pour les conversations entre appareils qui le prennent en charge.

Chiffrement hybride pour iMessage

Avec PQ3, chacun des appareils qu’on enregistre sur iMessage ne transmet donc plus une, mais deux clés publiques aux serveurs d’Apple. En l’occurrence, une Kyber-1024 et une P-256. L’une et l’autre signées avec ECDSA en utilisant une clé d’authentification P-256 générée en local, et dotées d’un timestamp limitant leur validité.

Lorsqu’un utilisateur envoie un message, celui-ci est transmis à tous ses autres appareils et à tous ceux du destinataire. Les échanges se font en pair à pair, avec des clés propres à chaque session.
L’appareil destinataire pouvant ne pas être en ligne lorsqu’on lance une conversation, iMessage chiffre le premier message avec les clés publiques enregistrées sur le serveur (annuaire Identity Directory Service).
La clé d’authentification d’un appareil est elle-même signée par un autre clé (Contact Key Verification), censée éviter les problèmes liés à une compromission du serveur.

Les échanges en P2P impliquent le partage de clés symétriques ensuite combinées en un secret. Deux rapports, respectivement issus de l’ETH Zurich et de l’université de Waterloo (États-Unis), donnent un aperçu des techniques mises en œuvre à cet effet. Surtout, ils valident le protocole post-quantique par vérification formelle.

dérivation de clé

Les clés renouvelées à intervalle variable

Le mécanisme de renouvellement des clés de session utilise un algorithme à ratchet. Périodiquement, la dérivation des clés que le protocole génère pour chaque message se fait de manière non déterministe (entropie non basée sur l’état de la conversation).

Cette période dépend de plusieurs critères. Parmi eux, le nombre de messages sortants, le temps écoulé depuis la dernière rotation et la qualité de la connexion. Apple pourra la faire évoluer dans le cadre des mises à jour logicielles. En l’état, l’intervalle est d’environ 50 messages, avec une rotation au moins tous les 7 jours.

Un renouvellement à chaque message est difficilement envisageable. Par rapport aux 32 octets que pèse un ratchet ECDH, le ratchet post-quantique dépasse, au même niveau de sécurité, les 2 ko. En partie parce qu’il nécessite d’envoyer à la fois une clé publique et un secret encapsulé. Mais aussi parce que la structure mathématique sous-jacente induit des tailles de paramètres d’un autre ordre.

Illustration principale © Den Rise – Shutterstock