DPKI: remédier aux inconvénients de l'ICP centralisée avec la blockchain



Ce n'est un secret pour personne que l'un des outils auxiliaires courants, sans lequel la protection des données dans les réseaux ouverts est impossible, est la technologie des certificats numériques. Cependant, ce n'est pas un secret que le principal inconvénient de cette technologie est la confiance inconditionnelle dans les centres délivrant des certificats numériques. Andrey Chmora, directeur de la technologie et de l'innovation chez ENCRY, a proposé une nouvelle approche pour organiser l'infrastructure à clé publique ( PKI ), qui aidera à éliminer les lacunes actuelles et qui utilise la technologie de registre distribué (blockchain). Mais tout d'abord.

Si vous connaissez les principes de fonctionnement de l'infrastructure existante des clés publiques et que vous connaissez ses principales lacunes, vous pouvez immédiatement passer à la description de ce que nous proposons de changer.

Que sont les signatures et certificats numériques?
L'interaction sur Internet implique toujours le transfert de données. Nous souhaitons tous que les données soient transmises de manière sécurisée. Mais qu'est-ce que la sécurité? Les services de sécurité les plus demandés sont la confidentialité, l'intégrité et l'authenticité. Pour cela, des méthodes de cryptographie asymétrique, ou de cryptographie à clé publique, sont actuellement utilisées.

Pour commencer, afin d'utiliser ces méthodes, les sujets d'interaction doivent avoir deux paires de clés individuelles - publique et secrète. Avec leur aide, les services de sécurité que nous avons mentionnés ci-dessus sont fournis.

Comment la confidentialité de la transmission des informations est-elle assurée? Avant d'envoyer des données, l'abonné émetteur crypte (convertit cryptographiquement) les données ouvertes à l'aide de la clé publique du destinataire, et il décrypte le texte chiffré reçu à l'aide d'une paire de clés secrètes.



Comment l'intégrité et l'authenticité des informations transmises sont-elles atteintes? Pour résoudre ce problème, un autre mécanisme a été créé. Les données ouvertes ne sont pas cryptées, mais avec elle le résultat de l'application d'une fonction de hachage cryptographique - une image «compressée» de la séquence de données d'entrée - est cryptée. Le résultat d'un tel hachage est appelé «résumé» et son cryptage est effectué sur la clé secrète de l'abonné émetteur («témoin»). Le chiffrement du résumé donne une signature numérique. Celui-ci, accompagné du texte brut, est transmis à l'abonné-destinataire («vérification»). Il déchiffre la signature numérique sur la clé publique du témoin et la compare avec le résultat de l'application de la fonction de hachage cryptographique, que le vérificateur calcule indépendamment en fonction des données ouvertes reçues. S'ils correspondent, cela indique que les données ont été transmises sous une forme authentique et intégrale précisément par l'abonné émetteur et non modifiées par l'attaquant.



