On est un vendredi soir, je suis un peu fatigué, et comme d’habitude je farfouille, je lis et comme le sujet de mes articles ces derniers temps tourne quand même pas mal autour des notions d’identification et d’identité numérique, j’ai fini par tomber sur ce concept.
Autant vous dire qu’il a fallu s’accrocher un peu mais le sujet en vaut la peine.
Fondamentalement, comme je l’ai écrit, on essaie plein de choses mais on en revient toujours au bon vieux mot de passe. Tout d’abord parce que c’est plutôt simple à comprendre, mais aussi parce que l’implémentation des autres technologies ou techniques n’a jamais vraiment pris. Alors me direz-vous pourquoi est-ce que je m’intéresse à ce bidule au nom étrange, et qu’est-ce que ça va changer.
C’est le troisième article sur des questions d’identité identification numérique, qui fait lui-même suite à un article concernant des problèmes de sécurité et de confiance car pour moi tout cela est relié.
La confiance fonctionne dans les deux sens, il faut avoir confiance dans l’identification pour permettre l’accès à des services. Je ne dis pas que ça marche ou pas, je dis que c’est le principe…
Zero Knowledge Interactive proof, une solution issue des blockchain et des cryptomonnaies
Depuis les années 70, la cryptographie intéresse de nombreux chercheurs dont une chercheuse du nom de Shafi Goldwasser qui va inventer ce procédé permettant de prouver une assertion sans en révéler directement le contenu. Jusqu’en 2017, il est resté du domaine de la recherche et n’a été remis au goût du jour que grâce à son utilisation par des projets blockchain.
Une preuve à divulgation nulle de connaissance (Zero Knowledge Interactive Proof ou ZKIP en anglais) est un protocole cryptographique permettant l’authentification sécurisée d’informations. Dans le cadre de ce protocole, une entité, nommée « fournisseur de preuve », prouve mathématiquement à une autre entité, le « vérificateur », qu’une proposition est vraie sans révéler d’autres informations que la véracité de la proposition.
En pratique, ces schémas se présentent souvent sous la forme de protocoles de type « défi/réponse » (challenge-response). Le vérificateur et le fournisseur de preuve s’échangent des informations et le vérificateur contrôle si la réponse finale est positive ou négative.
Pour bien comprendre ce système, il faut comprendre les propriétés des Zero Knowledge Proof :
Consistance : la proposition (preuve) est vraie, le vérificateur honnête qui suit le protocole sera convaincu de ce fait que le prouveur est honnête
Robustesse : si la proposition est fausse, aucun prouveur malhonnête (tricheur) ne peut convaincre le vérificateur que cette preuve soit vraie, excepté avec une très faible probabilité
On ne donne pas la preuve (Zero-Knowledge) : le vérificateur n’apprend de la part du prouveur rien de plus que la véracité de la proposition, il n’obtient aucune information en plus qu’il ne connaissait pas déjà
Une explication plus complète ? La vidéo ci-dessous :
Pour que ce protocole fonctionne il y a la nécessité que le fournisseur de preuves et le vérificateur soient tous les deux connectés, en ligne en même temps. En effet, ce protocole est interactif. C’est là que survient une évolution de cette technique issue des recherches des chercheurs Amos Fiat et Adi Shamir qui ont proposé un protocole non-interactif en 1986. Oui ça ne date pas d’aujourd’hui.
Alors comment ça fonctionne ?
L’heuristique de Fiat-Shamir est une méthode qui consiste à simuler la présence du vérificateur de preuve : il est ainsi remplacé par une fonction de hachage cryptographique.
Qu’est-ce que signifie le hachage ?
En anglais “hash” signifie fondamentalement hacher cela veut dire que nos données sont découpées par cette fonction de hachage puis ramenées à une longueur uniforme quelle que soit la taille de la valeur initiale. Ce hachage est déjà très largement utilisé sur Internet notamment pour la communication chiffrée entre le serveur Web et le navigateur, lorsque l’on génère des identifiants de session pour les applications web que l’on utilise, pour chiffrer la communication de nos moyens de paiement, pour signer des messages, bref nous l’utilisons régulièrement sans nous en rendre compte
Cette fonction est à sens unique, donc il est impossible de calculer des données d’entrée à partir de ce que l’on reçoit
Lors de la phase d’engagement, le fournisseur de preuve va générer un élément a. Lors de la phase de défi, il hache c = H (a, x) et va calculer une réponse r correcte pour le défi c. Il envoie ensuite π = (a, r) comme preuve. Lors de la phase de réponse, le vérificateur exécute la fonction de hachage sur (a, x) pour calculer c et vérifier que r est bien une réponse correcte pour le couple (a, c).
Je vous passe les démonstrations mathématiques mais cette “transformation de Fiat-Shamir” permet de zapper l’interaction entre fournisseur de preuve et vérificateur. l’autre aspect de cette équation Et qui permet de fonctionner avec des preuves succinctes, c’est-à-dire que ce protocole ne nécessite que des preuves de quelques Ko. Ce système qui utilise des algorithmes qui génère et vérifier les preuves est donc plus rapide et cela explique son adoption dans les crypto monnaies.
La découverte de ce nouveau protocole cryptographique a permis de réduire la quantité d’informations nécessaire.
je n’ai bien sûr que survoler ce sujet qui est la plus complexe mathématiquement et techniquement, mais cette technique permettrait une fois implémentée de sécuriser mathématiquement une identification.
Construire des outils accessibles au grand public…
Et ça pourrait commencer avec une solution appelée Polygon ID
Polygon ID est une des premières solutions d’identité auto-souveraine utilisant la technologie Zero-Knowledge Proof (preuve à divulgation nulle de connaissance) pour permettre une confirmation de l’identité sécurisée et on-chain. Le concept est novateur et souhaite préserver la vie privée. POLYGON ID repose sur 4 grands principes :
- Décentralisation : qui est l’un des fondements de la blockchain. Ici et pour aller plus loin, le but est de redonner aux utilisateurs le pouvoir sur leur identité, sans passer par un intermédiaire.
- Zéro connaissance : c’est-à-dire que par le protocole de sa blockchain, POLYGON ne divulgue aucune information à caractère privé.
- Confiance : l’identité est prouvée grâce à l’outil ZK et différentes informations peuvent être utilisées pour apporter une validation de l’identité.
- Zéro autorisation : la véracité des déclarations d’identité est vérifiée sans aucun intermédiaire.
De plus, le protocole sera open source, ce qui signifie que tout autre développeur pourra l’exploiter pour créer ses propres cas d’utilisation et applications personnalisées.
Source : https://coinacademy.fr/academie/polygon-id/
Cette idée d’identification anonyme n’est pas sans me rappeler un projet de double anonymat du gouvernement français qu’évoquait Jean Noël Barrot, alors ministre du numérique dans le podcast Trench Tech :
“Les sites vont devoir se plier à nos règles ensuite se pose la question de l’outil pour vérifier l’âge je suis favorable à ce que les outils respectent euh des règles je dirais minimales de fiabilité puisque aujourd’hui les sites vous demandent si vous avez plus ou moins de 18 ans donc ça n’est pas fiable mais c’est très respectueux de la vie privée. En revanche puisqu’on vous demande aucune information ni sur votre âge ni sur votre identité et cetera, donc des règles minimum de fiabilité des règles minimum de respect de la vie privée et je souhaite qu’il puisse présenter à minima une solution de vérification d’âge qui repose sur un principe simple celui du double anonymat c’est-à-dire que pour accéder au site vous devez produire une preuve anonyme de votre majorité ce qui fait que le site ne sait pas qui vous êtes et ça seulement que si oui ou non vous avez plus de 18 ans. Et c’est la deuxième partie du double anonymat, l’institution qui vous fournit votre preuve anonyme de majorité ça peut être France Connect ça peut être votre identité numérique de la poste ça peut être votre opérateur télécom ou votre banque vous fournit cette preuve mais ne sait pas ce pourquoi elle va être utilisée de manière à pouvoir atteindre les deux objectifs en même temps la la fiabilité dans la vérification de l’âge et le respect de la vie privée …”
Source : https://www.youtube.com/watch?v=DjlHM0BDwcg
La question qui se posait était l’accès aux sites pornographiques et la manière de prouver sa majorité par un système de double anonymat. Pas de nouvelles de ce projet depuis.
Quelle conclusion ?
Cette solution n’est pas encore disponible et va demander une implémentation technique qui va remettre en cause la présence quasi universelle du doublon login/mot de passe pour se connecter à quasiment toutes les machines, sites, services en ligne etc… Mais eu égard aux problématiques de confiance qui vont aller en s’intensifiant, cette solution pourrait connaître un certain succès. Ce sera peut être aussi le fait qu’une partie croissante des sécurisations disponibles sont contournées (le 2FA par exemple) qui renforcera le besoin d’un niveau supplémentaire de sécurisation. Pour l’instant c’est encore pour des usages blockchain ou crypto que c’est utilisé.
Pour ma part, je vois en cette technique l’une des solutions pour faire face à des problématiques d’identification, dans les différents sens du terme. Au delà de remplacer les mots de passe. J’en parlerais dans un prochain article.
Quelques liens pour poursuivre la réflexion :
- https://www.radiofrance.fr/franceinter/pornographie-qu-est-ce-que-la-verification-d-age-en-double-anonymat-voulue-par-le-gouvernement-5340091
- https://www.numerama.com/politique/1258990-sites-porno-interdits-aux-mineurs-bientot-une-application-pour-controler-lage.html
- Un article très clair et très complet sur la question : https://blog.octo.com/etude-de-cas-dutilisation-de-zero-knowledge-proof-zk
Laisser un commentaire