Application de la blockchain à la sécurité informatique

9 min. lecture

Share

Les blockchains ne sont pas une solution miracle pour résoudre tous les problèmes de sécurité ou combattre les cyberattaques. Cependant, certaines initiatives ont montré qu’une alternative décentralisée pouvait être une forme viable de stockage de l’information, ou de sécurisation des infrastructures critiques d’Internet. Le marché évoluant très rapidement, il sera intéressant de voir l’évolution de la technologie blockchain dans les prochains mois.

La blockchain base de données décentralisée et impossible à altérer :

Blockchain. Le mot est sur toutes les lèvres depuis que le Bitcoin et les cryptomonnaies de manière générale ont acquis une notoriété sans précédent au cours des derniers mois. Si les articles sur le Bitcoin ne manquent pas, nous nous proposons ici de revenir sur les différents types de blockchain ainsi que sur l’utilité de la technologie dans les problématiques de sécurité et de protection informatique. Une blockchain, ou chaîne de blocs, est une manière de stocker des informations de façon distribuée, sans organe de contrôle centralisé. Toutes les personnes ayant accès à cette blockchain peuvent y rajouter des informations qui, si elles sont validées par une majorité des nœuds du réseau, seront rajoutées et intégrées à la chaîne. Chaque action effectuée depuis la création de la blockchain y est répertoriée. Il s’agit donc d’une base de données, décentralisée, et impossible à altérer (du moins très difficile au sens cryptographique). L’utilisation la plus connue et répandue aujourd’hui est en tant que technologie sous-jacente aux différentes cryptomonnaies telles que le Bitcoin, l’Ether, ou encore le Monero. Il existe plusieurs centaines de cryptomonnaies, et donc autant de blockchains publiques servant de support pour enregistrer les transactions entre deux acteurs souhaitant s’échanger la monnaie associée. Les chaines de blocs des cryptomonnaies agissent comme des livres de comptes (ou registre) d’une banque, à la différence près qu’il n’y a pas d’organisme centralisé chargé de valider chaque ligne de transaction inscrite dans ces livres. Sans tiers de confiance, comment valider les transactions et régler le problème de « double dépense » (consistant à émettre deux transactions qui dépensent le même avoir) ?

Comment fonctionne le Blockchain ?

Le fonctionnement général d’une blockchain sous-jacente à un transfert d’actifs est présenté ci-dessous. [caption id="attachment_10839" align="aligncenter" width="877"]

Fonctionnement de la blockchain[/caption] Ainsi, une fois qu’un bloc est inclus dans la chaîne, et qu’un certain nombre de blocs ont été rajoutés après lui, il devient virtuellement impossible de modifier les transactions de ce bloc car cela impliquerait de recalculer tous les blocs suivants. Les transactions sont considérées comme irréversibles et finales après leur inclusion dans un bloc validé. Par ailleurs, une transaction incluant un avoir déjà dépensé dans une transaction précédente (transaction invalide) est refusée par le premier nœud du réseau qui la recevra. Si ce nœud est compromis ou malicieux et que la transaction est placée dans un bloc à valider, le réseau la refusera à partir du moment ou la majorité des nœuds du réseau est honnête. Pour compromettre une blockchain il faut que 51% des nœuds du réseau soient contrôlés par une entité malhonnête. Dans le cas du Bitcoin et de sa technique de consensus par preuve de travail, cela nécessite d’avoir plus de puissance de calcul (hash power) que les membres honnêtes pour pouvoir générer des blocs invalides à un rythme plus rapide que le reste du réseau.

La blockchain peut être privée, hybride ou publique :

La blockchain permet donc de stocker des transactions passées de manière inaltérable. Mais la technologie permet des applications bien plus larges que le domaine monétaire. On peut définir deux grandes méthodes de classification des blockchains :

  • Le caractère de la blockchain : La chaîne est-elle privée, hybride, ou publique ?
  • Les usages de la blockchain

Les blockchains publiques

La blockchain publique est historiquement le premier type à avoir été créé à grande échelle. Dans une chaîne publique, tout le monde peut lire son contenu. Chacun peut y rajouter des informations (ou des transactions) et s’attendre à ce qu’elles apparaissent dedans (si tant est qu’elles respectent les règles de cette chaine). Chaque membre du réseau peut aussi participer au processus d’approbation (le consensus), celui qui permet de décider quel bloc sera ajouté à la chaine, et qui définit l’état actuel du système. La sécurité et la décentralisation des blockchains publiques reposent sur le principe que les différents membres acceptant de mettre à disposition du réseau des ressources – que ce soit de la puissance de calcul dans un consensus de type preuve de travail, ou des actifs dans un consensus de type preuve d’enjeu – pour vérifier les nouveaux blocs seront rémunérés pour les récompenser.

Les blockchains hybrides

Le deuxième type de blockchain est la blockchain « hybride » ou « de consortium », dans laquelle le processus de consensus n’est pas ouvert au public mais limité à certains acteurs préapprouvés et contrôlés. Dans ce type de chaîne, on perd le caractère totalement décentralisé de la version publique mais on gagne en vitesse de validation. Le droit de lire la chaîne et d’émettre des messages (ou des transactions) peut-être en libre accès, ou lui aussi réservé à certains acteurs. Ce type hybride est principalement utilisé par certains secteurs comme la banque, les assurances, l’énergie.

Les blockchains privées

