De multiples implémentations du mécanisme d’encapsulation de clé Kyber pour un cryptage à sécurité quantique sont vulnérables à un ensemble de failles collectivement appelées KyberSlash, qui pourraient permettre la récupération de clés secrètes.
CRYSTALS-Kyber est l’implémentation officielle du mécanisme d’encapsulation de clé Kyber (KEM) pour algorithme de sécurité quantique (QSA) et fait partie de la suite d’algorithmes CRYSTALS (Cryptographic Suite for Algebraic Lattices).
Il est conçu pour le cryptage général et fait partie de la sélection d’algorithmes du National Institute of Standards and Technology (NIST) conçus pour résister aux attaques des ordinateurs quantiques.
Certains projets populaires utilisant des implémentations de Kyber sont Mullvad VPN et Signal Messenger. Ce dernier a annoncé l’année dernière qu’il adoptait le CRYSTALS-Kyber KEM comme couche supplémentaire que les attaquants doivent casser pour calculer les clés qui protègent les communications des utilisateurs.
Les failles KyberSlash sont des attaques basées sur le timing résultant de la façon dont Kyber effectue certaines opérations de division dans le processus de décapsulation, permettant aux attaquants d’analyser le temps d’exécution et d’en déduire des secrets qui pourraient compromettre le cryptage.
Si un service implémentant Kyber autorise plusieurs demandes d’opération vers la même paire de clés, un attaquant peut mesurer les différences de synchronisation et calculer progressivement la clé secrète.
Les morceaux de code problématiques qui rendent les vulnérabilités KyberSlash (KyberSplash1 et KyberSplash2) ont été découverts par Goutam Tamvada, Karthikeyan Bhargavan et Franziskus Kiefer-chercheurs de Cryspen, un fournisseur d’outils de vérification et de logiciels mathématiquement éprouvés.
Dans une démo KyberSlash1 sur un système Raspberry Pi, les chercheurs ont récupéré la clé secrète de Kyber à partir des minutages de déchiffrement dans deux tentatives sur trois.
Effort de réparation en cours
Les analystes de Cryspen ont découvert KyberSlash1 fin novembre dernier et l’ont signalé aux développeurs de Kyber, qui ont poussé un correctif pour KyberSlash1 le 1er décembre 2023.
Cependant, le correctif n’a pas été étiqueté comme un problème de sécurité, et ce n’est que le 15 décembre que Cryspen a adopté une approche plus publique et a commencé à informer les projets impactés dont ils avaient besoin pour mettre à niveau leurs implémentations Kyber.
Le 30 décembre, KyberSlash2 a été corrigé à la suite de sa découverte et de son reportage responsable par Prasanna Ravi et Matthias Kannwischer.
Au 2 janvier 2024, la liste des projets ci-dessous a été identifiée comme touchée par le problème et avait le statut de correction suivant:
- pq-cristaux / kyber / ref – entièrement patché
- symbolicsoft / kyber-k2so – entièrement patché
- aws / aws-lc / crypto / kyber, branche principale – entièrement corrigée
- zig/lib/std/cryptogramme/kyber_d00.zig – entièrement patché
- liboqs / src / kem / kyber-patché uniquement pour KyberSlash1
- aws / aws-lc / cryptographie / chiffrement, norme fips-2022-11-02 branche corrigée uniquement pour KyberSlash1
- randombit / botan-patché uniquement pour KyberSlash1
- mupq / pqm4 / crypto_kem / kyber-patché uniquement pour KyberSlash1
- antontutoveanu / cristaux-kyber-javascript-non patché
- Argyle-Logiciel / kyber-non patché
- debian / src / liboqs / unstable/src/kem / kyber – non patché
- kudelskisecurity / cristaux-go – pas encore de patch
- PQClean/PQClean / crypto_kem / kyber – aarch64-non corrigé
- PQClean/PQClean / crypto_kem / kyber / nettoyer-non corrigé
- rustpq / pqcrypto / pqcrypto-kyber (utilisé dans le signal) – non patché
De plus, les bibliothèques suivantes sont marquées comme non impactées car elles n’ont pas de divisions avec des entrées secrètes:
- boringssl/crypto/kyber
- filippo.io/mlkem768
- formosa-crypto/libjade/tree/main/src/crypto_kem/kyber/common/amd64/avx2
- formosa-crypto/libjade/tree/main/src/crypto_kem/kyber/common/amd64/ref
- pq-crystals/kyber/avx2
- pqclean/crypto_kem/kyber/avx2
Le pire scénario est la fuite de la clé secrète, mais cela ne signifie pas que tous les projets utilisant Kyber sont vulnérables aux fuites de clés.
Les répercussions de KyberSlash dépendent de la mise en œuvre de Khyber et peuvent varier en fonction des cas d’utilisation pratiques et des mesures de sécurité supplémentaires.
Par exemple, Mullvad dit que KyberSlash n’a pas d’impact sur son produit VPN car ils utilisent des paires de clés uniques pour chaque nouvelle connexion au tunnel, ce qui rend impossible d’effectuer une série d’attaques temporelles contre la même paire.
Breachtrace a contacté Signal pour en savoir plus sur l’impact réel de Cyber Slash sur sa cryptographie et les communications des utilisateurs, ainsi que sur les plans de remédiation du projet, mais aucun commentaire n’était immédiatement disponible.