La plupart des ressources travaillant avec des données personnelles et des informations de paiement (banques, compagnies d'assurance, transporteurs aériens, systèmes de paiement, ainsi que des portails gouvernementaux tels que le service des impôts) utilisent activement des méthodes de cryptographie asymétrique.

Qu'est-ce qu'un certificat numérique a à voir avec cela? Tout est simple. Dans le premier et dans le deuxième processus, les clés publiques sont impliquées, et comme elles jouent un rôle central, il est très important de s'assurer que les clés appartiennent réellement à l'expéditeur (le témoin, en cas de vérification de signature) ou au destinataire, et non remplacées par les clés des attaquants. Pour cela, il existe des certificats numériques qui peuvent garantir l'authenticité et l'intégrité de la clé publique.

Remarque: l'authenticité et l'intégrité d'une clé publique sont vérifiées exactement de la même manière que l'authenticité et l'intégrité des données ouvertes, c'est-à-dire à l'aide d'une signature numérique électronique (EDS).

D'où viennent les certificats numériques?
La délivrance et la maintenance des certificats numériques relèvent de la responsabilité des autorités de certification de confiance ou des autorités de certification (AC). Le demandeur demande la délivrance d'un certificat dans l'AC, passe une pièce d'identité dans le centre d'enregistrement (CR) et reçoit un certificat dans l'AC. L'AC garantit que la clé publique du certificat appartient à l'entité même pour laquelle elle a été émise.

Si vous ne confirmez pas l'authenticité de la clé publique, l'attaquant lors du transfert / stockage de cette clé peut la remplacer par la sienne. Si la substitution a eu lieu, l'attaquant pourra déchiffrer tout ce que l'abonné émetteur transmet à l'abonné récepteur, ou modifier les données ouvertes à sa discrétion.

Les certificats numériques sont utilisés partout où il y a une cryptographie asymétrique. L'un des certificats numériques les plus courants est le certificat SSL pour un mode d'interaction sécurisé via le protocole HTTPS. Des centaines d'entreprises enregistrées dans différentes juridictions sont engagées dans la délivrance de certificats SSL. La part principale revient à cinq à dix grands centres de confiance: IdenTrust, Comodo, GoDaddy, GlobalSign, DigiCert, CERTUM, Actalis, Secom, Trustwave.

CA et CR sont des composants PKI, qui comprennent également:

  • Open Directory - Une base de donnĂ©es accessible au public qui fournit un stockage fiable des certificats numĂ©riques.
  • La liste de rĂ©vocation de certificats est une base de donnĂ©es accessible au public qui fournit un stockage fiable des certificats numĂ©riques des clĂ©s publiques rĂ©voquĂ©es (par exemple, en raison de la compromission d'une clĂ© secrète privĂ©e). Les acteurs de l'infrastructure peuvent accĂ©der Ă  cette base de donnĂ©es par leurs propres moyens ou utiliser le protocole OCSP (Online Certification Status Protocol) spĂ©cialisĂ©, ce qui simplifie le processus de vĂ©rification.
  • Utilisateurs de certificats - EntitĂ©s desservies par PKI qui ont conclu un accord d'utilisateur avec l'autoritĂ© de certification et vĂ©rifient la signature numĂ©rique et / ou chiffrent les donnĂ©es sur la base d'une clĂ© publique du certificat.
  • Les abonnĂ©s sont des entitĂ©s desservies par PKI qui dĂ©tiennent une clĂ© privĂ©e, une paire de clĂ©s publiques du certificat et ont conclu un accord d'abonnĂ© avec l'AC. L'abonnĂ© peut ĂŞtre un utilisateur du certificat en mĂŞme temps.

Ainsi, les entités de confiance de l'infrastructure à clé publique, qui incluent l'autorité de certification, le CR et les répertoires ouverts, sont responsables de:

1. Vérification de l'identité du demandeur.
2. Profilage d'un certificat de clé publique.
3. Délivrance d'un certificat de clé publique pour le demandeur, dont l'identité est authentifiée.
4. Modifiez le statut d'un certificat de clé publique.
5. Fournir des informations sur l'état actuel du certificat de clé publique.

Inconvénients de l'ICP, quels sont-ils?
Un inconvénient fondamental de l'ICP est la présence d'entités de confiance.
Les utilisateurs doivent certainement faire confiance à l'AC et au MD . Mais, comme le montre la pratique, la confiance inconditionnelle est lourde de conséquences graves.

Au cours des dix dernières années, plusieurs scandales majeurs liés à la vulnérabilité des infrastructures se sont produits dans ce domaine.

- En 2010, le malware Stuxnet a commencé à se répandre sur le réseau, qui a été signé à l'aide de certificats numériques volés de RealTek et JMicron.

- En 2017, Google a accusé Symantec d'avoir émis un grand nombre de certificats falsifiés. À l'époque, Symantec était l'une des plus grandes autorités de certification en termes de sortie. Dans le navigateur Google Chrome 70, la prise en charge des certificats émis par cette société et ses filiales GeoTrust et Thawte a été interrompue jusqu'au 1er décembre 2017.

Les autorités de certification ont été compromises, en conséquence, tout le monde en a souffert - à la fois les autorités de certification elles-mêmes, ainsi que les utilisateurs et les abonnés. La confiance dans les infrastructures a été ébranlée. De plus, les certificats numériques peuvent être bloqués dans les conflits politiques, ce qui affectera également le travail de nombreuses ressources. C'est précisément ce que l'on craignait il y a plusieurs années dans l'administration du président russe, où en 2016 ils ont discuté de la possibilité de créer un centre de certification d'État qui délivrerait des certificats SSL aux sites Web de Runet. La situation actuelle est telle que même les portails d'État en Russie utilisent des certificats numériques émis par les sociétés américaines Comodo ou Thawte (la «fille» de Symantec).

Il y a un autre problème - la question de l'authentification principale (authentification) des utilisateurs . Comment identifier un utilisateur ayant postulé auprès de l'AC avec une demande de certificat numérique sans contact personnel direct? Maintenant, cela est décidé en fonction de la situation en fonction des capacités de l'infrastructure. Quelque chose est tiré de registres ouverts (par exemple, des informations sur des entités juridiques demandant des certificats), dans les cas où les demandeurs sont des personnes physiques, les bureaux de banque ou les bureaux de poste peuvent être utilisés lorsque leur identité est confirmée par des documents d'identification, par exemple un passeport.

Le problème de la falsification des pouvoirs à des fins d’usurpation d’identité appartient à la catégorie des fondamentaux. Notez qu'il n'existe pas de solution à part entière à ce problème pour des raisons théoriques de l'information: sans informations a priori fiables, il est impossible de confirmer ou de nier l'authenticité d'un sujet particulier. En règle générale, pour vérification, un ensemble de documents prouvant l'identité du demandeur doit être présenté. Il existe de nombreuses méthodes de vérification différentes, mais aucune d'entre elles ne garantit pleinement l'authenticité des documents. En conséquence, l’authenticité de l’identité du demandeur ne peut pas non plus être garantie comme confirmée.

Comment éliminer ces lacunes?
Si les problèmes de l'ICP dans sa situation actuelle peuvent s'expliquer par la centralisation, il est logique de supposer que la décentralisation aiderait à éliminer partiellement les lacunes indiquées.

La décentralisation n'implique pas l'existence d'acteurs de confiance - si vous créez une infrastructure décentralisée de clés publiques (Infrastructure de clé publique décentralisée, DPKI ), alors vous n'avez besoin ni d'une autorité de certification ni d'un bureau central . Nous abandonnons le concept de certificat numérique et utilisons un registre distribué pour stocker des informations sur les clés publiques. Dans notre cas, nous appelons un registre une base de données linéaire composée d'enregistrements séparés (blocs) connectés par la technologie blockchain. Au lieu d'un certificat numérique, nous introduisons le concept de «notification».

À quoi ressemblera le processus de réception, de vérification et d'annulation des notifications dans le DPKI proposé:

1. Chaque demandeur envoie une demande de notification par lui-même en remplissant un formulaire lors de l'inscription, après quoi une transaction est stockée dans un pool spécialisé.

2. Les informations sur la clé publique ainsi que les détails du propriétaire et d'autres métadonnées sont stockées dans un registre distribué, et non dans un certificat numérique, pour lequel CA est responsable de l'émission dans une infrastructure à clé publique centralisée.

3. L'identité du demandeur est vérifiée après coup par les efforts conjoints de la communauté des utilisateurs du DPKI, et non du CR.

4. Seul le propriétaire d'une telle notification peut modifier le statut d'une clé publique.

5. Tout le monde peut accéder au registre distribué et vérifier l'état actuel de la clé publique.

Remarque: à première vue, la vérification d'identité de la communauté peut sembler trop peu fiable. Mais nous devons nous rappeler qu'à l'heure actuelle, tous les utilisateurs de services numériques laisseront certainement une empreinte numérique, et ce processus ne fera que se renforcer. Les registres électroniques ouverts des entités juridiques, les cartes, la numérisation des images de terrain, les réseaux sociaux sont tous des outils accessibles au public. Ils sont déjà utilisés avec succès dans les enquêtes des journalistes et des forces de l'ordre. Par exemple, il suffit de rappeler les enquêtes de Bellingcat ou de l’équipe conjointe d’enquête JIT, qui étudie les circonstances de l’écrasement du Boeing malaisien.

Alors, comment fonctionnera une infrastructure à clé publique décentralisée dans la pratique? Arrêtons-nous sur la description de la technologie elle-même, que nous avons brevetée en 2018 et considérons à juste titre notre savoir-faire.

Imaginez qu'il y ait un propriétaire qui possède beaucoup de clés publiques, où chaque clé est une certaine transaction qui est stockée dans le registre. Comment en l'absence d'une autorité de certification comprendre que toutes les clés appartiennent à ce propriétaire particulier? Pour résoudre ce problème, une transaction zéro est créée, qui contient des informations sur le propriétaire et son portefeuille (à partir desquelles la commission pour placer la transaction dans le registre est débitée). Une transaction zéro est une sorte d '«ancre» à laquelle seront attachées les transactions suivantes avec des données sur les clés publiques. Chacune de ces transactions contient une structure de données spécialisée, ou d'une autre manière - une notification.

La notification est un ensemble de données structuré composé de champs fonctionnels et comprenant des informations sur la clé publique du propriétaire, dont la persistance est garantie par le placement dans l'une des entrées associées du registre distribué.

La prochaine question logique est de savoir comment se forme une transaction zéro? Une transaction nulle - comme les suivantes - est une agrégation de six champs de données. Lors de la formation d'une transaction nulle, une paire de clés du portefeuille (clés publiques et clés secrètes) est impliquée. Cette paire de clés apparaît au moment où l'utilisateur enregistre son portefeuille, à partir duquel la commission de publication d'une transaction nulle dans le registre et - par la suite - les opérations avec notifications seront débitées.



Comme le montre la figure, le résumé de la clé du portefeuille public est généré en appliquant successivement les fonctions de hachage SHA256 et RIPEMD160. Ici, RIPEMD160 est responsable de la présentation compacte des données dont la capacité en bits ne dépasse pas 160 bits. C'est important - car le registre n'est pas une base de données bon marché. La clé publique elle-même est entrée dans le cinquième champ. Le premier champ contient des données qui établissent une connexion avec la transaction précédente. Pour une transaction zéro, ce champ ne contient rien, ce qui le distingue des transactions suivantes. Le deuxième champ correspond aux données permettant de vérifier la connectivité des transactions. Par souci de concision, nous appellerons respectivement les données des premier et deuxième champs «bundle» et «check». Le contenu de ces champs est généré par la méthode de hachage itérative comme le montre l'exemple de liaison des deuxième et troisième transactions dans la figure ci-dessous.



Les données des cinq premiers champs sont certifiées par une signature numérique électronique, qui est générée à l'aide de la clé secrète du portefeuille.

Tout, la transaction zéro est envoyée au pool et après une vérification réussie (comme illustré dans la figure ci-dessous) est entrée dans le registre.



Vous pouvez désormais y «lier» les transactions suivantes. Considérez comment la formation de transactions autres que zéro se produit.



La première chose qui vous a probablement frappé a été l'abondance de paires de clés. En plus de la paire de clés du portefeuille déjà familière, des paires de clés ordinaires et officielles sont utilisées.

Une clé publique ordinaire est celle pour laquelle tout, en fait, a été démarré. Cette clé est impliquée dans diverses procédures et processus se déroulant dans le monde environnant (transactions bancaires et autres, flux de documents, etc.). Par exemple, une clé secrète d'une paire ordinaire peut être utilisée pour générer des signatures numériques de divers documents - ordres de paiement, etc., et une publique - pour vérifier cette signature numérique avec l'exécution ultérieure de ces ordres, sous réserve de sa validité.

Un couple d'entreprises est délivré à une entité DPKI enregistrée. Le nom de cette paire correspond à son objectif. Notez que lors de la génération / vérification d'une transaction nulle, les clés de service ne sont pas utilisées.

Encore une fois, nous clarifierons le but des clés:

  1. Les clés de portefeuille sont utilisées pour générer / vérifier à la fois un zéro et toute autre transaction non nulle. La clé secrète du portefeuille n'est connue que du propriétaire du portefeuille, qui est en même temps propriétaire de nombreuses clés publiques ordinaires.
  2. Une clé publique unique a un objectif similaire à une clé publique pour laquelle un certificat est émis dans une infrastructure à clé publique centralisée.
  3. La paire de clés de service appartient à DPKI. La clé secrète est délivrée aux entités enregistrées et est utilisée dans la formation de transactions électroniques numériques (à l'exception de zéro). Public est utilisé pour vérifier la signature numérique d'une transaction avant qu'elle ne soit placée dans le registre.

Ainsi, il existe deux groupes de clés. Le premier comprend les clés de service et les clés de portefeuille - elles n'ont de sens que dans le contexte de DPKI. Le deuxième groupe comprend les clés ordinaires - leur portée peut varier et est due aux applications dans lesquelles elles sont utilisées. Dans le même temps, DPKI garantit l'intégrité et l'authenticité des clés publiques ordinaires.

Remarque: Une paire de clés de service peut être connue de diverses entités DPKI. Par exemple, cela peut être le même pour tout le monde. Pour cette raison, lors de la génération de la signature de chaque transaction non nulle, deux clés secrètes sont utilisées, dont l'une est la clé du portefeuille - elle n'est connue que du propriétaire du portefeuille, qui est également le propriétaire de nombreuses clés publiques ordinaires. Toutes les clés ont leur propre signification. Par exemple, vous pouvez toujours prouver qu'une transaction a été entrée dans le registre par une entité DPKI enregistrée, car la signature a été générée, y compris à l'aide d'une clé de service secrète. Et il ne peut y avoir d'abus, comme une attaque DOS, car le propriétaire paie pour chaque transaction.

Toutes les transactions qui suivent le zéro sont générées de la même manière: une clé publique (mais pas un portefeuille, comme dans le cas d'une transaction zéro, mais à partir d'une paire de clés ordinaire) est exécutée via deux fonctions de hachage SHA256 et RIPEMD160. Ainsi, les données du troisième champ sont formées. Les informations d'accompagnement sont saisies dans le quatrième champ (par exemple, des informations sur l'état actuel, la période de validité, l'horodatage, les identifiants des algorithmes cryptographiques utilisés, etc.). Dans le cinquième champ, la clé publique de la paire de clés de service. Avec son aide, l'EDS sera vérifié, il est donc répliqué. Nous justifions la nécessité d'une telle approche.

Rappelez-vous qu'une transaction est entrée dans le pool et y est stockée jusqu'à ce qu'elle soit traitée. Le stockage dans le pool est associé à un certain risque - ces transactions peuvent être falsifiées. Le propriétaire certifie les données de la transaction de signature numérique. La clé publique de vérification de cette signature numérique est indiquée dans l'un des champs de transaction sous une forme explicite et est ensuite entrée dans le registre. , , . , . , , , . . , .

. :

1. .
2. , .
3. .

, 1 2 , . 3, , , . .

, — . , . , . , .

. . ( ). , / . , . .

— - , , — . — , . “” .

, , : . : — , — , , , ( ). , .



: “” ? — . - , .

, , â„–3 â„–2. - , â„–2. â„–3 - , â„–2. - SHA256 RIPEMD160. â„–2, . .




. :



, , , , .

, , , , DPKI :

1. ().
2. ().
3. ().

// -. , , , (, .) . DPKI , , , .

, DPKI , .

— ?

— . — . : , , , .

ENCRY , , , , :

  • : ( ), ,
  • PrismLang, ,
  • .

, :

  1. DPKI . — - . .
  2. .
  3. .
  4. , : .
  5. .
  6. ENCRY , .
  7. , .

, , .

, . : , DPKI , . . . - Bellingcat.

: DPKI — , , PKI.

, , , ENCRY.

Source: https://habr.com/ru/post/fr461761/


All Articles