Le micrologiciel Coldcard 5.6.1 force l'entropie de l'utilisateur dans chaque nouvelle graine après un exploit de 100 millions de dollars

Le micrologiciel Coldcard 5.6.1 force l'entropie de l'utilisateur dans chaque nouvelle graine après un exploit de 100 millions de dollars

Coinkite a publié un nouveau firmware Coldcard qui oblige les utilisateurs à fournir leur propre caractère aléatoire lors de la génération de nouvelles graines de portefeuille.

Coinkite, la société derrière Coldcard, a expédié une mise à jour du micrologiciel qui ne générera pas de nouvelle graine de portefeuille tant que le propriétaire n'aura pas fourni manuellement le caractère aléatoire.

Cela signifie qu'au moins 50 lancers de dés, 128 lancers de pièces ou 65 pressions de touches chronométrées, trois semaines après qu'un défaut dans son générateur de nombres aléatoires ait ouvert les fonds des clients aux attaquants.

Les deux gammes d'appareils de Coldcard exécutent des pistes de micrologiciel distinctes, de sorte que la version porte deux numéros, 5.6.1 pour les Mk4 et Mk5, et 1.5.1Q pour le Q, le plus grand modèle avec un clavier et une numérisation QR.

La vérification du démarrage cible le défaut

Coinkite a déclaré que l'entrée est ajoutée au caractère aléatoire de l'appareil provenant du STM32 TRNG et des deux éléments sécurisés.

Coldcard a été conçu pour extraire l'entropie de départ uniquement de son générateur matériel, mais Coinkite a attribué l'échec à une erreur de construction et de liaison qui a laissé le paramètre destiné à désactiver le chemin logiciel sans effet, envoyant l'appel aléatoire au Yasmarang PRNG de MicroPython, qui est entré dans le chemin de départ en mars 2021.

Les graines concernées contiennent environ 72 bits d'entropie au lieu des 128 bits attendus après que 594,5 BTC aient été balayés sur 500 adresses le 30 juillet.

Le micrologiciel 5.6.1 vérifie désormais au démarrage que l'appel à numéro aléatoire atteint le chemin matériel prévu, arrêtant le périphérique en cas de panne. Coinkite a remplacé Yasmarang par un SHA-256 Hash_DRBG, spécifié dans NIST SP 800-90A, et l'ensemence au démarrage avec un résumé complet de 256 bits des deux éléments sécurisés, que le micrologiciel précédent avait tronqué à 32 bits.

Vous aimerez peut-être aussi :

Le brassage des touches suit la conception RNG à bouton-poussoir de Peter Todd, hachant le timing des pressions sur le clavier à la résolution du cycle CPU. La première pression fixe une référence, et chacun des 64 écarts qui suivent est crédité de deux bits d'entropie.

Les vieilles graines doivent encore être migrées

« L'installation de cette mise à jour ne rend pas sûre une graine vulnérable existante », a écrit Coinkite, ordonnant à toute personne dont la graine aurait pu être générée sur le micrologiciel concerné entre 2021 et juillet 2026 de créer un remplacement et de déplacer son Bitcoin (BTC). Mk2 et Mk3 ne sont pas concernés par cette version et leur version fixe minimale reste à 4.2.0.

Un hôte USB compromis pouvait réécrire une transaction effectuée une fois que le propriétaire l'avait approuvée, de sorte que la signature couvrait différentes sorties. L'appareil revérifie désormais ces octets avant de signer et s'arrête avec un avertissement « Transaction modifiée ».

La nouvelle page d'état de sécurité de Coinkite répertorie quatre examens indépendants, parmi lesquels un test sur appareil réel qui a observé huit lectures RNG matérielles pour une demande de départ de 32 octets et une reconstruction correspondant à chaque octet du micrologiciel signé.

La société a noté que les contrôles ne constituent « pas un audit complet de chaque binaire du micrologiciel ». Comme l'a rapporté CryptoPotato, les pertes confirmées ont dépassé 100 millions de dollars, Galaxy Research comptant 1 596 BTC sur environ 7 300 adresses et une quatrième vague présumée balayant près de 449 BTC le 3 août.

Voir l’article original en anglais