Tant dans le Web 1.0 que dans le Web 2.0, les modèles de sécurité ont changé en même temps que les architectures d’application pour aider à débloquer des économies entièrement nouvelles. Dans le Web 1.0, Secure Sockets Layer (SSL) a été lancé par Netscape pour fournir une communication sécurisée entre les navigateurs des utilisateurs et ces serveurs. Les intermédiaires Web 2.0 de confiance tels que Google, Microsoft, Amazon et les autorités de certification ont joué un rôle central dans la mise en œuvre de Transport Layer Security (TLS), le successeur de SSL.
Il en sera de même pour web3. C’est la principale raison pour laquelle les investissements dans les nouvelles sociétés de sécurité Web3 ont été multipliés par plus de 10 l’an dernier pour atteindre plus d’un milliard de dollars.
Le succès de web3 repose sur l’innovation pour résoudre les nouveaux défis de sécurité créés par différentes architectures d’applications. Dans le web3, les applications décentralisées ou « dApps » sont construites sans s’appuyer sur la logique d’application traditionnelle et les couches de base de données qui existent dans le Web 2.0 ; à la place, une blockchain, des nœuds de réseau et des contrats intelligents sont utilisés pour gérer la logique et l’état.
Les utilisateurs accèdent toujours à un frontal, qui se connecte à ces nœuds, pour mettre à jour des données telles que la publication de nouveaux contenus ou la réalisation d’un achat. Ces activités obligent les utilisateurs à signer des transactions à l’aide de leurs clés privées, généralement gérées avec un portefeuille, un modèle destiné à préserver le contrôle et la confidentialité des utilisateurs. Les transactions sur la blockchain sont entièrement transparentes, accessibles au public et immuables (ce qui signifie qu’elles ne peuvent pas être modifiées).
Comme tout système, cette conception présente des compromis en matière de sécurité. La blockchain n’exige pas que les acteurs soient dignes de confiance comme dans le Web 2.0, mais faire des mises à jour pour résoudre les problèmes de sécurité est plus difficile. Les utilisateurs conservent le contrôle de leur identité, mais aucun intermédiaire n’existe pour fournir un recours en cas d’attaques ou de compromissions de clés (par exemple, comment les fournisseurs Web 2.0 peuvent récupérer les fonds volés ou réinitialiser les mots de passe). Les portefeuilles peuvent toujours divulguer des informations sensibles comme une adresse Ethereum – c’est toujours un logiciel, qui n’est jamais parfait.
Le succès de web3 repose sur l’innovation pour résoudre les nouveaux défis de sécurité créés par différentes architectures d’applications.
Ces compromis suscitent à juste titre des problèmes de sécurité importants, mais ils ne devraient pas entraver l’élan du Web3 et, en pratique, il est peu probable qu’ils le fassent.
Considérez à nouveau les parallèles avec le Web 1.0 et le Web 2.0. Les versions initiales de SSL/TLS présentaient des vulnérabilités critiques. Les premiers outils de sécurité étaient au mieux rudimentaires et sont devenus plus robustes au fil du temps. Les sociétés et projets de sécurité Web3 tels que Certik, Forta, Slithe et Securify sont les équivalents des outils d’analyse de code et de test de sécurité des applications qui ont été initialement développés pour les applications Web 1.0 et Web 2.0.
Cependant, dans le Web 2.0, une partie importante du modèle de sécurité concerne la réponse. Dans Web3, où les transactions ne peuvent pas être modifiées une fois exécutées, des mécanismes doivent être intégrés pour vérifier si les transactions doivent avoir lieu en premier lieu. En d’autres termes, la sécurité doit être exceptionnellement efficace en matière de prévention.
Cela signifie que la communauté web3 doit trouver la meilleure façon de remédier techniquement aux faiblesses systémiques pour parer aux nouveaux vecteurs d’attaque qui ciblent tout, des primitives cryptographiques aux vulnérabilités des contrats intelligents. En parallèle, il existe au moins quatre initiatives qui feraient progresser un modèle de sécurité Web3 préventif :
Données de source de vérité pour les vulnérabilités
Il doit y avoir une source de vérité pour les vulnérabilités et les faiblesses connues du Web3. Aujourd’hui, la base de données nationale sur les vulnérabilités fournit les données de base des programmes de gestion des vulnérabilités.
Web3 a besoin d’un équivalent décentralisé. Pour l’instant, des informations incomplètes sont dispersées dans des endroits tels que SWC Registry, Rekt, Smart Contract Attack Vectors et DeFi Threat Matrix. Les programmes de primes de bogues tels que ceux gérés par Immunefi sont destinés à révéler de nouvelles faiblesses.
Normes de prise de décision en matière de sécurité
Le modèle de prise de décision pour les choix de conception de sécurité critiques et les incidents individuels dans le web3 est actuellement inconnu. La décentralisation signifie que personne n’est responsable des problèmes, et les ramifications pour les utilisateurs peuvent être importantes. Des exemples tels que la récente vulnérabilité Log4j sont des avertissements pour laisser la sécurité à une communauté décentralisée.
Il doit y avoir plus de clarté sur la façon dont les organisations autonomes décentralisées (DAO), les experts en sécurité, les fournisseurs tels qu’Alchemy et Infura, et d’autres collaborent pour gérer les problèmes de sécurité émergents. Il y a des leçons applicables de la façon dont les grandes communautés open source ont formé les groupes consultatifs OpenSSF et CNCF et mis en place des processus pour résoudre les problèmes de sécurité.
Authentification et signature
Aujourd’hui, la plupart des dApps, y compris les plus importantes, n’authentifient ni ne signent leurs réponses API. Cela signifie que lorsque le portefeuille d’un utilisateur récupère des données à partir de ces applications, il y a une lacune dans la vérification que la réponse provient de l’application prévue et que les données n’ont pas été falsifiées d’une manière ou d’une autre.
Dans un monde où les applications n’utilisent pas les meilleures pratiques de sécurité de base, il appartient aux utilisateurs de déterminer leur posture de sécurité et leur fiabilité, une tâche pratiquement impossible. Au minimum, il doit y avoir de meilleures méthodes pour faire apparaître les risques pour les utilisateurs.
Gestion des clés simplifiée et contrôlée par l’utilisateur
Les clés cryptographiques sous-tendent la capacité des utilisateurs à effectuer des transactions dans le paradigme Web3. Les clés cryptographiques sont également notoirement difficiles à gérer correctement ; des entreprises entières ont été et continuent d’être construites autour de la gestion des clés.
La complexité et les risques liés à la gestion des clés privées sont la principale considération qui pousse les utilisateurs à choisir des portefeuilles hébergés plutôt que des portefeuilles non dépositaires. Cependant, l’utilisation de portefeuilles hébergés conduit à deux compromis : ils se traduisent par de nouveaux « intermédiaires » comme Coinbase, qui nuisent à la direction entièrement décentralisée du web3 ; et ils limitent la capacité des utilisateurs à profiter de tout ce que le Web3 a à offrir. Idéalement, de nouvelles innovations en matière de sécurité offriront aux utilisateurs à la fois une meilleure convivialité et des protections pour les scénarios non dépositaires.
Il convient de noter que les deux premières initiatives sont davantage axées sur les personnes et les processus, tandis que les troisième et quatrième initiatives nécessiteront des changements technologiques. Obtenir de nouvelles technologies, des processus naissants et un grand nombre d’utilisateurs alignés est ce qui rend difficile la compréhension de la sécurité Web3.
Dans le même temps, l’un des changements les plus encourageants est que l’innovation en matière de sécurité Web3 se produit au grand jour, et nous ne devons jamais sous-estimer la façon dont cela peut conduire à des solutions créatives.