Minerva: une série de vulnérabilités dans les implémentations ECDSA / EdDSA

Minerva

Des chercheurs de l'Université Masaryk ont ​​révélé des informations important sur les vulnérabilités dans divers jeImplémentations de l'algorithme de génération de signature numérique ECDSA / EdDSA, qui permet de récupérer la valeur de la clé privée sur la base de l'analyse des fuites d'informations sur les bits individuels qui apparaissent lors de l'application de méthodes d'analyse via des canaux tiers. Les vulnérabilités portent le nom de code Minerva.

Les projets les plus connus qui affectent la méthode d'attaque proposée est OpenJDK, OracleJDK (CVE-2019-2894) et la bibliothèque libgcrypt (CVE-2019-13627) utilisé dans GnuPG. Les problèmes sont également sensible aux bibliothèques MatrixSSL, Crypto ++, wolfCrypt, elliptique, jsrsasign, Python-ECDSA, ruby_ecdsa, fastecdsa et aussi quelques cartes à puce Athena IDProtect, carte blindée TecSec, SafeNet eToken 4300, valide S / A IDflex V.

Outre les vulnérabilités mentionnées pour le moment, elles ne sont pas affectées OpenSSL, Botan, mbedTLS et BoringSSL. Mozilla NSS, LibreSSL, Nettle, BearSSL, cryptlib, OpenSSL en mode FIPS. Microsoft .NET crypto, le noyau Linux libkcapi, Sodium et GnuTLS n'ont pas encore été testés.

Nous avons trouvé des implémentations qui perdent la longueur en bits du scalaire lors de la multiplication scalaire dans ECC. Cette fuite peut sembler minuscule car la longueur en bits a une très petite quantité d'informations présentes dans le scalaire. Cependant, dans le cas de la génération de signature ECDSA / EdDSA, filtrer la longueur en bits du nonce aléatoire est suffisant pour la récupération complète de la clé privée utilisée après avoir observé quelques centaines à quelques milliers de signatures dans des messages connus, du fait de l'application de certaines techniques.

Nous pensons que toutes les cartes précédentes sont affectées car elles partagent un composant ECDSA commun (module FIPS 214), qui est décrit comme composant Athena OS2 ECDSA755 dans Inside Secure AT90SC A1.0 (Firmware). Nous avons testé la vulnérabilité uniquement sur la carte Athena IDProtect avec des données CPLC et ATR

Le problème est causé par la possibilité de déterminer les valeurs de bit individuelles pendant la multiplication par un scalaire pendant les opérations ECC. Des méthodes indirectes, telles que l'estimation du délai d'exécution des calculs, sont utilisées pour extraire les informations sur les bits.

Une attaque nécessite un accès non privilégié à l'hôte dans lequel la signature numérique est générée (une attaque à distance n'est pas exclue, mais elle est très compliquée et nécessite une grande quantité de données pour l'analyse, elle peut donc être considérée comme peu probable)

Malgré la petite taille de la fuite, pour ECDSA définir ne serait-ce que quelques bits avec des informations sur le vecteur d'initialisation (nonce) est suffisant pour mener une attaque pour restaurer séquentiellement la clé privée complète.

Selon les auteurs de la méthode, pour une récupération de clé réussie, l'analyse de plusieurs centaines à plusieurs milliers de signatures numériques générées est suffisante pour les messages connus de l'attaquant. Par exemple, pour déterminer la clé privée utilisée dans la carte à puce Athena IDProtect basée sur la puce Inside Secure AT90SC, en utilisant la courbe elliptique secp256r1, 11 30 signatures numériques ont été analysées. Le temps d'attaque total était de XNUMX minutes.

Notre code d'attaque et notre preuve de concept sont inspirés de la méthode Brumley & Tuveri.

Le problème a déjà été corrigé dans libgcrypt 1.8.5 et wolfCrypt 4.1.0, d'autres projets n'ont pas encore généré de mises à jour. Il est également possible de retracer le correctif de vulnérabilité dans le package libgcrypt dans les distributions sur ces pages: Debian, Ubuntu, RHEL, Fedora, openSUSE / SUSE, FreeBSD, Arch.

Les chercheurs ont également testé d'autres cartes et bibliothèques, dont les suivantes ne sont pas vulnérables:

  • OpenSSL 1.1.1d
  • Château gonflable 1.58
  • BoringSSL 974f4dddf
  • libtomcrypt 1.18.2
  • Botanique 2.11.0
  • Microsoft GNC
  • mbedTLS 2.16.0
  • Crypto-monnaie Intel IPP

Cartes

  • ECS ACOSJ 40K
  • Feitien A22CR
  • G&D SmartCafe 6.0
  • G&D SmartCafe 7.0
  • Infineon CJTOP 80K INF SLJ 52GLA080AL M8.4
  • Carte JCard universelle Infineon SLE78
  • NXP JCOP31 v2.4.1
  • NXP JCOP CJ2A081
  • NXP JCOP v2.4.2 R2
  • NXP JCOP v2.4.2 R3
  • Voûte SIMOME TaiSYS

Si vous souhaitez en savoir plus sur l'attaque utilisée et les vulnérabilités détectées, vous pouvez le faire dans le lien suivant Les outils utilisés pour répliquer l'attaque sont disponibles en téléchargement.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.