Extraction de la clé privée d'Elliptic dans ECDSA lors de la signature d'une entrée malformée (par exemple, une chaîne de caractères)
Plateforme
nodejs
Composant
elliptic
Corrigé dans
6.6.1
### Résumé La clé privée peut être extraite de la signature ECDSA lors de la signature d'une entrée malformée (par exemple, une chaîne de caractères ou un nombre), qui pourrait, par exemple, provenir d'une entrée réseau JSON. Notez que `elliptic` accepte par conception les chaînes hexadécimales comme l'un des types d'entrée possibles. ### Détails Dans ce code : https://github.com/indutny/elliptic/blob/3e46a48fdd2ef2f89593e5e058d85530578c9761/lib/elliptic/ec/index.js#L100-L107 `msg` est une instance BN après la conversion, mais `nonce` est un tableau, et différentes instances BN pourraient générer des tableaux équivalents après la conversion. Cela signifie qu'un même `nonce` pourrait être généré pour différents messages utilisés dans le processus de signature, ce qui entraînerait une réutilisation de `k`, conduisant à l'extraction de la clé privée à partir d'une paire de signatures. Un tel message peut être construit pour toute paire message/signature déjà connue, ce qui signifie que l'attaque n'a besoin que d'un seul message malveillant signé pour une extraction complète de la clé. Bien que la signature de messages non vérifiés contrôlés par un attaquant serait problématique en soi (et l'exploitation de cette vulnérabilité nécessite un tel scénario), la signature d'un seul message ne _devrait pas_ divulguer la clé privée. De plus, la validation des messages pourrait avoir le même bogue (hors du champ d'application de ce rapport, mais pourrait être po
Comment corriger
Aucun correctif officiel disponible. Recherchez des alternatives ou surveillez les mises à jour.
Surveillez vos dépendances automatiquement
Recevez des alertes quand de nouvelles vulnérabilités affectent vos projets.
Commencer gratuitement