Enfin, dans les blockchains entièrement privées une seule organisation est responsable de l’écriture dans la chaîne et du processus d’approbation. La lecture peut, comme dans le type hybride, être en libre accès ou bien restreint. Ce type de blockchain est attractif en théorie pour les institutions souhaitant tirer parti des avantages de la technologie sans la perte de contrôle associée à la décentralisation complète, mais n'a en pratique pas beaucoup d'intérêt. Une blockchain totalement privée ne serait qu'une base de données d'entreprise, mais plus lente et plus chère qu'une base de données classique.

Les usages de la blockchain dans la sécurité :

Ces différents types de chaînes peuvent être utilisées pour adresser plusieurs types de problématiques, dont certaines touchent à la sécurité informatique. Trois thématiques sont directement adressées par plusieurs acteurs du marché :

  • Intégrité des données
  • Protection contre des attaques DDoS
  • Authentification

Intégrité des données[/caption] Le caractère immuable et irréversible du contenu d’une blockchain peut permettre de maintenir l’intégrité de fichiers et d’informations sensibles. Ainsi, la première transaction Bitcoin en 2009 est consultable par tout le monde, mais il est impossible de la modifier. On peut imaginer une blockchain où chacun pourrait publier une signature (hash) associée à un fichier, un logiciel, un système d’exploitation, ou un document ayant besoin d’être protégé contre les modifications. Un attaquant pourrait être capable de compromettre le serveur qui héberge le fichier en question, mais il ne serait pas capable de modifier le hash stocké sur la blockchain. Un utilisateur honnête pourrait alors comparer le hash légitime avec le hash du fichier compromit et saurait immédiatement que les données ont été manipulées. La différence avec un modèle de sécurité classique ici est qu’au lieu de s’appuyer sur la confidentialité, le modèle de la blockchain s’appuie sur la transparence de l’information. La société Guardtime a mis en place ce type de blockchain avec sa solution KSI et possède notamment comme client le gouvernement estonien et le département de la défense des États-Unis.

La blockchain au service des serveurs DNS racine :

La technologie de la blockchain pourrait aussi servir à sécuriser davantage certaines infrastructures critiques d’Internet. On pense notamment à l’attaque d’octobre 2016 contre les services DNS de Dyn, qui avait fortement perturbé la résolution DNS de certains domaines très visibles tels que ceux d’Amazon, Twitter, Netflix ou encore Spotify pendant une dizaine d’heures depuis l’Amérique du Nord et l’Europe. En utilisant un botnet de plusieurs milliers d’objets connectés (tel que des caméras IP) infectés par le malware Mirai, les perpétrateurs de l’attaque ont été capable de générer plus d’un Tbps de trafic vers les serveurs de Dyn. On peut imaginer un service DNS décentralisé dans lequel n’importe qui souhaitant aider à stocker et valider les données DNS peut installer le logiciel correspondant, se connecter au réseau peer-to-peer associé, télécharger une copie de la base de données (blockchain DNS), puis valider et relayer les requêtes de modifications des enregistrements, et être récompensé pour cela avec une cryptomonnaie associée à cette infrastructure. L’achat et le transfert de nouveaux domaines seraient représentés par des transactions sur la chaine. Ce type de réseau serait résistant aux attaques comme celle qu’a subies Dyn car il n’y aurait pas de point central à attaquer. Plus il y a d’acteurs et de membres, plus l’infrastructure serait résistante aux changements. Un système de DNS public distribué permettrait également de s’affranchir de la censure de certains états, ne serait pas dépendant d’une entité, mais éviterait également une modification non autorisée d’un enregistrement. Namecoin et Emercoin ont été créés exactement pour répondre à ce besoin, et permettent l’enregistrement de domaines sous les TLDs .bit, .coin, .emc, ou encore .lib. Dans ce type de blockchain, les transactions ne représentent pas un transfert d’argent mais un enregistrement ou une modification de domaine. Ces domaines de premier niveau ne sont pas administrés par l’ICANN et nécessitent donc l’utilisation de serveurs DNS alternatifs pour être résolus.

La décentralisation sur une blockchain pourrait remplacer les autorités de certification :

Dans la même veine que Namecoin on peut noter le projet Certcoin, porté par le MIT, qui propose d’agir comme une PKI décentralisée. La solution la plus répandue aujourd’hui pour vérifier l’identité d’un site Internet est l’utilisation de certificats, émis par une autorité de certification (certificate authority, ou CA). Une CA agit comme un tiers de confiance qui porte la responsabilité d’émettre, de signer, et de révoquer des certificats permettant d’associer un nom (comme une adresse électronique ou un enregistrement DNS) avec une clé publique. Comme toute la sécurité repose sur la confiance accordée à ces autorités de certification, cela peut poser certains problèmes car ces dernières peuvent être compromises. En décentralisant, l’utilisateur n’a plus à accorder toute sa confiance à une CA, mais peut partir du principe qu’un enregistrement de la chaîne (un couple clé publique – nom de domaine) est valide à partir du moment où la majorité du réseau est honnête. Pour compromettre le réseau et modifier un enregistrement existant, un utilisateur malicieux doit disposer de plus de puissance que les utilisateurs honnêtes. Une initiative comme REMME reprend le principe de PKI décentralisée pour authentifier les utilisateurs. REMME veut éliminer les mots de passe en fournissant à chaque équipement (ordinateur, smartphone) un certificat TLS/SSL, dont les données seraient stockées sur une blockchain.d Le marché évoluant très rapidement, il sera intéressant de voir l’évolution de la technologie blockchain dans les prochains mois, en particulier les futurs usages en sécurité de l’information.

Inscrivez-vous à notre newsletter

Recevez dans votre boîte aux lettres électronique les dernières nouvelles sur la sécurité, des informations et les tendances du marché.

À la une

Plus de nouveautés