Les développements actuels dans le domaine de l'informatique quantique constituent une menace pour les algorithmes cryptographiques qui sont aujourd'hui utilisés entre autres dans les applications de Voix sur IP et de messagerie instantanée. C'est parce qu'un tel ordinateur quantique pourrait bientôt voir le jour que l'ANSSI préconise de protéger les données contre ce type d'attaque d'ici à 2030.
En parallèle, le National Institute of Standards and Technology (NIST) a lancé en 2017 une compétition visant à établir une standardisation internationale des algorithmes cryptographiques dits "post-quantiques", capables de résister à une attaque d'un ordinateur quantique généraliste et destiné à remplacer dans le futur les algorithmes utilisés actuellement dans de nombreux protocoles sécurisés reposant sur l'échange de clés cryptographiques. (https://csrc.nist.gov/Projects/post-quantum-cryptography/post-quantum-cr...)
Le NIST a annoncé le 5 juillet 2022 la liste des premiers gagnants de cette compétition. L'algorithme retenu pour le chiffrement généraliste est CRYSTALS-Kyber : "For general encryption, used when we access secure websites, NIST has selected the CRYSTALS-Kyber algorithm. Among its advantages are comparatively small encryption keys that two parties can exchange easily, as well as its speed of operation (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 de communication audio/vidéo dans le monde à avoir implémenté cet algorithme CRYSTALS-Kyber, en développant une version modifiée du protocole de chiffrement standardisé ZRTP.
Parmi les défis relevés :
- ne pas perdre en efficacité avec l'utilisation de clés plus larges
- ne pas devenir vulnérable à une attaque classique (quantique)
- rester compatible avec les fonctionnalités de chiffrement proposées dans les versions précédentes
Comment ça fonctionne ?
Vous pouvez télécharger la documentation technique sur notre site.
Les différentes étapes réalisées :
- intégration de KEM dans ZRTP : conception d'une version de ZRTP acceptant un algorithme d'échange de clés de type Key Encapsulation Mechanism;
- hybridation : conception et réalisation d'un module de chiffrement combinant un (EC)DH classique et un chiffrement post-quantique. Modification du protocole ZRTP pour qu'il soit à même de négocier non plus un, mais deux algorithmes d'échange de clés, procéder à l'échange, et combiner de façon sécurisée les résultats;
- fragmentation : ajout d'un mécanisme de fragmentation des paquets ZRTP;
- intégration du code de référence de Kyber sur plateformes mobile (IOS et Android);
- intégration dans l'application Linphone de la librairie BZRTP avec des capacités post-quantique, et des paramètres de configuration permettant d’activer/désactiver le mode Post-Quantique;
- mise en place de tests de performance et de robustesse.
Comment voir si le chiffrement post quantique est bien utilisé dans l'application ?
Le chiffrement post-quantique des appels audio et vidéo peut être activé via les paramètres de l'application. Ce mode peut être rendu obligatoire ou non. S'il est obligatoire, l'appel n'aboutira que si l'appelé supporte cette fonctionnalité.
En cours d'appel, la vue de statistiques d'appel affiche le cas échéant le type d'algorithmes de chiffrement utilisé pour cet appel.
Comment intégrer cette fonctionnalité dans mon application ?
La fonctionnalité est disponible à partir des versions 4.7 pour iOS et Android, 4.5 pour macOS, windows et Linux, et 5.X pour le SDK.
Le code source du module de chiffrement post quantique est accessible publiquement sur notre Gitlab.
Une grande partie du code source a également été écrite directement dans la librairie Liblinphone.
Les développeurs qui développement leur application au-dessus de Linphone doivent activer la fonctionnalité au niveau applicatif. Cela peut être fait en dur dans le code source, ou par configuration distante.
Pour les développeurs qui se basent sur la librairie Liblinphone ou le SDK, le module de chiffrement post quantique doit être activé à la compilation. Nos SDK précompilés n'embarquent pas ce module.
Pour plus d'informations, consultez notre article wiki.
D'un point de vue licence, le module de chiffrement post quantique peut être intégré soit dans un projet open source sous les termes de la ligne GNU GPLv3, soit dans un projet en sources fermées via l'achat d'une licence de code source. Ce module est venu comme une extension à la licence Linphone ou Liblinphone.
Contactez-nous pour plus d’informations !