Les blockchains ont suscité un grand intérêt ces dernières années en raison de leur promesse de sécurité et de décentralisation. L'imaginaire collectif se les imagine donc comme totalement hors de portée des multiples cyberattaques qui en réalité, menacent la sécurité et l'intégrité de cette technologie...
Les blockchains ont suscité un grand intérêt ces dernières années en raison de leur promesse de sécurité et de décentralisation. L'imaginaire collectif se les imagine donc comme totalement hors de portée des multiples cyberattaques qui en réalité, menacent la sécurité et l'intégrité de cette technologie de stockage et de transmission de données. La blockchain est la base de nombreuses crypto-monnaies, mais ses applications s'étendent bien au-delà du domaine financier.
Une blockchain est constituée de blocs, chaque bloc contenant un ensemble de transactions ou d'informations. Chacun d'entre eux, lié au bloc précédent à l'aide d'une fonction cryptographique, participe à créer une chaîne continue de blocs. Chaque bloc contient alors un hash cryptographique qui le relie au précédent et garantit l'intégrité de la chaîne. La blockchain fonctionne grâce à un réseau de nœuds (ordi ou smartphone connecté à un réseau p2p), répartis dans le monde entier, possédant chacun une copie de la blockchain, travaillant ensemble pour vérifier et valider les nouvelles transactions et les ajouter à un nouveau bloc. Cette décentralisation garantit la résilience du système, car il n'y a alors pas de point unique de défaillance.
Certes, il est possible d'altérer le bon fonctionnement d'une blockchain via une attaque DDoS ou de prendre le contrôle d'un portefeuille à l'aide d'ingénierie sociale ou d'autres méthodes de prise de contrôle d'un appareil, mais nous nous concentrerons sur les facteurs permettant l'altération de l'historique d'une blockchain tel que la présence du protocole de consensus.
Concrètement, un algorithme de consensus vise à synchroniser chaque noeud du réseau afin de se mettre d'accord sur la création, l'enchaînement et la gestion de chaque bloc. Le protocole vérifie également qu'aucun noeud n'essaye de tricher au détriment des autres en introduisant dans la blockchain des blocs frauduleux afin de s'assurer que l'historique de transaction du réseau est correct.
Il existe différents types d'algorithmes de consensus parmis lesquels :
Bien qu'il existe d'autres algorithmes de consensus tels que le Proof of Elapsed Time, le Proof of Importance, le Proof of Activity, le Proof of History ou le Proof of Capacity, le PoW, le PoS et le PoA restent les plus utilisés, et chaque blockchain utilise le protocole qui correspond le mieux à ses attentes.
Mais passons au moment le plus concret de ce thread : quelles sont les vulnérabilités auxquelles font face les blockchains ?
C'est généralement à partir de l'algorithme de consensus utilisé que vont dépendre les vulnérabilités d'un réseau. Voici une liste non-exhaustive des principales vulnérabilités en fonction du protocole utilisé dans le domaine de la finance :
L'attaque des 51% (ou attaque Goldfinger) vise à manipuler la blockchain en invalidant des transactions ou en double-dépensant des fonds si un groupe malveillant contrôle plus de la moitié de la puissance de calcul du réseau (donc 51%). L'attaque vise les blockchains dites à preuve de travail et à preuve d'enjeu (protocoles PoW ou PoS). Le principal problème de cette attaque est qu'afin de gagner des jetons dans une cryptomonnaie cible, les mineurs se réunissent en coopératives de façon à avoir plus de puissance de calcul. Si un groupe de mineurs devient trop important, l'attaque des 51% est alors possible. L'attaquant se met alors à miner une chaîne en parallèle à partir du bloc précédent dans laquelle il inclut la transaction envoyant les fonds à son adresse, ce qui permettra d'empêcher toute validation de la transaction « légitime ». Puisqu'il dispose de plus de la moitié de la puissance de calcul du réseau, il est sûr qu'à un moment ou à un autre, sa chaîne sera plus longue que la chaîne officielle et par conséquent tous les nœuds du réseau devront logiquement accepter cette chaîne comme la chaîne valide.
Cette attaque mène au principe de double-dépense qui permet de dépenser le même jeton numérique plus d'une fois, menant à l'inflation en créant de nouvelles quantités de monnaies qui n'existaient pas. L'attaquant ayant le controle du réseau pourrait par exemple échanger une certaine somme d'une cryptomonnaie contre de l'Ethereum et en même temps contre des USDT, ce qui est habituellement impossible. Cette attaque n'a jamais été menée contre de grosses cryptomonnaies, mais s'est produite sur Bitcoin Gold (un fork du BTC) alors 26eme crypto la plus importante.
L'attaque Sybil elle, peut créer de multiples nœuds malveillants pour influencer le consensus. En générant une grande quantité d'identités (de nœuds), l'attaquant peut avoir une influence disproportionnée sur le réseau et ainsi mener à une attaque des 51%. L'attaque dépend de la facilité de création de nouvelles identités au sein d'un réseau et de la facilité avec laquelle le système de réputation (gestion des nœuds) va accepter chacune d'entre elles, n'ayant aucun lien avec des identités de confiance déjà présentes au sein du réseau.
L'oligarchie, dans un réseau utilisant un protocole de consensus "Delegated Proof of Stake (DPoS)", un petit nombre de délégués élus ont le pouvoir de valider les transactions, ce qui peut conduire à une centralisation du pouvoir. De la même manière, si les détenteurs de tokens ne votent pas activement, il peut être plus facile pour un groupe organisé de délégués de prendre le contrôle de la blockchain.
Ces vulnérabilités ne sont pas les seuls risques que présentent les blockchains. L'informatique quantique par exemple, est une "menace pour la cryptographie" dans le sens où ce mécanisme futur représente un danger pour la confidentialité de nos données, en particulier celles protégées par des algorithmes à clé publique reposant sur la factorisation tel que RSA. L'apparition de l'informatique quantique pourrait alors ébranler certains principes de sécurité des blockchains, et nous seront obligés d'inventer de nouveaux moyens de protection. (L'algorithme de Shor, programme quantique, sera en mesure de casser nos clés de chiffrement actuelles. Le système Bitcoin reposant sur un principe de p2pk "Pay To Pubkey", s'en retrouvera alors vulnérable)
Nombreux sont les programmes exploitant une faiblesse système extérieure à celle de la blockchain en elle-même via le détournement du presse-papier (gestion des adresses et des clés publiques) de la cryptomonnaie par exemple.
Les blockchains ne sont pas seulement utilisées dans le domaine des cryptomonnaies, mais servent également dans des systèmes de votes électroniques, de gestion des contrats intelligents (assurances, immobilier, services juridiques, santé, vérification des diplômes...), dans la production et la redistribution d'énergies et même dans le suivi de produits agricoles ou dans la gestion des registres fonciers.
Aujourd'hui, l'utilisation des blockchains est omniprésente, et les risques encourus sont en réalité bien plus importants que ce nous pouvons imaginer.