Proposition d’une solution d’authenticité de diplômes et mise en œuvre

Proposition d’une solution d’authenticité de diplômes et mise en œuvre

Présentation de la solution 

Nous avons utilisé la technologie blockchain bitcoin pour l’implémentation. Cependant, ce qui est stocké dans la blockchain bitcoin est un hachage à sens unique qui sera utile lors de la vérification. Lorsqu’on émet un certificat, les données sont compressées dans un hachage et consignés dans la blockchain, ce qui va générer un reçu qui peut toujours être vérifié à une date ultérieur. Les certificats émis sont immuables, ne peuvent pas être mis à jour. Cette solution permettra aux étudiants de posséder leur propre information d’identification. Cette information pourra ainsi être partagé afin de permettre aux vérificateurs de prouver la validité des certificats lies a ces informations. Il s’agit ici de vérifier si le diplôme n’a pas été falsifié et qu’il a été émis par le bon émetteur.

Architecture proposée

Figure 14 : Architecture proposée L’architecture comprend un cluster de mineur, un serveur web, une base de données des diplômés, trois modules qui seront déployés, à savoir l’outil de certificat, l’émetteur de certificats, et le visionneur de certificat. Essayons de voir la fonctionnalité de ces trois modules à savoir : Cert-tools : décrit la norme pour les certificats numériques. Un certificat numérique est essentiellement un fichier JSON avec les champs nécessaires à notre code émetteur de certificat pour le placer dans la blockchain. Cert-issuer : prend un certificat JSON, crée un hachage (une chaine courte qui peut être utilisée de manière unique pour identifier un fichier numérique) du certificat et émet un certificat en diffusant une transaction Bitcoin de l’adresse de l’institution émettrice vers l’adresse d’un destinataire avec le hachage incorporé. Cert-verifier : est utilisé pour afficher et vérifier les certificats numériques après émission L’architecture proposée comporte deux types de requêtes l’une pour l’étudiant et l’autre pour l’employeur. Pour l’étudiant, cette dernière correspondra à l’obtention de son diplôme : l’étudiant qui souhaite obtenir son diplôme numérique se connecte à internet pour remplir le formulaire qui sera considéré comme une requête. Cette dernière va solliciter le serveur web qui va communiquer avec l’émetteur du diplôme (Cert-issuer) qui à son tour va utiliser les informations du diplôme contenue dans le fichier csv de l’outil de certificat (cert-tools). Le fichier csv de cert-tools est obtenu en faisant une requête depuis la base de données locale des diplômés. C’est ce qui se passe pour la requête en couleur rouge au niveau de l’architecture proposée. Et pour la réponse de couleur verte correspondant à la réponse du requête de l’étudiant pour l’obtention de son diplôme : une requête est faite à partir de la base de données oracle de l’UCAD qui contient la liste de tous les diplômés vers l’outil de certification (cert-tools) qui sera ensuite envoyé vers l’émetteur du diplôme. L’émetteur du diplôme avec sa clé privée et une certaine valeur de crypto-monnaie va transférer le diplôme dans le réseau blockchain. Le diplôme sera considéré comme une transaction à émettre dans le réseau blockchain, qui ensuite est regroupé au sein d’un bloc vérifié et valider par les mineurs. Le diplôme sera ainsi horodaté et ajouter à la blockchain. L’émetteur de certificat aura en local le certificat blockchain de l’étudiant qu’il va communiquer au serveur web pour enfin fournir la réponse à l’étudiant. Pour l’employeur, la requête correspondra a faire une vérification de l’authenticité du diplôme renseigné : l’employeur se connecte à internet avec l’adresse de l’API de vérification afin d’atteindre le serveur web. Ce dernier va solliciter le réseau blockchain pour vérifier si le diplôme renseigné par l’étudiant est authentique ou a été altéré. C’est ce qui correspond au couleur bleu de l’architecture. La couleur jaune correspond à la réponse de la requête de l’employeur souhaitant faire une vérification de l’authenticité du diplôme renseigné : le hash du diplôme sera recalculé et compare au hash existant. Une réponse a été donné au serveur web qu’il va communiquer à l’employeur à travers internet.  

Choix technologique

Pour valider l’architecture proposée, nous avons besoins des outils suivants : Figure 15 : Les technologies utilisées Le tableau suivant montre le niveau où interviennent ces techniques par rapport aux trois modules de l’architecture. python node js Docker Blockchain publique bitcoin bitcoind  Python : c’est un langage qui peut être utilisée dans de nombreux contextes et s’adapter à tous types d’utilisation grâce à des bibliothèques spécialisées. Il est particulièrement utilisé comme langage de script pour automatiser des taches simples mais fastidieuses. On l’utilise également comme langage de développement de prototype lorsqu’on a besoin d’une application fonctionnelle avant de l’optimiser avec un langage de plus bas niveau. Il possède de nombreuse bibliothèque.  Node JS : Node.js est une plateforme logicielle libre et événementielle en JavaScript orientée vers les applications réseau qui doivent pouvoir monter en charge. Elle utilise la machine virtuelle V8 et implémente sous licence MIT les spécifications Commons. Pour l’obtenir : https://nodejs.org/fr/ et choisir la version LTS le télécharger et l’installer.  Docker : c’est un programme de haut niveau nous permettant d’empaqueter une application ainsi que ses dépendances dans un contrôleur isolent et qui pourra être exécuté sur n’importe quel serveur (MAC, WINDOWS, LINUX). Le système est très léger car il n’embarque pas de système d’exploitation, d’où une meilleure utilisation des ressources. Docker permet aussi l’isolation des applications, ce qui est très utiles pour effectuer des tests sans pouvoir planter le serveur de production client.  Blockchain publique : Les blockchains publiques sont analogues à internet. Les systèmes publics sont les systèmes comme les Bitcoins ou n’importe qui avec le bon matériels et un logiciel informatique peut se connecter aux réseaux et aux informations présents à l’intérieur. Il n’y a aucune personne qui vérifie l’identité a la << porte d’entrée >>.  Bitcoin : qui est une crypto monnaie, et aussi un réseau de paiement novateur. C’est un système de transfert et de vérification monétaire .IL utilise un réseau totalement décentralisé en ce sens qu’il utilise le pair à pair (peer to peer), qu’il ne dépend, de fait, d’aucune autorité centrale.  Bitcoin d : c’est un programme qui implémente le protocole bitcoin pour une utilisation d’appel de procédure distante (RPC). C’est également le deuxième client bitcoin de l’histoire du réseau.

Formation et coursTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *