Une faille de sécurité frappant la génération de clés cryptographiques
Une petite piqûre de rappel : la “crypto”, à la base, ce n’est pas (que) du trading ! NCC Group, groupe de conseil et d’audit spécialisé en cyber-sécurité, a annoncé le 14 juin au matin la découverte d’une faille affectant plusieurs implémentations de différents codes-sources servant de base aux systèmes cryptographiques générant et utilisant des clés privées de type DSA et ECDSA (DSA variante type courbe elliptique).
Pour casser tout suspense dès le départ, et vous éviter une montée de tachycardie, vous pouvez prendre tout de suite note des librairies cryptographiques affectées, qui ne concernent à priori pas Trezor ou Ledger.
La faille du jour concerne donc à la base un certain nombre de librairies cryptographiques, dont voici la liste communiquée : CryptLib (DSA/ECSDA), LibreSSL (DSA/ECSDA), Mozilla NSS (DSA/ECSDA), OpenSSL (DSA/ECSDA), Botan (ECDSA), WolfCrypt (ECDSA), Libgcrypt (ECDSA), LibTomCrypt (ECDSA), LibSunEC (ECDSA), MatrixSSL (ECDSA), BoringSSL (DSA).
Keegan Ryan de NCC Group détaille la faille dans le communiqué de presse, que je vais résumer très sommairement comme suit : Les systèmes de génération de ces clés privées de type DSA/ECDSA produisent en temps normal un certain nombre d’informations secondaires lors de la génération initiale.
Keegan Ryan rapporte qu’une vulnérabilité a été identifiée lors de cette étape primordiale : certaines de ces informations secondaires peuvent potentiellement être accessibles sur le moment, stockées temporairement en mémoire cache, à la manière d’une connexion SSH non sécurisée qui pourrait être attaquée et forcée par un attaquant.
What's better than a key extraction bug in a major crypto library? How about a key extraction bug in 11 major crypto libraries? My latest research: https://t.co/bTJZApvoS1
— Keegan Ryan (@inf_0_) June 13, 2018
L’auteur met à disposition plusieurs sources, en anglais, pour approfondir l’aspect technique de la faille : une discussion relativement accessible ici et un whitepaper complet ici.
Le problème principal identifié est qu’en récupérant une certaine quantité de ces informations initialement parcellaires, un attaquant qui arriverait à accéder au terminal servant à la génération des clés peut reconstituer la valeur d’une clé privée à partir de seulement quelques milliers de signatures parcellaires, ce qui d’après NCC Group classe la vulnérabilité comme moyenne.
En effet, l’attaque reste potentiellement mitigée par le fait que pour pouvoir être menée, le pirate en question devra passer par un type d’attaque spécifique, quoique les options sont encore larges au sein de cette classe d’attaque : les attaques par canal auxiliaire (side channel attack).
Ainsi l’attaque identifiée consiste à accéder par la mémoire cache au code que quelqu’un d’autre fait tourner sur son terminal, à partir du moment où l’on arrive à y accéder en même temps, ce qui peut justement potentiellement arriver pour les serveurs ou les machines virtuelles (VMs) dans le cloud par exemple. NCC Group précise que l’attaque demande un haut degré de spécialisation et, qu’à sa connaissance, aucun incident en rapport avec cette faille n’a encore été identifié.
Vous avez possiblement entendu parler de ce genre d’attaque dans le contexte de Bitcoin tout récemment, appelée ROHNP pour Return Of Hidden Number Problem, avec le partage récent, sur les réseaux sociaux, d’un moyen pour récupérer la clé privée d’un wallet Bitcoin sur Trezor à l’aide d’un oscilloscope. Cette découverte n’est néanmoins pas nouvelle puisqu’elle remonte à initialement 2015 (ici); cette vulnérabilité a déjà été patchée à l’époque. Depuis, d’autres travaux avaient été menés, confirmant sur certaines implémentations des fragilités (même procédé utilisable sur la librairie iOs CoreBitcoin en 2016 ici).
Concernant donc cette faille cryptographique au sens large, mais ne concernant pas nos hardwares wallets préférés, NCC Group annonce que les librairies LibreSSL, NSS, OpenSSL, WolfCrypt, Botan, Libgcrypt, MatrixSSL et BoringSSL ont depuis pris des mesures adaptées, et que des patches correctifs sont déjà distribués ou bien en cours de finalisation.
Sources : NCCgroup || Images from Shutterstock