2018 – Projet n°90 – Blockchain et certification d’attributs personnels : conception et développement

Ce projet est réalisé par Bernos Guillaume et Baudlet Matthias.

Notre projet consistera à développer une application qui se base sur la blockchain
Ethereum afin de permettre le transfert de données entre sites uniquement si l’utilisateur
est d’accord. Il faut ensuite que l’utilisateur puisse connaître tous les appels qui ont été fait
à ses données personnelles afin de voir qu’aucun accès non autorisé n’a été effectué.
La partie relative à la blockchain sera développée avec Solidity qui est un langage
propre à la blockchain Ethereum alors que ce qui permettra d'interagir avec la blockchain
sera écrit en Go qui est un langage très utilisé avec Ethereum.
Résumé dans les grandes lignes de l’article “Blockchain-based Data Usage Auditing
Scheme” par Nesrine Kaaniche et Maryline Laurent décrivant le système de “converter” à
implémenter :
L’objectif est de permettre le transfert de données privées d’un utilisateur entre différents
serveurs de manière anonyme, sécurisée et auditable. Un élément appelé le converter sera la
pièce centrale de ce système. Lors de ses contacts avec différents serveurs, un utilisateur est
amené à être représenté par plusieurs pseudonymes générés par le converter selon les clés
publiques des serveurs. Cette spécification empêche les serveurs mal intentionnés de “recouper”
les informations entre eux pour obtenir des données interdites.

Lorsque cet échange est voulu, le converter devra alors effectuer la transformation d’un
pseudonyme du serveur A en un pseudonyme du serveur B pour permettre de correctement
associer les données concernant un même utilisateur.
Chacune de ces procédure est inscrite dans une blockchain dont les serveurs et le
converter sont des agent afin de garantir l’intégrité de l’auditabilité des transfert de données.

Concrètement, notre rendu sera une application codée avec Solidity effectuant le
travail du converter : génération de pseudonymes, échange de données sécurisé entre
serveurs, inscriptions dans la blockchain et auditabilité. Si la première implémentation est
réalisée suffisamment vite, nous pourrons rajouter de nouvelles fonctionnalités et crypter
l’ensemble des échanges pour assurer encore plus de confidentialité. Cela permettra de
simuler au maximum l’utilisation qui pourrait en être faite dans un contexte réel.

Annonce