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 automatiquem
nt
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.