Pour rappel, tous les sites de la BnF sont fermés le mercredi 1er janvier.
Intégrité des données numériques
L’altération des données numériques
On a généralement tendance à croire les données numériques affranchies des problèmes du monde physique. Cette idée, erronée et potentiellement dangereuse, ignore le fait que les données sont stockées sous forme binaire sur des supports physiques susceptibles de subir des altérations. Ces dernières sont principalement dues à deux facteurs :
- Le vieillissement des supports lié à des processus physico-chimiques divers, éventuellement accentués par des conditions climatiques défavorables (notamment variations importantes de température et hygrométrie, lumière, conditionnement, particules – poussière, fumées –, champs magnétiques). Une altération provoque des erreurs de lecture, erreurs qui se retrouveront même si l’objet est copié sur un support plus récent ;
- La copie ou le transfert par le réseau : les opérations de recopie sont particulièrement périlleuses pour l’objet numérique, et particulièrement le transfert via une connexion instable. En cas de variation de la connexion ou de matériel de lecture défaillant, l’objet transmis peut être une copie inexacte de son original.
Les effets de l’altération des données
Une altération des données peut avoir des conséquences plus ou moins dramatiques, de l’affichage fautif d’un unique pixel à l’impossibilité complète d’ouvrir le fichier. On constate souvent un « effet falaise » accentué par la permissivité des logiciels de lecture et des codes correcteurs d’erreur : ces derniers tentent de restituer l’objet malgré les erreurs constatées, mais si celles-ci deviennent trop nombreuses, l’objet peut devenir brutalement illisible et inexploitable.
La gestion de l’intégrité par le calcul et la vérification de l’empreinte numérique
Les activités de préservation numérique doivent donc anticiper cette éventuelle perte de lisibilité. On utilise pour cela l’empreinte numérique. Il s’agit d’une chaîne de caractères produite par l’analyse de données binaires (une suite de 0 et de 1) – cette suite peut correspondre à un texte, à un fichier ou plus rarement à un répertoire – par un algorithme. Cet algorithme a vocation à générer une chaîne de caractères spécifique à chaque suite de données binaires. L’utilisation du même algorithme sur le même fichier devrait donc générer la même chaîne de caractères ; si elle diffère, c’est que le fichier a été altéré.
Exemple
La gestion de l’intégrité consiste à générer cette empreinte numérique, à l’enregistrer pour disposer d’un point de comparaison et à la contrôler régulièrement.
Un avantage supplémentaire du calcul et de la comparaison d’empreintes numériques réside en ce qu’ils permettent d’identifier des doublons exacts de fichiers (excepté pour leur nom). C’est notamment dans ce but que les outils d’exploration d’arborescence tels qu’Archifiltre les mettent en œuvre.
À quel niveau calculer une empreinte numérique ?
Il est possible de générer une empreinte numérique à partir de toute suite de données binaires. On peut donc le faire sur un fichier, un répertoire voire une partie de fichier (bloc de données, frame, etc.).
La BnF pratique le calcul d’empreinte numérique au niveau de chaque fichier et de chaque Paquet d’informations. Elle recommande la fourniture systématique d’une empreinte numérique pour chaque fichier qui lui est transféré.
Quel algorithme choisir ?
Il existe une multitude d’algorithmes de calcul d’empreinte. Dans le domaine de la cryptographie et des signatures numériques où ils sont également utilisés, ces algorithmes sont régulièrement considérés comme obsolètes à mesure de l’augmentation des capacités de calcul des machines, qui arrivent progressivement à produire des données différentes ayant la même empreinte.
Néanmoins, dans le domaine de la préservation numérique où l’on cherche à prévenir des altérations accidentelles, il n’est pas nécessaire d’utiliser les algorithmes les plus puissants, qui peuvent également s’avérer plus coûteux en temps machine.
Parmi les plus répandus dans le domaine de la préservation numérique, on peut citer MD5, SHA-1 et SHA-256. C’est le premier que la BnF utilise actuellement pour la gestion de l’intégrité des données numériques dont elle a la charge.
Quand créer l’empreinte numérique ?
Les institutions de conservation sont incitées à la créer ou à demander sa création le plus tôt possible dans le cycle de vie des données numériques. Quant aux créateurs, ils sont encouragés à la créer avant de transférer leurs données à la BnF.
Quand la vérifier ?
Lors de chaque transfert d’un support à un autre, il est fondamental de vérifier l’intégrité des données copiées, particulièrement si ce transfert implique également un transfert de responsabilité (entre le producteur et l’institution de conservation notamment). Certains outils de transfert, tels Robocopy ou Fastcopy permettent de réaliser des copies sécurisées et réalisent à cette occasion des contrôles d’empreinte, sans pour autant en faire un rapport explicite à l’utilisateur.
Bien que de nombreux systèmes de stockage intègrent dans leurs procédures des mécanismes semblables, les institutions de conservation ont intérêt à conserver l’empreinte avec l’objet numérique. Cela leur permet de la contrôler périodiquement afin de s’assurer que les supports de stockage sont dans un état satisfaisant, mais aussi de prouver à leurs usagers l’intégrité et l’authenticité des données.
Comment la transmettre et la conserver ?
Il est donc nécessaire de conserver l’empreinte numérique des données avec celles-ci, de préférence sous une forme qu’un logiciel pourra contrôler automatiquement. Chaque standard de métadonnées et d’empaquetage propose sa méthode propre.
- Le format de métadonnées XML-METS enregistre l’empreinte numérique dans l’attribut @CHECKSUM de l’élément mets:file décrivant chaque fichier du paquet, et dans l’attribut @CHECKSUMTYPE le nom de l’algorithme utilisé ;
- Le format de métadonnées SEDA l’enregistre dans un élément MessageDigest ;
- Le standard d’empaquetage BagIt l’enregistre dans un fichier manifest-[nom de l’algorithme].txt :
Produire ces métadonnées n’est évidemment pas exigé des créateurs souhaitant confier leurs données à la BnF. Pour ces derniers, la BnF recommande plutôt la fourniture, avec chaque fichier, d’un fichier compagnon (conservé dans le même répertoire que ce dernier et nommé [nom du fichier.extension].md5). Ce fichier contient une ligne par fichier embarqué, avec contenant exclusivement son empreinte numérique MD5, deux espaces, puis le chemin du fichier (ce formalisme correspond au contenu du fichier manifest-md5.txt du format BagIt, illustré ci-dessus).
Quel(s) outil(s) ?
Les outils générant et contrôlant l’intégrité des données numériques sont très nombreux. Ils se caractérisent par leur objectif (créer et/ou vérifier), leur cible (fichier, répertoire, etc.), leur mode d’utilisation (ligne de commande ou interface graphique) et la forme de leur résultat (« bag », fichier METS, fichier compagnon, etc.). On citera notamment, sans souci d’exhaustivité :
- des utilitaires en ligne de commande : la commande Unix md5sum, le programme Windows certutil, etc. ;
- des outils avec interface graphique : MD5summer, Quickhash, etc.
- des interfaces Web s’exécutant en local, par exemple sur https://delia.culture.gouv.fr/aidecalculmd5 ;
- des bibliothèques logicielles développées par la Bibliothèque du Congrès : la Java BagIt Library : pour Java ; la bibliothèque bagit-python pour Python.
Que faire si, après vérification, l’empreinte numérique ne correspond pas ?
La restauration de données numériques est parfois possible mais demande une expertise sur les structures de données extrêmement poussée. Il est généralement plus simple, pour une institution de conservation,
- dans le cas d’un contrôle après transfert, de demander à l’émetteur de réaliser un nouveau transfert ;
- dans le cas d’un contrôle sur des données conservées, de coupler la gestion de l’intégrité numérique avec la réplication des données sous forme de plusieurs copies, et de récupérer une copie intègre en cas de défaillance.
Ressources complémentaires
Digital Preservation Coalition, Manuel de préservation numérique, 2015, 2e édition, trad. Cellule nationale de veille sur les formats, section « Intégrité et empreintes » p. 207 sq. Disponible sur https://www.dpconline.org/docs/digital-preservation/handbook/translations-3/2519-handbook-2021-fr/file#page=207 (consulté le 9 mai 2023).
Addis (Matthew), Which algorithm should I use?, Digital Preservation Coalition, 2020, doi:10.7207/twgn20-12. Disponible sur https://www.dpconline.org/docs/technology-watch-reports/2399-twgn-checksums-addis/file (consulté le 9 mai 2023).
Bernard (Thomas), « Pré-versement : le calcul d’empreintes », dans Modernisation et archives : Réflexions sur la gestion et la collecte des archives contemporaines, 2015. Disponible sur https://siaf.hypotheses.org/444 (consulté le 9 mai 2023).
Baucom (Erin), (Kussmann) Carol, Rudersdorf (Amy), Sağlik (Özhan), Sampson (Walker), Underdown (David), Utiliser les Niveaux de Préservation Numérique comme un outil d’évaluation, traduction française, 2020, trad. par Marion Humbert, Thomas Ledoux et Édouard Vasseur, identifiant . hal-02552208, version 1. Disponible sur https://bnf.hal.science/hal-02552208v1 (consulté le 20 juillet 2023).