EN
← Dossiers techniques
Preuve

Une archive qui ne se réécrit pas en silence

Chaque entrée de notre registre contient l’empreinte de la précédente. Modifier une vieille entrée change toutes celles qui suivent, donc ça se voit.

N’importe quel site peut promettre qu’il ne modifie pas ses articles après coup. Personne ne peut le prouver, et le lecteur n’a aucun moyen de vérifier. Nous avons donc mis en place un mécanisme qui rend toute retouche du passé immédiatement visible, et qu’un lecteur contrôle lui-même en une commande.

159Entrées dans la chaîne
3dbd38eda4d943a3…Tête de chaîne
RFC 3161Horodatagefreetsa.org

Le mécanisme

Une empreinte est un court code calculé à partir d’un texte : changez une virgule et le code change entièrement. Chaque entrée de notre registre contient l’empreinte de l’entrée précédente. Modifier une vieille entrée change son empreinte, donc celle de la suivante, et ainsi de suite jusqu’à la dernière — celle qu’on appelle la tête. Un lecteur qui a noté la tête hier et la recalcule aujourd’hui voit tout de suite si nous avons touché au passé.

Ce système n’empêche pas de réécrire une archive. Il fait que ça se voit. C’est suffisant.

Pourquoi un tiers doit dater la tête

Il reste un trou : rien ne nous empêche de refabriquer toute la chaîne d’un coup, avec une histoire différente mais cohérente. Il faut donc une date que nous ne contrôlons pas. Nous envoyons la tête à un service extérieur d’horodatage, qui nous renvoie un reçu signé attestant que ce code existait à cette date précise.

Ce service ne voit jamais nos articles : il ne reçoit que le code, qui ne permet pas de les reconstituer. Il ne garantit donc pas que nous disons la vérité. Il garantit que nous disions cela ce jour-là — et c’est exactement ce qu’il faut pour qu’une réécriture devienne repérable.

node outils/chaine.mjs --verifier
# Chaîne intacte — 159 entrées
# tête 3dbd38eda4d943a37a0af51e6e4fc327…