Une mauvaise implémentation d’Ed25519, un algorithme de signature numérique populaire, a laissé des dizaines de bibliothèques de cryptographie vulnérables aux attaques.

Selon Konstantinos Chalkias, cryptographe chez MystenLabs qui découvert et signalé la vulnérabilitéles attaquants pourraient exploiter le bogue pour voler les clés privées des portefeuilles de crypto-monnaie.

Certaines technologies vulnérables, mais pas encore toutes, ont été corrigées.

Où est votre Ed ?

Ed25519 est souvent utilisé comme remplacement moderne de l’algorithme de signature numérique à courbe elliptique (ECDSA). Ed25519 est plus ouvert, sécurisé et plus rapide que ECDSA, c’est pourquoi il est devenu très populaire dans de nombreux secteurs, en particulier dans les plateformes de blockchain et de crypto-monnaie.

« Les principaux avantages par rapport à l’ECDSA sont que l’EdDSA sig[nature]s sont déterministes et les utilisateurs n’ont pas besoin [access to] un générateur de nombres aléatoires sécurisé [RNG] pour signer une transaction », a déclaré Chalkias La gorgée quotidienne. « Pourquoi est-ce utile ? parce que l’ordinateur portable ou l’appareil IoT d’un utilisateur peut ne pas avoir une bonne source d’entropie ou prendre en charge une fonction RNG faible.

De nombreux incidents de sécurité ont montré qu’une mauvaise génération aléatoire peut entraîner la fuite ou le vol de clés privées. Un exemple notable était le fuites de clés privées de PlayStation 3dont la technologie repose sur l’algorithme ECDSA.

Pré-calcul des clés publiques

La spécification standard de la signature de message Ed25519 implique de fournir à l’algorithme un message et une clé privée. La fonction utilisera la clé privée pour calculer la clé publique et signer le message. Certaines bibliothèques fournissent une variante de la fonction de signature de message qui prend également la clé publique précalculée comme paramètre d’entrée. Il y a quelques avantages à cette mise en œuvre.

« Recalculer la clé publique à chaque fois entraînerait un algorithme plus lent (il ajoute un scalaire supplémentaire à la multiplication des points de la courbe elliptique pour dériver la clé publique, ce qui réduit la vitesse de près de 2 fois, ce qui la rend potentiellement encore plus lente que l’ECDSA) », a déclaré Chalkias. .

« Et généralement, en cryptographie, c’est une bonne hygiène d’éviter d’accéder plusieurs fois à la clé privée. Si nous autorisons la dérivation de la clé publique sur chaque invocation de signature, cela implique que nous devons y accéder deux fois, une fois pour signer et une fois pour dériver la clé publique.

Cependant, la modification crée également une faille de sécurité dans la bibliothèque.

Chalkias a découvert que certaines bibliothèques autorisaient des clés publiques arbitraires comme entrées sans vérifier si la clé publique d’entrée correspond à la clé privée d’entrée. Cette lacune signifie qu’un attaquant pourrait utiliser la fonction de signature comme un Oracle, effectuer une crypto-analyse et finalement accéder à des secrets. Par exemple, un attaquant qui ne peut pas accéder à la clé privée mais qui peut accéder au mécanisme de signature via un appel d’API pourrait utiliser plusieurs clés et messages publics pour acquérir progressivement des informations sur les paramètres de la clé privée.

Bibliothèques en danger

Chalkias initialement trouvé 26 bibliothèques vulnérables à l’attaque. La liste était plus tard étendu à 40 bibliothèques. Le chercheur en sécurité a également découvert plusieurs services en ligne vulnérables au même type d’attaque, notamment une API fintech.

« Dans certaines applications, lorsque keyGen échoue ou un processus de nettoyage supprime le cléprivée pour cet utilisateur, l’application réessaie généralement keyGen. Mais en attendant et pendant quelques secondes[ond]s, la BD [database] encore stocké l’ancien <ID de l’utilisateur, pubCléVieux>, et cela a permis une fenêtre étroite pour les attaques de conditions de concurrence avant que la base de données ne soit mise à jour avec le nouveau pubKey (un scénario que, étonnamment, nous avons réussi à exploiter avec une probabilité significative) », Chalkias c’est noté.

Depuis son rapport, plusieurs bibliothèques ont mis en place des correctifs et des solutions de contournement, notamment ed25519-elisabeth, PASETOet Portefeuille Trezor.

« Quelques bibliothèques [have] déjà fourni des correctifs (s’ils étaient vulnérables) ou ajouté de manière proactive des vérifications supplémentaires que la clé de pub stockée correspond aux clés privées », a conclu Chalkias.