Partie 1 : Les apports de la Blockchain à la Cybersécurité

La Blockchain a bien plus à offrir que le simple transfert d’argent. Les bénéfices de cette technologie sont avérés (Désintermédiation, Traçabilité, Certification, …), et l’adoption de cette technologie est aujourd’hui incontestable, tant les cas d’usages métier sont nombreux.

Les bénéfices de la Blockchain peuvent ils s’appliquer à la cybersécurité ? En quoi la Blockchain peut-elle apporter des solutions pour sécuriser tout ou partie de nos systèmes d’information ? Et ces solutions Blockchain : sont-elles elles-mêmes sécurisées et exemptes de toute vulnérabilité ?

La Blockchain a initialement été créée pour transférer de l’argent de manière décentralisée, sans intermédiaire, tout en maintenant la confiance historiquement opérée par les banques. Derrière ce cas d’usage, et tous ceux qui ont découlé dans la décennie qui a suivi, se cachent des concepts techniques dont on pressent les affinités avec le monde de la cybersécurité. En quoi la Blockchain peut être un nouvel outil pour sécuriser nos systèmes d’informations ?

Les critères de sensibilité de l’information communément admis sont regroupés sus la triade CIA : Confidentiality, Integrity, Availability (Disponibilité, Intégrité et Confidentialité) :

Disponibilité, Intégrité et Confidentialité

Confidentialité

Garantir que l’information est protégée et accessible sur autorisation explicite uniquement.

La Blockchain, qu’elle soit publique ou privée, est pensée comme une architecture ouverte et s’appuie sur les protocoles de partage Pair-à-pair (P2P). Les transactions effectuées sont publiques afin de pouvoir être vérifiées par le consensus. En revanche, la capacité d’initier une nouvelle transaction reste restreinte au seul propriétaire du portefeuille. Cette gestion des accès repose sur des algorithmes de chiffrement asymétriques éprouvés (clés publiques / clés privées) garantissant un haut niveau de confidentialité.

Afin d’assurer une restriction d’accès aux données qui doivent rester confidentielles, le plus simple reste d’implémenter une Blockchain privée (accès privé) ou hybride (accès permissionné sur une Blockchain publique), sur lesquelles on pourra constituer des groupes de données et des groupes d’utilisateurs, puis implémenter des droits d’accès à l’information sur un modèle de « Contrôle d’Accès Basé sur les Rôles » (RBAC).

Cette gestion des accès n’est pas native sur les Blockchains publiques : on peut par exemple l’implémenter via des protocoles supplémentaires de type « Preuve à divulgation nulle de connaissance » (ZKP), ou bien via l’utilisation de frameworks dédiés comme Pantheon (Ethereum) ou BESU (Hyperledger).

Intégrité

Garantir que l’information est fiable, qu’elle n’a pas été falsifiée par malveillance ou corrompue par défaut d’implémentation.

Par définition, la Blockchain confère aux données un caractère immuable : toute transaction effectuée dans une Blockchain est stockée de manière irréversible. Il n’est plus possible de supprimer cette information. Elle peut être amendée a posteriori, mais on conservera toujours l’historique et la trace de la modification.

Le consensus de la Blockchain garantit que toute tentative de modification a posteriori serait immédiatement repérée dans le reste de la chaîne et, de fait, invalidée par l’ensemble des acteurs de la Blockchain.

Cette intégrité est fondée sur les signatures numériques des fonctions de hachage, est réputée inaltérable, et garantit une intégrité absolue de la donnée.

🛠 Fonctions de Hash

Le hachage est une empreinte numérique à sens unique, une signature unique qui ne peut être ni prédite ni forgée.

Le Hash change radicalement, même pour une petite modification en entrée.

Une information stockée dans une Blockchain est certifiée par son hash. Si un acteur malveillant voulait modifier cette information, il devrait s’assurer que le nouveau bloc (modifié) ait exactement le même hash, ce qui est statistiquement impossible puisque cette signature ne peut être prédite.

Impossible de changer « Alice donne 1 Bitcoin à Bob » en « Alice donne 3 Bitcoin à Bob », car on ne saurait pas comment retrouver le hash d’origine, même s’il existe.

Il existe peut-être une transaction modifiée qui présente le même hash, mais on ne peut la prédire

