Saviez-vous qu'une clé privée Bitcoin est un nombre de 256 bits ? Cela signifie qu'il existe environ 2^256 combinaisons possibles — un nombre si vaste qu'il dépasse le nombre total d'atomes dans l'univers observable. Les clés privées sont la pierre angulaire de la sécurité des crypto-monnaies, servant d'équivalent cryptographique à un mot de passe maître pour vos actifs numériques. Leur sécurité repose fortement sur l'aléatoire ou l'entropie, qui est cruciale dans leur génération. L'entropie est mesurée en bits, quantifiant le degré d'aléatoire ou d'incertitude d'un système.
Pour vous donner une idée de l'importance de l'aléatoire, considérez ceci : une faible entropie dans la génération des clés privées a conduit à des vulnérabilités importantes et même à des piratages. En 2024, plus de 239 millions de dollars ont été perdus en raison de clés privées compromises, soulignant à quel point il est crucial de s'assurer que ces clés sont générées avec une entropie de haute qualité.
Alors, si une clé privée Bitcoin n'est qu'un nombre, combien de temps faudrait-il à un superordinateur pour la craquer par brute force ? Restez jusqu'à la fin de cet article pour découvrir la réponse.
Qu'est-ce que l'entropie ?
L'entropie est une mesure de l'aléatoire ou de l'imprévisibilité, et elle est cruciale pour générer des clés cryptographiques sécurisées. Le concept provient de la théorie de l'information, où l'entropie quantifie l'incertitude dans un système. En termes plus simples, plus quelque chose est imprévisible, plus son entropie est élevée.
Une entropie élevée est essentielle pour les clés privées en crypto-monnaie car elle garantit que les clés sont pratiquement impossibles à deviner ou à forcer par brute force. Cet aléatoire est souvent dérivé de diverses sources, y compris des événements matériels, du bruit environnemental, ou des interactions utilisateur comme les mouvements de souris et les frappes au clavier. Le système d'exploitation regroupe ces événements imprévisibles pour générer un nombre véritablement aléatoire qui forme la base d'une clé privée sécurisée.
Sans une entropie suffisante, les clés générées pourraient devenir prévisibles, les rendant vulnérables aux attaques. Par exemple, si la source d'entropie est défectueuse, elle pourrait produire les mêmes sorties ou des sorties similaires de manière répétée, permettant potentiellement aux attaquants de prédire ou de recréer la clé privée.
Cet aléatoire est si critique que même des systèmes sophistiqués comme les plateformes cloud et les machines virtuelles utilisent du matériel dédié pour assurer un approvisionnement fiable en entropie de haute qualité pour les opérations cryptographiques.
Comment fonctionne l'entropie ?
Dans les portefeuilles matériels, l'entropie est cruciale pour générer des clés privées sécurisées. Voici comment cela fonctionne :
Source d'entropie
Les portefeuilles matériels comme le Portefeuille Tangem disposent de générateurs de nombres aléatoires matériels (HRNGs) dédiés. Ces dispositifs génèrent de l'aléatoire en mesurant des phénomènes physiques comme le bruit électronique ou les variations thermiques. Cette entropie brute est essentielle pour créer des clés privées imprévisibles. Certains portefeuilles matériels permettent aux utilisateurs de contribuer à l'entropie en saisissant manuellement des données aléatoires, comme des lancers de dés. Bien que le mélange de l'entropie contrôlée par l'utilisateur avec l'entropie générée par le matériel puisse ne faire aucune différence ou n'avoir aucun impact sur le degré d'entropie, c'est un ajout amusant.
Génération de clés
Une fois suffisamment d'entropie collectée, le portefeuille l'utilise pour générer une clé privée. Ce processus implique souvent la combinaison de l'entropie avec des algorithmes cryptographiques comme SHA-256 pour produire une clé de 256 bits. De nombreux portefeuilles matériels utilisent la norme BIP39 pour générer une phrase mnémotechnique (une série de 12 à 24 mots) à partir de l'entropie. Cette phrase peut être utilisée pour récupérer la clé privée si nécessaire.
Sécurité du processus
Le firmware du portefeuille s'assure que l'entropie est mélangée de manière approfondie pour éviter toute prévisibilité. Il stocke ensuite la clé privée de manière sécurisée dans un environnement résistant aux altérations à l'intérieur de l'appareil. C'est pourquoi la plupart des portefeuilles matériels disposent d'un élément sécurisé certifié CC. Le firmware de Tangem a également été soumis à deux audits approfondis par d'éminents organismes de sécurité indépendants : Kudelski Security et Riscure. En général, les portefeuilles matériels isolent les processus de génération d'entropie et de stockage des clés du reste des opérations de l'appareil. Cette séparation minimise le risque d'exposition cruciale aux logiciels malveillants ou à d'autres menaces externes.
Sauvegarde et récupération
La phrase mnémotechnique générée à partir de l'entropie peut être notée et conservée en toute sécurité. Cette phrase est cruciale pour récupérer le portefeuille si l'appareil est perdu ou endommagé. La phrase elle-même contient l'entropie utilisée pour générer la clé, ce qui en fait une méthode de sauvegarde sécurisée.
Les portefeuilles matériels s'appuient sur une entropie de haute qualité pour s'assurer que les clés privées qu'ils génèrent sont sécurisées et résistantes aux attaques, ce qui en fait l'une des méthodes les plus sûres pour stocker des crypto-monnaies.
Pourquoi l'entropie est-elle importante ?
Comme elles contiennent les mêmes informations mais dans des formats différents, votre entropie doit rester aussi privée que votre seed phrase. Pour répéter, quiconque a accès à votre entropie peut accéder à l'intégralité de votre portefeuille !
Tout comme votre seed phrase donne à quelqu'un l'accès à toutes vos clés privées et, par conséquent, à chaque compte protégé par ce portefeuille, il en va de même pour votre entropie ! Ainsi, il est impératif pour la sécurité de s'assurer que votre entropie soit aussi aléatoire que possible et difficile à déterminer.
Vous ne voudriez pas que quelqu'un devine votre entropie et obtienne l'accès à vos fonds, n'est-ce pas ? Eh bien, c'est exactement pour cela que ce nombre doit être si difficile à deviner. Il devrait être si aléatoire que deviner la séquence ou rencontrer la même combinaison deux fois serait statistiquement impossible.
Si votre entropie est facile à deviner, les pirates en profiteront et pourront avoir accès à vos fonds. Ainsi, choisir un portefeuille de crypto-monnaies qui prend cela en compte est extrêmement important.
Comprendre l'entropie et les seed phrases
Le caractère aléatoire de votre seed phrase est crucial pour maintenir la sécurité. Sélectionner manuellement des mots ou utiliser des modèles prévisibles affaiblirait considérablement les défenses de votre portefeuille. La méthode basée sur l'entropie employée par Tangem assure un niveau d'aléatoire essentiel pour une protection robuste contre diverses attaques crypto.
Bien que Tangem fournisse les outils pour une génération sécurisée d'entropie, il est important de rappeler que la protection de votre seed phrase est votre responsabilité. Ne partagez jamais cette information avec qui que ce soit, pas même avec les représentants de Tangem. Votre seed phrase est la clé de vos actifs numériques, et son secret est vital pour maintenir la sécurité de votre portefeuille.
L'exploit de Trust Wallet : Pourquoi une grande entropie est importante
Lors du choix d'un portefeuille de crypto-monnaies, vous devez prioriser la façon dont votre portefeuille génère l'aléatoire. La faille de sécurité dans Trust Wallet en 2022 était largement attribuée à la nature prévisible de la génération d'entropie du portefeuille. SecBit a fait un excellent travail de recherche et d'explication de cette vulnérabilité dans leur article de blog : « Trust Wallet's Fomo3D Summer: Fresh Discovery of Low Entropy Flaw From 2018 », mais nous allons souligner ici les points essentiels. La plateforme iOS de Trust Wallet s'appuyait sur la bibliothèque trezor-crypto pour générer des mots mnémotechniques BIP39. La bibliothèque contenait un code d'exemple qui n'aurait jamais dû être utilisé dans un environnement réel. Le code comportait un avertissement indiquant qu'il ne devait pas être utilisé en situations réelles, seulement pour des tests.
1.Le code a deux parties principales : random32() et random_buffer().
2. random32() :
- Cette partie crée des nombres aléatoires, mais d'une manière peu sécurisée.
- Elle utilise l'heure actuelle pour démarrer le processus de création de nombres aléatoires.
- Le problème est que si vous connaissez approximativement quand le nombre a été créé, vous pourriez le deviner.
- Pire encore, si deux personnes créent des nombres à la même seconde exacte, elles obtiendront le même nombre « aléatoire ».
3. random_buffer() :
- Cette partie remplit un espace avec des octets aléatoires (unités de données).
- Elle utilise random32() pour cela, donc elle a les mêmes problèmes de sécurité.
4. Le gros problème :
- Ce code était utilisé pour créer des seed phrases donnant accès aux portefeuilles de crypto-monnaies des utilisateurs.
- Comme son aléatoire n'est pas vraiment aléatoire, il était beaucoup plus facile pour les pirates de deviner ces phrases qu'elles ne devraient l'être.
- Au lieu de deviner parmi des millions de possibilités, ils devaient deviner parmi quelques milliers (basées sur les moments possibles où la phrase a été créée).
5. L'erreur :
- Trust Wallet a ignoré cet avertissement et a quand même utilisé le code.
- Cela signifiait que l'entropie pour les phrases utilisées pour créer les portefeuilles des utilisateurs était beaucoup plus facile à recréer qu'elle n'aurait dû l'être.
La récente faille de sécurité dans Trust Wallet nous rappelle l'importance vitale d'une forte génération d'entropie pour protéger les portefeuilles de crypto-monnaies. Trust Wallet a résolu le problème en indemnisant les utilisateurs pour leurs pertes.
Comment le Portefeuille Tangem génère de l'entropie
Le Portefeuille Tangem offre une sécurité robuste pour vos actifs crypto, à commencer par son processus de génération d'entropie. Le portefeuille utilise un générateur de nombres véritablement aléatoires certifié, minutieusement testé par des experts indépendants. Cela garantit que les nombres générés sont imprévisibles, protégeant ainsi vos actifs contre d'éventuelles attaques.
Combien de temps faudrait-il pour forcer par brute force une clé privée Bitcoin ?
Pour répondre à cette question, décomposons le processus et considérons l'ampleur de la tâche :
Une clé privée Bitcoin n'est en effet qu'un nombre, mais il est extrêmement grand. Plus précisément, c'est un nombre de 256 bits, ce qui signifie qu'il y a 2^256 clés privées possibles.
Même avec les superordinateurs les plus puissants disponibles aujourd'hui, forcer par brute force une clé privée Bitcoin prendrait un temps inimaginablement long. Nous parlons d'échelles de temps bien plus longues que l'âge de l'univers.
En supposant qu'un superordinateur puisse vérifier 1 billion (10^12) de clés par seconde, trouver une seule clé privée prendrait encore environ 3,67 x 10^57 années en moyenne. L'univers a environ 13,8 milliards d'années (1,38 × 10^10 ans).
Ainsi, le temps nécessaire pour forcer par brute force une clé privée Bitcoin est environ 1,33 × 10^47 fois l'âge de l'univers.
Il est étonnant de voir ce que nous avons accompli sur une roche relativement jeune et humide appelée Terre.