8INF135 - Sécurité Web et Réseau Travail n°2 Sécurité de la Blockchain et des c

8INF135 - Sécurité Web et Réseau Travail n°2 Sécurité de la Blockchain et des cryptomonnaies Par Brandon Guigo (GUIB16029807), Nicolas Taffoureau (TAFN17029801), Jean-Baptiste Laguitton (LAGJ23099709). SOMMAIRE Introduction 4 Qu'est ce qu'une cryptomonnaie ? 4 Qu'est ce qu'une Blockchain ? 5 Applications de la Blockchain 5 Sécurité des crypto monnaies 6 Confidentialité​ - Bitcoin vs Monéro 6 Intégrité​ - Les arbres de Merkle 8 Authentification/identification 9 Non répudiation​ - la signature numérique 9 Disponibilité​ - les algorithmes de consensus 10 Protection contre les attaques 11 Failles possibles des systèmes à blockchain 11 Faille des 51% 11 Attaque Goldfinger 12 Sécurité des providers de services 12 Conclusion 13 Bibliographie 13 0. Introduction 2017 s’est avérée être une année remarquable pour les cryptomonnaies. D’instruments financiers peu connus, elles sont devenues un phénomène mondial, en seulement quelques années. Pourtant, c’est la technologie Blockchain sous-jacente, qui est au cœur de ces monnaies numériques, qui a attiré l’attention de plusieurs entreprises de premier plan, qui se demandent aujourd’hui comment en tirer profit. Bien qu’elle ait été initialement créée en tant qu’infrastructure pour le Bitcoin, l’application et l’utilisation de la technologie blockchain couvrent de nombreux domaines. Dans ce devoir nous allons couvrir l’aspect le plus important de ces technologies, la sécurité. En effet, la technologie Blockchain repose en grande partie sur sa sécurité quasi infaillible, nous allons donc présenter les grands enjeux ainsi que les les solutions apportés, qui ont fait de la Blockchain une des application les plus intéressante en terme de cryptographie et de systèmes distribués. 1. Qu'est ce qu'une cryptomonnaie ? Une crypto monnaie est une monnaie virtuelle, décentralisée et de pair à pair. Elle intègre l’utilisateur dans toutes ses phases d’émission et de règlement des transactions. Ces monnaies virtuelles n’ont pas de cours “légal” et la législation autour de cette nouvelle technologie est très limitée. Il existe deux générations de crypto monnaies. La première est constitué des monnaies de type Bitcoin, Litecoin ou Namecoin. Le bitcoin fut créé en 2009 par une personne sous le pseudonyme de Satoshi Nakamoto qui annonça son système en 2008 avant de publier le code source en 2009 basé sur le principe de Blockchain. Maintenant, le Bitcoin est reconnu comme un moyen de paiement alternatif par l’Etat Français. Depuis, une seconde génération de crypto monnaie a vu le jour. Les monnaies comme l’Ethereum, le Monero, le Nexus ou le Cardano se basent sur le même principe de blockchain que les première génération mais en y apportant quelques modifications. Ces monnaies de nouvelles génération apportent de nouvelles fonctionnalitées telles que des adresses de furtivité ou une plus grande sécurité. Niveau législation, il existe des lois sur ces crypto monnaies mais elles ne sont que peu nombreuses. Dans certains pays, elles sont reconnues officiellement et elle permettent d’acheter des biens ou des services. alors que dans d’autres pays, la loi ne définit pas de statut officiel pour ces nouvelles monnaies. De plus, les pays sont encore en pleine réflexion sur la surveillance de ces monnaies qui pourrait s'effectuer sur deux axes : le contrôle de la légalité des biens achetés à l’aide de ces monnaies et le contrôle des conversions en devises légales de ces monnaies afin d'empêcher le blanchiment d’argent. 2. Qu'est ce qu'une Blockchain ? Depuis l’apparition du Bitcoin en 2008, la Blockchain est une technologie à la base des cryptomonnaies. En effet, toutes les cryptomonnaies utilisent ce principe de Blockchain pour sécuriser leurs transactions. Mais qu’est-ce qu’une blockchain et comment cela fonctionne ? Une blockchain est un moyen de transmission et de stockage de données de manière sécurisée, distribuée et transparente. Elle contient les échanges entres les usagers depuis sa création. Elle peut être publique ou privée mais dans le cas des cryptomonnaies, elle est majoritairement publique. Cela veut dire que tout le monde peut vérifier les transactions et personne ne peut en altérer le contenu. La blockchain fonctionne de la manière suivante : lorsqu’une personne effectue une transaction vers une autre personne, cette transaction est ajoutée à un bloc de transactions venant aussi d’être effectuées. Le bloc est alors validé par les peers du réseau par la résolution de problèmes algorithmiques, c’est la blockchain “Proof-of-Work”. Une fois le bloc validé, il est lié à la chaîne de blocs déjà validés à laquelle tous les utilisateurs ont accès et le destinataire de la transaction reçoit son dû. 3. Applications de la Blockchain Le principe de Blockchain a permis l’émergence de nouveaux types de systèmes décentralisés, comme les cryptomonnaies. Mais il en existe d’autre comme par exemple les smart contracts. Concrètement, les smart contracts sont des programmes, accessibles et auditables par toutes les parties autorisées, dont l’exécution est donc contrôlée et vérifiable ; conçus pour exécuter les termes d’un contrat de façon automatique lorsque certaines conditions sont réunies. Le caractère décentralisé et automatisé du contrat permet donc en théorie à deux partenaires de nouer une relation commerciale sans qu’ils aient besoin de se faire confiance au préalable, sans autorité ou intervention centrale. C’est en effet le système lui-même, et non ses agents, qui garantit l’honnêteté de la transaction. Ces smarts contracts reposent sur la blockchain d’Ethereum, qui est une des cryptomonnaies les plus importante après le Bitcoin, avec une capitalisation estimée à plus de 50 milliards de dollars. Les smarts contracts ne sont néanmoins pas les seuls applications possibles d’Ethereum, on peut citer aussi les D-apps (Decentralized Applications), qui sont des programmes dont la partie backend s’exécute sur un réseau décentralisé de type blockchain. Cela permet aux données de l’applications de ne pas pouvoir être modifiées ou supprimées par d’une autorité centrale, et d’offrir une plus grande protection contre les attaques de type déni de service. Par exemple, Etherisc est une D-App qui montre l’efficacité de la blockchain d’Ethereum sur un cas d’usage intéressant : permettre la création d’assurances décentralisées, automatiques, et surtout transparentes pour l’utilisateur. La blockchain peut permettre également d’effectuer des preuves d’existence, qui permet de s'assurer qu'un document existe bien en en créant un condensé cryptographique, qu’on enregistre ensuite dans la Blockchain. Cela peut notamment servir à créer des pièces d’identité numériques, comme des passeports, ou encore des visas. 4. Sécurité des crypto monnaies a. Confidentialité​ - Bitcoin vs Monéro Bitcoin n’est pas véritablement anonyme mais plutôt pseudonyme car les transactions et les adresses associées sont visibles sur la Blockchain. L’IRS (le fisc américain) a par exemple développé des logiciels permettant de tracer les bitcoins sur la Blockchain. Il est vrai qu’associer une identité à une adresse sur Blockchain est plus ou moins difficile. Il existe différentes méthodes pour améliorer la confidentialité de Bitcoin, par exemple en utilisant une nouvelle adresse à chaque transaction, ou utiliser des services de mixage de bitcoin. Mais quoi qu’il en soit, parce que la Blockchain est publique, Bitcoin ne permet pas un anonymat complet. Il y a un autre aspect, c’est celui de la fongibilité. Qu’est ce que la fongibilité ? En fait, avec Bitcoin, chaque bitcoin a une histoire publique sur la blockchain. On peut donc distinguer un bitcoin d’un autre bitcoin à travers cet historique. Les bitcoins ne sont pas égaux, et il est possible d’établir des blacklists de certains bitcoins. C’est ce qu’on appelle le problème de la fongibilité, le fait que tous les bitcoins finalement ne sont pas identiques. Monero permet de dissimuler à la fois l’origine d’une transaction, sa destination, et le montant en jeu. C’est donc une différence radicale avec Bitcoin. Sa blockchain est “opaque” dans le sens où c’est une véritable boite noire, dans laquelle il est très difficile de savoir ce qu’il se passe. Elle utilise pour cela le protocole Cryptonote comme Bytecoin. Les Stealth Addresses et les Ring Signatures permettent de protéger la confidentialité des deux côtés de la transaction. Monero utilise la preuve de travail, il est donc possible de miner le Monero. Cependant, avec Monero, la différence de performance entre les cartes graphiques et les processeurs est moins importante que pour Bitcoin, le mining Monero nécessitant plus de mémoire. CryptoNote est un protocole open-source permettant d’assurer l’anonymat des contreparties et la confidentialité des transactions, servant de base à plusieurs crypto-monnaies. Contrairement au réseau Bitcoin, une blockchain administrée via CryptoNote ne révèle pas l’origine ou la destination des unités de compte. ● Anonymat de l’émetteur : il est assuré en utilisant plusieurs clés publiques pour signer une transaction (signatures de cercle). Les noeuds du réseau peuvent prouver que la transaction a bien été signée par l’émetteur; mais sans être en mesure d’identifier la clef qui a été utilisée. ● Anonymat du récepteur : le protocole permet de générer une paire de clefs à usage unique pour chaque transaction (adresses furtives). Il est alors impossible pour une tierce partie de déterminer si certaines transactions sont envoyées au même récepteur. ● Protection contre les doubles-dépenses : l’ancêtre des signatures de cercle (les signatures de groupe) s’appuyait sur une tierce partie pour protéger le système contre les double-dépenses. Désormais, chaque adresse furtive laisse une empreinte dans la blockchain et le protocole rejette toute transaction impliquant une adresse furtive qui a déjà été uploads/Finance/ securite-de-la-blockchain-et-des-cryptomonnaies.pdf

  • 74
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Jan 22, 2022
  • Catégorie Business / Finance
  • Langue French
  • Taille du fichier 0.3303MB