Ces fonctions de hachage sont présentes partout dans les Blockchains : elles sont justement la chaîne qui lie les blocs entre eux et les transactions entre elles. Pour minimiser la taille des signatures stockées, on effectue même des hash de hash de hash… dans ce que l’on appelle un « Arbre de Merkle », qui permet de ne stocker que le hash de l’ensemble :

Arbre deMerkle : un hash de hashs de hashs de hashs…

Disponibilité

Garantir un accès fiable aux données, à n’importe quel moment, quel que soit l’état du réseau.

La Blockchain est un réseau décentralisé de nœuds connectés entre eux en maillage, sur la base du modèle pair-à-pair (P2P), où chaque acteur de la Blockchain héberge, reçoit et envoie toute ou partie des données à ses pairs. L’absence de centralisation ou de point névralgique garantit que le réseau fonctionne même si une partie est indisponible ou isolée.

La robustesse de ce réseau garantit l’accès aux données, leur pérennité, mais aussi une protection face aux pannes et aux attaques de Déni de Service Distribué (DDoS).

En résumé, les données stockées sur une Blockchain sont hautement disponibles.

Traçabilité

Un quatrième critère est très souvent adjoint au triptyque CIA : la Traçabilité.

Garantir l’imputabilité et l’auditabilité de l’information sur la base de preuves formelles.

La traçabilité est un des piliers fondamentaux de la Blockchain : toute donnée peut et doit être tracée pour être validée selon les règles du consensus. Chaque transaction peut être suivie, et son historique retracé afin de reconstituer l’état d’un compte, de n’importe quelle donnée.

Transposée aux cas d’usages métiers, cette traçabilité garantit la validité de tout actif d’entreprise présent sur une Blockchain : données produits, clients, process.

🛠 Quid de l’anonymat ?

Si tous les échanges et données sont tracés et accessibles à l’ensemble des acteurs de la Blockchain, comment garantir l’anonymat ou la confidentialité de certaines données qui le nécessitent ?

Tout d’abord, il convient de rappeler que l’anonymat conféré par les Blockchains reste tout relatif. Certes, les acteurs sont anonymisés derrière des numéros de portefeuilles, mais il s’agit de pseudonymat plutôt que d’anonymat puisque qu’il est possible de remonter à la source des émetteurs / bénéficiaires d’une transaction comme on sait le faire avec des adresses IP, par exemple en reconstituant des regroupements et des schémas relationnels de comptes. (Ex : investigations criminelles et Lutte Contre le Blanchiment d’argent par Elliptic).

Si l’anonymat doit être un prérequis pour un cas d’usage, il peut être aisément implémenté dans le cadre d’une Blockchain privée. En revanche, dans le cas d’une Blockchain publique, le sujet devra être adressé dès la conception :

  • Certaines Blockchain publiques sont dédiées à l’anonymisation des transactions (Ex : Monero). Elles fournissent un anonymat extrême : les informations des transactions sont quasiment toutes inaccessibles sauf par l’expéditeur et le bénéficiaire. Cependant, leur réputation reste probablement trop équivoque pour les considérer dans le cadre d’une application industrielle.
  • Outre les techniques de mixage et d’obfuscation qui consistent à noyer les transactions parmi d’autres (Ex : protocole PrivateSend de la blockchain DASH), il est possible de concevoir des solutions de type “Blockchain Layer 2” : une surcouche aux Blockchains publiques permettant de stocker dans la chaîne, non pas une donnée, mais son empreinte numérique (hash). La donnée reste elle stockée hors-blockchain, dans une base de données classique (Ex : Woleet).
  • Il existe aussi des protocoles de chiffrement “Zero Knowledge Proof” fournissant des preuves à divulgation nulle de connaissance (ZKP) : les données stockées sur la Blockchain ne sont pas accessibles, et pourtant l’utilisateur peut fournir la preuve que cette donnée existe, qu’elle lui appartient, et peut choisir de ne pas divulguer les adresses de transactions (Ex : Zcash et son double système d’adresses transparentes & publiques vs. anonymes et masquées)

Autres apports à la cybersécurité

Outre ces bénéfices fondamentaux en matière de cybersécurité, la Blockchain apporte de nombreuses autres solutions spécifiques :

Lutte contre la fraude

