L’Importance des protocoles de communication (HTTP, FTP) pour le respect des principes FAIR

World Network
(c) freepik.com

           Comment accède-t-on à des données dans l’espace numérique qu’est le web ? Il est nécessaire de faire usage d’un ensemble de règles formelles décrivant comment transmettre et échanger des données, en particulier à travers un réseau. Ces règles sont aussi connues sous le nom de protocoles de communication. On utilisera un protocole spécifique selon l’action à faire. Les protocoles standards sont ceux les plus usités et codifiés comme tels. Seront décrits, les protocoles HTTP (HyperText Transfert Protocol) et FTP (File Transfer Protocol) car largement répandus, libres, gratuits, ouverts et libellés comme standards. De par leur nature, les protocoles respectent ainsi le A pour Accessibilité, des principes FAIR, à savoir permettre l’accès aux données et leur téléchargement.

HTTP et FTP dans un modèle de couches[1]

Les protocoles communiquent les uns avec les autres par une modélisation sous forme de couches superposées l’une sur l’autre, chaque couche dépendant de celles étant géographiquement plus bas suivant un axe vertical.

Le modèle TCP/ IP (Transmission Control Protocol/ Internet Protocol) est une suite de protocoles représentant l’ensemble des règles de communication sur Internet. Il peut être divisé en quatre couches principales :

Protocoles internet : TCP/IP MODEL
Internet Layering (c) Jsoon EU, CC BY-SA, extrait de www.wikipedia.org
  • La couche Réseau (équivalent de « link » en anglais sur le schéma ci-dessus) assure la connexion des liaisons physiques entre matériels (entre un ordinateur et un routeur par exemple).
  • La couche Internet assure le routage entre les réseaux.
  • La couche Transport assure le routage entre deux appareils.
  • La couche Application est utilisée pour la communication entre les applications de deux ordinateurs.

Plus la couche est située en haut de pile, plus elle assure la communication entre deux entités abstraites. Dans le cas de nos données, les protocoles HTTP et FTP sont utilisés dans la couche Application. Cela est cohérent car c’est à ce niveau-là que les données peuvent transiter. Dans tous les cas, il est nécessaire que ces protocoles soient standards, c’est-à-dire ouverts, libres et d’usage universel pour pouvoir procéder à la récupération des données échangées.

Le rôle de HTTP[2]

HTTP est un protocole client-serveur qui permet la consultation de sites Web. Il va chercher des ressources qui peuvent être des documents HTML (HyperText Markup Language), des vidéos ou des images pour ensuite les afficher selon une certaine mise en page spécifiée en HTML. Il peut aussi envoyer du contenu à stocker sur des serveurs (via des formulaires par exemple) ou permettre la mise à jour d’une page web en allant chercher certaines ressources sur un serveur pour actualiser une partie de la page.

Par exemple, un client (généralement un navigateur web) souhaite accéder à une page web, une requête est faite à un serveur Web qui répond en fournissant la page demandée.

HTTP peut aussi être utilisé pour échanger des données via des API (Application Programming Interfaces) web. Ce sont des solutions logicielles qui permettent aux applications informatiques de communiquer entre elles et donc de partager et d’accéder à des données lisibles par machine. Ces API peuvent autoriser un partage d’une partie uniquement de leurs données dans le cas où cela serait pertinent (données sensibles ou volume trop important non nécessaire pour la finalité recherchée). De nombreuses API bien documentées concernant l’échange de données et de métadonnées sont dénombrées.  

On citera OGC WMS pour les images de cartes géographiques. Dans un but principalement d’alimentation et d’augmentation de la visibilité de certaines ressources dans des portails numériques, les échanges de métadonnées entre entrepôts de données sont possibles via OAI-PMH [3] (Open Archives Initiative – Protocol for Metadata Harvesting). Plus exactement, les institutions souhaitant intégrer les données des entrepôts – on parlera de moissonnage de données – à leurs bibliothèques numériques, font une requête au serveur hébergeant ces données et les reçoivent sous format XML.

Le rôle de FTP[4]

FTP permet le partage de fichiers entre un client et un serveur sur un réseau. Il s’agit aussi d’un protocole client-serveur. Il permet à un client de téléverser un fichier sur un serveur ou de télécharger un fichier depuis un serveur avec l’ouverture d’une session entre le client et le serveur pendant une durée fixée.

Par exemple, un client souhaite stocker un fichier de son ordinateur sur un serveur web, le protocole FTP va permettre la communication entre ces deux machines et allouer un espace de stockage au serveur pour qu’il puisse héberger le contenu de l’utilisateur.

L’importance de ces protocoles

Les protocoles HTTP et FTP permettant la communication entre un navigateur et un serveur, sont des éléments essentiels pour l’échange de données sur le web.

Le fait que leur dénomination s’affiche dans l’URL (Uniform Resource Locator), qu’une connexion de données soit établie entre le client et le serveur et que les deux protocoles servent au transfert de fichiers, sont des caractéristiques qui les rassemblent. 

