WOLEET AUTOMATISE LE DÉPÔT DE PREUVES D’EXISTENCE DIGITALE

Avec un nombre croissant d’opérations reposant sur des processus de commande et de traitement numériques, l’industrie doit d’ores et déjà déployer de nouveaux moyens permettant de prouver la validité d’un programme, d’une application, d’un rapport de production, etc. Ces procédés souvent lourds et coûteux peuvent être considérablement allégés et gagner en agilité grâce aux blockchains… comme le démontre la start-up Woleet.


Si l’on en croit Wikipédia : « une blockchain ou chaîne de blocs est une base de données distribuée transparente, sécurisée et fonctionnant sans organe central de contrôle » .

Dans cette base de données, on va trouver une pile de blocs, tous horodatés et signés individuellement par un certificat cryptographié. Ce dernier caractérise de manière individuelle et sans risque de doublon, un bloc donné en s’appuyant d’une part sur les informations qu’il contient mais aussi, en tenant compte de la signature sécurisée du dernier bloc enregistré. Les blocs sont ainsi chaînés les uns aux autres et, toute falsification ultérieure d’un bloc, obligerait à recalculer tous les certificats des blocs enregistrés depuis sa création.

Au reste, la modification d’un bloc déjà présent dans la chaîne serait pour le moins inutile puisque la base de données dans son ensemble, est dupliquée sur un grand nombre de machines n’ayant entre elles d’autre lien, que la connexion au réseau qui les relie de manière permanente ou temporaire.

BITCOIN, LA BLOCKCHAIN UNIVERSELLE ?

Voilà en quelques mots, ce qu’est une chaîne de blocs… L’application la plus connue de cette technologie est la monnaie virtuelle Bitcoin qui depuis sa création en 2009, n’a cessé de se développer et de gagner de nouveaux adeptes. Cette monnaie qui ne repose sur aucun système central de régulation, est aujourd’hui cotée en dollars comme en euros et s’échange même contre des espèces sonnantes et trébuchantes.

Dans ce principe collaboratif, personne n’a besoin de faire confiance à une personne en particulier pour effectuer un échange quand il suffit de faire confiance à l’ensemble des parties prenantes du système de transaction. Pour simplifier, tout le monde vérifie pour tout le monde puisque chaque participant du système de transaction peut disposer d’une copie intégrale du livre des écritures comptables et consulter chaque enregistrement qui y est consigné.

La sécurité du système repose sur une infrastructure à clés publiques et privées. Si l’on prend le cas de la monnaie virtuelle Bitcoin, chaque participant communique sa clé publique lorsqu’il doit recevoir un crédit. Il ne se sert de sa clé privée que pour initier une opération qui va débiter son portemonnaie électronique au profit d’un destinataire identifié par sa clé publique. Si la clé publique peut être communiquée à tous, la clé privée en revanche doit demeurer strictement confidentielle. Celui qui perd sa clé privée n’aura aucun moyen de récupérer ou de réutiliser son crédit et celui qui se la fait voler, risque bien de se faire vider son compte sans le moindre espoir de récupérer le moindre… bit . Au reste, toutes les transactions sont anonymes puisque la chaîne de bloc n’enregistre que les clés publiques.

La blockchain se veut une solution de décentralisation et de désintermédiation assurant la sécurité d’échanges d’information ou de transactions – y compris financières – en totale transparence et sans recours à des tiers de confiance.

Toutes les informations sont stockées dans une pile d’enregistrements qui plutôt que d’être centralisée dans une seule et unique base de données, va être dupliquée chez tous les participants du réseau d’échange qui le souhaitent ou l’acceptent. Ainsi, il existe un très grand nombre de copies de la chaîne de blocs – potentiellement, autant que d’utilisateurs du réseau –, ce qui rend l’information totalement transparente.

Ajoutons que pour pirater le système, il faudrait modifier tous les fichiers qui existent ce qui est quasiment impossible. A titre d’information, on peut signaler qu’à l’heure où cet article est rédigé, l’ensemble de la chaîne de blocs Bitcoin, pèse plus de 140 giga-octets.

DES TRANSACTIONS QUI SONT TOUTES CERTIFIÉES

N’importe qui peut écrire une transaction dans ce registre distribué global : il suffit d’enregistrer la transaction dans un fichier et de le partager avec les autres utilisateurs pour qu’ils sachent qu'elle a été effectuée.

Chaque transaction sur le réseau est validée par une méthode de cryptologie asymétrique permettant de vérifier qu’elle est autorisée par les deux utilisateurs de l’échange et qu’elle est réalisable. Il faut ensuite synchroniser tous les fichiers afin que tous les utilisateurs sachent que de nouveaux échanges ont été réalisés et qu’ils doivent être enregistrés.

Pour en arriver là, les ordinateurs doivent résoudre un problème à la fois, mathématique et informatique qui se complexifie au fur et à mesure que la charge de la blockchain augmente. Pour assurer l’inaltérabilité des fichiers, chaque bloc dans la chaîne contient une clé de contexte qui dépend de données caractérisant le bloc précédent. Plus une chaîne de blocs est active, plus elle est sûre puisque chaque bloc nouveau sécurise les précédents.

On remarquera en corollaire qu’une blockchain enregistre continuellement de nouvelles informations sans jamais en supprimer. Ses utilisateurs, surtout s’ils sont en constante augmentation, sont donc confrontés à un problème de croissance quasi exponentiel du volume de données produit. Dans de telles conditions de fonctionnement, la question de la viabilité du système à long terme est posée à la fois, en terme de disponibilité d’une puissance de calcul suffisante pour garantir la rapidité des transactions mais aussi, en matière de stockage de la base de données sans même parler de sa redistribution...

