Les développements actuels en informatique quantique représentent une menace croissante pour les algorithmes cryptographiques existants, qui sont utilisés, par exemple, dans les applications de voix sur IP sécurisée et de messagerie instantanée. Puisqu’un ordinateur quantique pourrait bientôt voir le jour, la plupart des gouvernements recommandent de protéger dès maintenant les données hautement sensibles contre ce type d’attaque. Des données chiffrées échangées aujourd’hui pourraient être stockées puis déchiffrées dans un futur proche à la suite de percées en informatique quantique.
En 2017, le National Institute of Standards and Technology (NIST) a lancé un concours international pour normaliser des « algorithmes post-quantiques ». Ces algorithmes doivent être résistants à une attaque menée par un ordinateur post-quantique général. À long terme, ils sont destinés à remplacer les algorithmes utilisés aujourd’hui dans de nombreux protocoles sécurisés reposant sur des mécanismes d’échange de clés cryptographiques (https://csrc.nist.gov/Projects/post-quantum-cryptography/post-quantum-cr…).
Le 5 juillet, le NIST a annoncé les premiers lauréats de ce concours de six ans. L’algorithme sélectionné pour le chiffrement général est CRYSTALS-Kyber : « Pour le chiffrement général, utilisé lorsque nous accédons à des sites web sécurisés, le NIST a sélectionné l’algorithme CRYSTALS-Kyber. Parmi ses avantages figurent des clés de chiffrement comparativement petites, facilement échangeables entre deux parties, ainsi que sa rapidité d’exécution » (https://www.nist.gov/news-events/news/2022/07/nist-announces-first-four-…).
L’application Linphone est très probablement le premier logiciel open source au monde à avoir implémenté l’algorithme CRYSTALS-Kyber pour fournir des communications voix et vidéo sécurisées. À cette fin, l’équipe Linphone a développé une version modifiée du célèbre protocole de chiffrement ZRTP.
Nous avons relevé les défis suivants :
- garantir que l’algorithme atteigne le même niveau d’efficacité même si les clés cryptographiques sont beaucoup plus volumineuses ;
- garantir que l’algorithme reste résilient face aux attaques classiques ;
- garantir que l’algorithme soit interopérable avec les fonctionnalités de chiffrement proposées par les versions antérieures.
Comment ça fonctionne ?
Vous pouvez télécharger notre documentation technique depuis notre site web.
Les étapes suivantes ont été réalisées :
- Intégration d’un KEM dans le protocole ZRTP : nous avons créé une version modifiée de ZRTP qui accepte un algorithme d’échange de clés de type « key encapsulation mechanism »
- Hybridation : nous avons développé un moteur de chiffrement qui combine l’ECDH classique et le chiffrement post-quantique. Le protocole ZRTP a été modifié pour qu’il puisse gérer simultanément deux algorithmes d’échange de clés différents et combiner leurs résultats de manière sécurisée ;
- Fragmentation : nous avons ajouté un mécanisme de fragmentation des paquets ZRTP ;
- Nous avons intégré cette nouvelle bibliothèque ZRTP à capacités post-quantiques dans Linphone et ajouté des options de configuration permettant d’activer/désactiver le mode post-quantique ;
- Nous avons réalisé des tests de performance.
Comment vérifier que le chiffrement post-quantique est utilisé dans l’application Linphone ?
Le chiffrement post-quantique peut être activé via les paramètres de l’application. Il peut être défini comme « obligatoire » ou « non obligatoire ». S’il est défini comme obligatoire, l’appel ne sera établi que si l’application appelée prend en charge le chiffrement post-quantique.
Lors d’un appel audio ou vidéo chiffré, l’algorithme de chiffrement des médias utilisé s’affiche dans la fenêtre de statistiques d’appel.
Comment intégrer cette fonctionnalité dans mon application ?
Cette fonctionnalité est disponible dans linphone-ios, linphone-android 4.7, linphone-desktop 4.5 et linphone-sdk 5.x.
Le code source de notre moteur de chiffrement post-quantique a été rendu public sur notre GitLab.
Une grande partie du code source a également été écrite directement dans la bibliothèque Liblinphone.
Les développeurs qui construisent leur application sur Linphone doivent activer la fonctionnalité dans leur application. Cela peut se faire directement dans le code source ou via le provisioning à distance.
Pour les développeurs qui utilisent la bibliothèque Liblinphone (linphone-sdk) pour développer leurs applications, il est nécessaire d’activer le module de chiffrement post-quantique lors de la compilation. Nos binaires SDK précompilés n’incluent pas ce module.
Pour plus d’informations, consultez notre article wiki.
D’un point de vue licence, le moteur de chiffrement post-quantique est doublement licencié : il peut être intégré soit sous les termes de la licence open source GNU/GPLv3, soit via l’achat d’une licence propriétaire. Il est vendu comme une extension de la licence Linphone et Liblinphone.
Contactez-nous pour plus d’informations !

