Vulnérabilités de Bitcoin
Bitcoin est potentiellement vulnérable aux quelques types d'attaques.
Sommaire
Les problèmes potentiels[modifier]
La porte-monnaie est faiblement protégée contre les vols[modifier]
La porte-monnaie n'est pas chiffrée par défaut. En raison de ça elle est un trophée aisé pour les malfaiteurs. Cependant, les dernières versions de Bitcoin-clients contiennent des codes pour la protection des données de la porte-monnaie, mais l'utilisateur doit brancher manuellement ce code.
On peut rompre la nouvelle porte-monnaie par un mot de passe précédent via backups[modifier]
On peut renouveler facilement un copie et un mot de passe précédents de la porte-monnaie avec création d'un programme de reprise (par exemple, Apple Time-Machine): la porte-monnaie et le code courants reprisent une porte-monnaie et un code précédents. C'est pourquoi un fréquent changement du mot de passe ne garantit pas une sécurité complète.
La résolution du problème. Les créateurs du crypto-monnaie doivent changer tous de sorte qu'un changement du mot de passe de la porte-monnaie crée automatiquement une nouvelle porte-monnaie avec un nouveau mot de passe, et matelas de sécurité accumulés doivent être automatiquement transférés à une nouvelle porte-monnaie. Dans le même temps lors des renouvellements d'un copie de porte-monnaie précédente et mot de passe seront inutilisable. D'autre part, les utilisateurs qui sont débutants dans les ténuités techniques de création de porte-monnaie, ne pourront pas repriser les données de leurs matelas du crypto-monnaie et vont perdu des Bitcoins avec une porte-monnaie.
Traçage d'une histoire des transactions monétaires[modifier]
Le traçage d'une histoire des transactions monétaires peut être utilisé pour l'identification de l'adresse. Il ne faut pas oublier que Bitcoin n'est pas un mode de paiement absolument anonyme.
Attaque de Sibilla[modifier]
Le pirate informatique peut essayer de remplir le réseau avec des nœuds sous son obédience, et d'autres utilisateurs pourront se connecter uniquement aux blocs créés pour la fraude. Comment ça se passe-t-il?
- L'attaquant bloque les transactions des autres utilisateurs en vous déconnectant d'un réseau commun.
- L'attaquant vous connecte juste aux blocs crées par lui dans un réseau individuel. Grâce à cela les transactions vont apparaitre. Ces transactions vont aussi ré-envoyer de l'argent (double-spending).
- L'attaquant peut voir toutes vos transactions avec l'aide d'un programme spécial.
Attaques Denial-of-Service (DoS)[modifier]
L’envoi d'un grand nombre de données "ordures" sur le nœud qui traite les transactions, peut faire son travail plus compliqué. Bitcoin a une protection intégrée contre des attaques telles que "denial-of-service", mais aujourd'hui, ce type d'attaques devient de plus en plus difficile à bloquer.
Par exemple, le Bitcoin Satoshi client 0.7.0 bloque tous les nœuds et les transactions suspects, il ne permet pas le doublage des transactions, il contrôle l'apparition de l'attaque DoS, il attrape des malfaiteurs dans le système, corrige les erreurs etc. La dernière version du 8ème Bitcoin Satoshi client possède la possibilité de capturer des transactions non standards (plus de 100 kilo-bytes) et la possibilité de répartir l'information sur sa distribution dans le mémoire et sur la disque.
Freinage du temps[modifier]
Les pirates informatiques attaquent le réseau et ralentissent le temps au sein du réseau, ce qui rend difficile de transférer de données et des messages entre les utilisateurs, mettre à jour les informations dans le réseau, la formation des blocs et des chaînes et leurs fixage par les participants des transactions.
La vulnérabilité des transactions[modifier]
Malgré le fait que les transactions sont signées au Bitcoin, cette signature ne couvre pas toutes les informations qui sont hachées pour produire un hach de la transaction. En fait, il existe une possibilité de l'échange des paramétrés de la transaction afin que le hach sera changé, mais la signature reste la même. Sur cette base on peut organiser une attaque lors du retraite des fonds des services extérieures. Dans une transaction primaire on remplace l'identificateur, l'argent est arrivé au destinataire, mais il fait savoir dans la service de support technique que la transaction primaire n'est pas arrivée. Par conséquent, le service peut renvoyer des fonds.
Cette fonction du protocole de Bitcoin n'est pas considérée vulnérable, parce qu'on la sait depuis 2011, et elle peut être éliminée par la vérification des transactions primaires.
Les données illégales dans la chaîne de blocs[modifier]
Dans certains pays, le transfert de certaines données est considéré illégal. Les telles données peuvent être entrées dans les transactions de Bitcoin. Cela, à son tour, peut causer des problèmes avec la loi. Chaque nœud a des règles qui interdisent les données délibérées (non standards) mais une petite "faute" intervient le réseau de loin en loin.
Les problèmes de sécurité et les bugs[modifier]
Les bugs peuvent causer une instabilité dans la protection du système. Par exemple, il faut reprise l'information dans le nœud en très court délai. Si en raison d'un bug ce n'est pas arrivé, la chaîne manque de l'information nécessaire, des données incorrectes ont commencé à se diffuser au sein du réseau etc. Tout ceci risque de provoquer une interruption du travail du réseau pendant quelques heures. Les versions modernes de Bitcoin-clients sont créées compte tenu du fait qu’ils auront besoin de répondre aux bugs et corriger l'erreur à temps.
Les problèmes de l'avenir[modifier]
Rupture de hach-fonction[modifier]
Les algorithmes pour calculer une hach-fonction SHA-256 et ECDSA sont considérés comme tels qu'ils sont impossibles à rompre sur les puissances courantes de l'ordinateur. L'apparition des ordinateurs quantiques à grande capacité de production augmentera le risque de rompre de données des fonctions. Dans ce cas on peut remplacer une hach-fonction de Bitcoin avec une telle fonction plus complexe.
Augmentation du nombre des utilisateurs[modifier]
Le réseau Bitcoin viendra à bout de l'afflux des utilisateurs. Mais si chaque utilisateur commence à utiliser des programmes spéciaux pour cacher leurs adresses IP (qui sont disponibles à d'autres utilisateurs), le réseau ne fonctionnera pas.
Les problèmes possibles avec segmentation et perte des transactions[modifier]
On peut avoir des difficultés avec la division des blocs et nœuds, ainsi que la confusion dans les transactions et la perte de certaines d'entre elles. Les développeurs de Bitcoin suivent au maximum sur la possibilité d'apparition des tels problèmes et créent des codes spéciaux qui empêchent les difficultés dans le réseau.
Capture du réseau par les pirates informatiques[modifier]
Si les pirates informatiques capturent la moitié de puissance de l'ordinateur (la soi-disant "attaque > 50%"), ils peuvent écorner le travail: intégrer des blocs avec des transactions "sales", mettre en œuvre double-spending, éliminer les experts du mining des blocs, bloquer des transactions etc. Cependant, les pirates informatiques ne feront jamais les opérations suivantes:
- Annuler une transaction,
- Bloquer l'envoie de transaction,
- Changer le nombre des pièces pour la fermeture du bloc,
- Créer les pièces de l'air,
- Envoyer les pièces qui leur n'appartiennent pas.
Spam-transactions et transactions "sucettes"[modifier]
Les pirates informatiques peuvent envoyer aux utilisateurs des fausses transactions en faisant le travail du système plus complexe. L'envoi des "sucettes" est possible pour la création des erreurs intermittentes dans le fonctionnement du réseau.
Ce n'est pas un problème[modifier]
Génération d'un surnombre des adresses[modifier]
La quantité des adresses n'influencent pas le fonctionnement du réseau. Cela peut faire du volume sur la disque dur ou ramasser des ressources du processeur central de l'ordinateur d'un certain utilisateur.
Génération des blocs avec une complexité diminuée[modifier]
Le malfaiteur peut hypothétiquement créer une chaîne des faux blocs avec une complexité diminuée. Ces blocs seront valables pour le réseau, mais leur chaîne ne sera pas apte de se connecter à d'autres chaînes dans le réseau, puisque le reste des nœuds peut vérifier que c'est un bloc de complaisance (voir Proof-of-work). Le réseau va bloquer ces blocs frauduleux.