On différenciera HTTP de FTP dans le sens où FTP est efficace pour le transfert de fichiers volumineux alors que HTTP est plus usité pour l’affichage dynamique et rapide de sites web et donc est pertinent pour des transferts de fichiers de petite taille. Cette spécificité de FTP se modélise avec une connexion de données ajoutée à celle de contrôle ainsi que la nécessité d’une authentification par mot de passe pour le transfert de fichiers.

  • Ces dispositifs sont cruciaux pour le respect des principes FAIR [5], les données sont accessibles dans le sens de récupérables via HTTP et déposables via FTP. Ces protocoles doivent donc être implémentés dans les entrepôts de données pour assurer l’ouverture, l’échange et le partage des données. Les deux protocoles présentés sont libres, gratuits et ouverts, cela signifie qu’ils sont libres d’utilisation, libres de propriété et interopérables avec d’autres logiciels. L’interopérabilité n’est pas une caractéristique négligeable car cela signifie la mise à disposition d’une documentation open source constamment enrichie et mise à jour par une grande communauté ainsi qu’une compatibilité possible avec de futurs outils.

L’aspect sécurité, indispensable pour le partage des données

Bien que certaines données issues de la recherche ne nécessitent pas d’authentification pour y accéder, ceci n’est pas généralisable à toutes les données. 

En effet, une authentification est parfois nécessaire pour accéder aux données : « As open as possible, as closed as necessary ». Le A des principes FAIR n’est pas synonyme d’ouverture complète des données. L’accessibilité est à prendre au sens de communiquer les conditions exactes dans lesquelles les données sont accessibles.[6]

Par exemple, celles considérées comme sensibles[7], doivent être partagées avec des restrictions qui s’y appliquent, comme celles qui suivent :

  • données à caractère personnel
  • données relevant de la sécurité nationale
  • données sujettes à un dépôt de brevet

Dans ce cas,  les règles d’accès aux données et métadonnées doivent être clairement explicitées. Quand l’autorisation est accordée, un processus d’authentification doit exister pour qu’un humain ou une machine puisse accéder aux données de façon sécurisée.

Ce processus préalable de vérification se fait grâce à des variantes des protocoles standards avec la suffixation d’un « S » pour « Secure » à l’acronyme de base. Cet ajout signifie que l’aspect Sécurité est pris en compte dans ces nouveaux protocoles, l’ancien protocole est complété par un protocole de sécurisation, soit SSL (Secure Sockets Layers) et plus récemment TLS (Transport Layer Security).

Dans le cas de HTTPS [8] par exemple, le visiteur peut vérifier à l’aide d’un certificat d’authentification validé par une autorité fiable, l’identité d’un site web et de même le site peut vérifier l’identité du visiteur si celui-ci possède un certificat d’authentification client. Ceci permet d’une part une sécurisation de l’intégrité des données et d’autre part une confidentialité des données par restriction des droits accordés selon l’identité de l’utilisateur.

Un autre cas nécessitant l’authentification serait l’accès pour gérer les données (dépôts et gestion de dépôts).

Généralement, une authentification par pseudonyme et mot de passe avec HTTP est à faire pour le propriétaire souhaitant déposer des données, impliquant la création préalable d’un compte sur le site web. Celui-ci peut également imposer une authentification à des contributeurs par exemple.

Cela permet d’identifier le propriétaire des jeux de données et celui-ci peut spécifier, si besoin, les droits d’accès à ces données. Quant aux API, la connexion est faite de façon sécurisée via un système de clé API, une clé formée aléatoirement de caractères et de chiffres, l’équivalent d’un mot de passe.

Les données et métadonnées doivent être récupérables par le biais de protocoles de communication standards libres et ouverts selon les principes FAIR. Le bon fonctionnement du partage de données sur les entrepôts de données dépend fortement des protocoles de communication implémentés. Chaque protocole a un rôle bien attribué, HTTP permet d’afficher correctement le contenu demandé d’un site web ainsi et d’accéder à des API, interfaces d’échanges de données entre applications informatiques. FTP permet quant à lui, le dépôt et le téléchargement des données avec comme source ou destinataire l’entrepôt de données. Les deux protocoles utilisent un système d’authentification, pouvant être renforcé par des protocoles de sécurisation supplémentaires. Les protocoles utilisés par les entrepôts de données peuvent donc être un critère déterminant pour le choix final de l’entrepôt.

Notes 

[1] Australian Research Data Commons (ARDC). Standardised communications
protocols. https://ardc.edu.au/resources/standardised-communications-protocols/ 

[2]Mozilla Developer Network Web Docs. An overview of HTTP. https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview

[3]BNF. Protocole OAI-PMH.
https://www.bnf.fr/fr/protocole-oai-pmh 

[4] SPEEDCHEK. FTP. https://www.speedcheck.org/fr/wiki/ftp/ 

[5] Wikipédia. Fair data. 
https://fr.wikipedia.org/wiki/Fair_data 

[6] GO FAIR. A1.2: The protocol allows for an authentication and authorisation
where necessary. https://www.go-fair.org/fair-principles/a1-2-protocol-allows-authentication-authorisation-required/ 

[7] DORANUM.(2019). Les principes FAIR. 
https://doranum.fr/enjeux-benefices/principes-fair/ 

[8] Wikipédia. HyperText Transfert Protocol Secure.
https://fr.wikipedia.org/wiki/HyperText_Transfer_Protocol_Secure