UNE PREUVE À TOUTE ÉPREUVE

Opérationnelle depuis à peu près un an, la start-up Woleet (www.woleet.io) se propose d’utiliser la chaîne de blocs Bitcoin pour y ancrer des données d’entreprises en enregistrant une information dans ce grand registre public infalsifiable.

Prenons l’exemple d’un programme d’automatisation ou d’une application de supervision créée dans l’environnement de développement d’un Scada. L’industriel ou le développeur qui l’a mis au point va le plus souvent souhaiter garder une trace voire même, une preuve datant irréfutablement de sa mise au point ou de sa finalisation opérationnelle.

Via son offre SaaS sur Internet ou au travers d’une interface de programmation (API) qui permet d’intégrer le service à d’autres logiciels, Woleet va d’abord signer les données de l’entreprise en créant un certificat SHA-256 puis, elle va le lier à une transaction Bitcoin dont elle est à la fois l’émetteur et le destinataire. Cette transaction dûment enregistrée dans la chaîne de blocs, il est possible de retrouver la date et même l’heure de cette transaction et grâce au certificat qu’elle contient, de la relier au fichier (un document contractuel, un programme, une application, un code-source, un ordre ou un rapport de production, etc.) correspondant à la signature SHA-256.

En résumé, ce processus lie un fichier à une transaction cryptographique horodatée, prouvant par la même qu’il existait bien déjà en l’état à la date de la transaction. La preuve fournie en retour – le reçu d’ancrage – sera vérifiable indépendamment par toute personne disposant du fichier ancré et du reçu d’ancrage correspondant.

A aucun moment, les informations de l’entreprise ne transitent par le réseau de Woleet. Même lorsque le client passe par le service en ligne de la start-up, le fichier soumis au processus d’analyse est traité localement au moyen d’un script reçu par le navigateur Web. Ce programme en Java va calculer la signature SHA-256 et seule cette information remontera vers les systèmes de Woleet. Le délai d’ancrage qui prend entre une et vingt-quatre heures, dépend du type de contrat souscrit auprès de Woleet.

En retour, l’entreprise obtient un reçu d’ancrage qui prend la forme d’un fichier JSON contenant les informations nécessaires pour vérifier l’enregistrement de la signature dans la chaîne de blocs. Il est indispensable de sauvegarder ce reçu d’ancrage avec le fichier correspondant puisque les deux sont nécessaires s’il est besoin de procéder à une vérification. En cas de perte du reçu d’ancrage, Woleet peut le régénérer à tout moment en passant par l‘interface du service en ligne ou via un appel de l’API.

Les cas d’usage de l’ancrage de données sont nombreux : de la certification à l’authentification en passant par la preuve d’antériorité ou la traçabilité… tous les cas où la donnée devra être prouvable de facto . L’ancrage de données est un outil puissant qui peut enrichir des échanges numériques en leur apportant une couche de sécurité transverse et interopérable.

L’ancrage de données dans la blockchain publique Bitcoin, n’a pas encore de valeur légale clairement définie. Elle reste un élément de preuve qui peut concourir à la manifestation de la vérité devant les tribunaux en l’absence d’autres moyens recevables. Dans le cadre privé comme un partenariat liant deux entreprises ou un processus métier destiné à faciliter le travail de différents opérateurs (développeurs, automaticiens, techniciens de maintenance, etc.), cela reste un outil de travail peu coûteux, facile à mettre en oeuvre et dont l’usage peut rapidement devenir consensuel entre les parties prenantes.

UN OUTIL INTÉGRABLE DANS LES LOGICIELS INDUSTRIELS

Comme avec le service en ligne, l'interface de programmation (API) de Woleet permet de créer des preuves cryptographiques durables et infaillibles utilisables pour prouver que des données existaient dans un état précis à une date connue et, éventuellement qu’elles sont signées par une autorité de certification.

Cette API crée des preuves d'existence conforme à la chaîne open source ChainPoint qui peuvent être vérifiées à l'aide d'un outil compatible avec ce standard sans aucune intervention de Woleet. Ces informations resteraient ainsi vérifiables même si la startup Woleet cessait d’exister.

Pour créer une preuve d'existence pour un fichier, il suffit de calculer en se servant d’une clé privée, le hash SHA-256 du fichier qui peut être de toute taille ou de toute nature. Mais ce n’est pas suffisant pour attester de l’existence de cette signature de fichier. Pour créer une telle preuve, il faut ajouter au hash SHA-256 du fichier, la clé publique correspondant à la clé privée précédemment utilisée et une signature permettant d’identifier l’utilisateur. En option, il est possible de fournir un lien hypertexte (URL) permettant de vérifier l’identité de l’utilisateur.

Les ancres créées sont automatiquement collectées par la plateforme et enregistrées dans la chaîne de blocs, au terme d’un processus qui prend de quelques minutes à quelques heures, en fonction de la charge du réseau Bitcoin et du niveau de priorité du compte de l’utilisateur.

Une fois qu'une ancre est enregistrée dans la blockchain Bitcoin, l’API permet de récupérer la preuve de dépôt. C’est la seule information nécessaire pour prouver l'existence d’une signature de fichier à une date donnée. Par ailleurs, il est évidement indispensable de conserver une copie du fichier correspondant puisqu’il n’est pas intégré à la preuve. Pour vérifier une preuve d’existence, l’API valide son ancrage dans une transaction Bitcoin et compare le hash SHA-256 du fichier correspondant avec celui enregistré dans la preuve de dépôt. La vérification de la preuve de signature par l’utilisateur relève d’un processus similaire.