Toute transaction au sein d’une Blockchain nécessite d’être validée par le réseau en suivant les règles du consensus, avant d’être formellement intégrée. La difficulté de validation du protocole peut être ajustée en fonction de la sécurisation que l’on souhaite garantir à la donnée. Un comportement malveillant qui ne suivrait pas les règles du consensus peut tout à fait être identifié comme tel, intercepté, et ne pas être diffusé au reste du réseau.

Les Blockchain publiques proposent des protocoles de validation souvent longs et complexes (Ex : une transaction sur Bitcoin n’est formellement validée qu’après plusieurs blocs, soit environ une heure), alors qu’une Blockchain privée entre acteurs de confiance peut se permettre d’abaisser ce niveau de complexité, au profit de la vitesse de validation (Ex : consensus PBFT)

Quel que soit le protocole adopté, les transactions stockées sur une Blockchain bénéficient donc de la validation du protocole, et donc d’une certification implicite favorable à la lutte contre la fraude.

Infrastructure de clés décentralisée (DPKI)

En cybersécurité, le chiffrement des données repose sur des clés. Le stockage de ces clés est un point crucial qui est historiquement adressé par des autorités centrales, organismes de confiance qui garantissent le stockage et la distribution des clés et des certificats : les PKI (Private Keys Infrastructures)

Le caractère centralisé de ces organismes crée une dépendance à des intermédiaires privés ou étatiques que l’on ne choisit pas toujours et qui imposent leur confiance au reste du réseau.

Cette centralisation présente par ailleurs un cas d’école pour les attaques de type Man in the Middle (MitM) : ARP Spoofing, IP Spoofing, DNS Spoofing, HTTPS Spoofing sont autant de méthodes exploitables pour se faire passer pour une Autorité Certifiante et délivrer des clés ou certificats corrompus (Ex : attaques sur DigiNotar).

Ce point unique de défaillance (SPOF) peut être adressé par une approche alternative décentralisée : Les Decentralized Public Key Infrastructure (DPKI). Les clés sont alors stockées dans une Blockchain décentralisée qui résout le point unique de défaillance des schémas centralisés des PKI traditionnels. La Blockchain confère une haute disponibilité de ces clés et certificats, et par ailleurs offre plus de sécurité face aux attaques de MitM.

Identity & Access Management

L’IAM est un des piliers de la cybersécurité. Les outils et solutions de l’IAM (Active Directory, Single Sign On, Revues d’accès, etc.) reposent sur des architectures centralisées qui exposent de fait un Point Unique de Défaillance.

Ce modèle est vulnérable aux attaques d’interception et manipulation des données de type MitM. On voit aussi apparaître une certaine défiance des utilisateurs à céder leurs informations personnelles à des organismes centraux (solutions privées) ou fédérés (Google, Facebook).

Des alternatives décentralisées apparaissent afin de résoudre ces vulnérabilités et défiances : L’identité Souveraine Décentralisée (Self Sovereign Identity), portée par une Blockchain, où l’utilisateur reste le seul propriétaire de ses identités numériques et accorde ou révoque les droits d’accès à ses informations à sa guise (ex : Hyperledger INDY / Sovrin).

Vote Numérique

Le vote numérique est un des cas d’usage idéal pour la Blockchain : chaque personne peut voter individuellement via une application et grâce à sa clé privée, sans avoir à transiter par un organisme central, sans avoir à se déplacer.

La confiance est garantie par un Smart Contract automatisé qui assure l’unicité des votes, puis comptabilise automatiquement les résultats, sans intervention ni validation d’un organisme tiers. La blockchain confère la confidentialité du vote, la sécurité et la transparence des résultats. (ex : Le Vote, service de Orange)

La Blockchain est donc un outil supplémentaire à notre attirail en matière de cybersécurité. Mais cet outil est-il lui-même exempt de failles ? Bien que sécurisée par construction, la Blockchain présente-t-elle des vulnérabilités connues ? Sont-elles adressées ?

Des réponses dans la prochaine partie « La Blockchain face a ses propres enjeux de sécurité »

--

--

Les bénéfices de la blockchain peuvent ils s’appliquer à la cybersécurité ? En quoi la Blockchain peut-elle apporter des solutions pour sécuriser tout ou partie de nos systèmes d’information ? Et ces solutions blockchain : sont-elles elles-mêmes sécurisées ?

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Vincent Rémon

Expert Blockchain et Cyber-Securité. Ingénieur passionné par le développement, l'algorithmique et le chiffrement depuis mon enfance.