Que veut dire « libre » (ou « open source ») pour un grand modèle de langage ?

Le flou entretenu entre open source et libre, déjà ancien et persistant dans l’industrie des technologies de l’information, revêt une nouvelle importance maintenant que les entreprises se lancent dans la course aux IA…
Explications, décantation et clarification par Stéphane Bortzmeyer, auquel nous ouvrons bien volontiers nos colonnes.


Vous le savez, les grands modèles de langage (ou LLM, pour « Large Language Model ») sont à la mode. Ces mécanismes, que le marketing met sous l’étiquette vague et sensationnaliste d’IA (Intelligence Artificielle), ont connu des progrès spectaculaires ces dernières années.
Une de leurs applications les plus connues est la génération de textes ou d’images. L’ouverture au public de ChatGPT, en novembre 2022, a popularisé cette application. Chaque grande entreprise de l’informatique sort désormais son propre modèle, son propre LLM.
Il faut donc se distinguer du concurrent et, pour cela, certains utilisent des arguments qui devraient plaire aux lecteurs et lectrices du Framablog, en affirmant que leur modèle est (en anglais dans le texte) « open source ». Est-ce vrai ou bien est-ce du « libre-washing » ?
Et qu’est-ce que cela veut dire pour cet objet un peu particulier qu’est un modèle de langage ?

Copie d'écran d'un tweet de Viva technology citant le président Macron au salon Vivatech où il insiste sur les LLM souverains. le texte le cite "on doit accélérer l'open source et tous les grands modèles et avoir des LMM européens qui permettront de réguler. i faut ensuite qu'on arrive à régler des cas critiques, savoir si c'est de l'IA ou pas".
Tout le monde parle des LLM (ici, avec une faute de frappe).

Source ouverte ?

Traitons d’abord un cas pénible mais fréquent : que veut dire « open source » ? Le terme désigne normalement l’information qui est librement disponible. C’est en ce sens que les diplomates, les chercheurs, les journalistes et les espions parlent de ROSO (Renseignement d’Origine en Sources Ouvertes) ou d’OSINT (Open Source Intelligence). Mais, dans le contexte du logiciel, le terme a acquis un autre sens quand un groupe de personnes, en 1998, a décidé d’essayer de remplacer le terme de « logiciel libre », qui faisait peur aux décideurs, par celui d’« open source ». Ils ont produit une définition du terme qu’on peut considérer comme la définition officielle d’« open source ». Il est intéressant de noter qu’en pratique, cette définition est quasiment équivalente aux définitions classiques du logiciel libre et que des phrases comme « le logiciel X n’est pas libre mais est open source » n’ont donc pas de sens. Ceci dit, la plupart des gens qui utilisent le terme « open source » ne connaissent ni l’histoire, ni la politique, ni la définition « officielle » et ce terme, en réalité, est utilisé pour tout et n’importe quoi. On peut donc se dire « open source » sans risque d’être contredit. Je vais donc plutôt me pencher sur la question « ces modèles sont-ils libres ? ».

Grand modèle de langage ?

Le cas du logiciel est désormais bien connu et, sauf grande malhonnêteté intellectuelle, il est facile de dire si un logiciel est libre ou pas. Mais un modèle de langage ? C’est plus compliqué, Revenons un peu sur le fonctionnement d’un LLM (grand modèle de langage). On part d’une certaine quantité de données, par exemple des textes, le « dataset ». On applique divers traitements à ces données pour produire un premier modèle. Un modèle n’est ni un programme, ni un pur ensemble de données. C’est un objet intermédiaire, qui tient des deux. Après d’éventuels raffinements et ajouts, le modèle va être utilisé par un programme (le moteur) qui va le faire tourner et, par exemple, générer du texte. Le moteur en question peut être libre ou pas. Ainsi, la bibliothèque transformers est clairement libre (licence Apache), ainsi que les bibliothèques dont elle dépend (comme PyTorch). Mais c’est le modèle qu’elle va exécuter qui détermine la qualité du résultat. Et la question du caractère libre ou pas du modèle est bien plus délicate.

Notons au passage que, vu l’importante consommation de ressources matérielles qu’utilisent ces LLM, ils sont souvent exécutés sur une grosse machine distante (le mythique « cloud »). Lorsque vous jouez avec ChatGPT, le modèle (GPT 3 au début, GPT 4 désormais) n’est pas téléchargé chez vous. Vous avez donc le service ChatGPT, qui utilise le modèle GPT.

Mais qui produit ces modèles (on verra plus loin que c’est une tâche non triviale) ? Toutes les grandes entreprises du numérique ont le leur (OpenAI a le GPT qui propulse ChatGPT, Meta a Llama), mais il en existe bien d’autres (Bloom, Falcon, etc), sans compter ceux qui sont dérivés d’un modèle existant. Beaucoup de ces modèles sont disponibles sur Hugging Face (« le GitHub de l’IA », si vous cherchez une « catch phrase ») et vous verrez donc bien des références à Hugging Face dans la suite de cet article.  Prenons par exemple le modèle Falcon. Sa fiche sur Hugging Face nous donne ses caractéristiques techniques, le jeu de données sur lequel il a été entrainé (on verra que tous les modèles sont loin d’être aussi transparents sur leur création) et la licence utilisée (licence Apache, une licence libre). Hugging Face distribue également des jeux de données d’entrainement.

Dans cet exemple ci-dessous (trouvé dans la documentation de Hugging Face), on fait tourner le moteur transformers (plus exactement, transformers, plus diverses bibliothèques logicielles) sur le modèle xlnet-base-cased en lui posant la question « Es-tu du logiciel libre ? » :

% python run_generation.py --model_type=xlnet --model_name_or_path=xlnet-base-cased
...
Model prompt >>> Are you free software?
This is a friendly reminder - the current text generation call will exceed the model's predefined maximum length (-1). Depending on the model, you may observe exceptions, performance degradation, or nothing at all.
=== GENERATED SEQUENCE 1 ===
Are you free software? Are you a professional? Are you a Master of Technical Knowledge? Are you a Professional?

Ce modèle, comme vous le voyez, est bien moins performant que celui qui est derrière le service ChatGPT ; je l’ai choisi parce qu’il peut tourner sur un ordinateur ordinaire.

Vous voulez voir du code source en langage Python ? Voici un exemple d’un programme qui fait à peu près la même chose :

from transformers import pipeline

generator = pipeline("text-generation", model="DunnBC22/xlnet-base-cased-finetuned-WikiNeural-PoS") 
print(generator("Are you free software?"))

Le modèle utilisé est un raffinement du précédent, DunnBC22/xlnet-base-cased-finetuned-WikiNeural-PoS. Il produit lui aussi du contenu de qualité contestable([{‘generated_text’: « Are you free software? What ever you may have played online over your days? Are you playing these games? Any these these hours where you aren’t wearing any heavy clothing?) mais, bon, c’est un simple exemple, pas un usage intelligent de ces modèles.

 

Un chat gris pensif dans une librairie, assis sur un bac empli de livres

Les LLM n’ont pas de corps (comme Scarlett Johansson dans le film « Her ») et ne sont donc pas faciles à illustrer. Plutôt qu’une de ces stupides illustrations de robot (les LLM n’ont pas de corps, bon sang !), je mets une image d’un chat certainement intelligent. Drew Coffman, CC BY 2.0, via Wikimedia Commons

 

Que veut dire « libre » pour un LLM ?

Les définitions classiques du logiciel libre ne s’appliquent pas telles quelles. Des entreprises (et les journalistes paresseux qui relaient leurs communiqués de presse sans vérifier) peuvent dire que leur modèle est « open source » simplement parce qu’on peut le télécharger et l’utiliser. C’est très loin de la liberté. En effet, cette simple autorisation ne permet pas les libertés suivantes :

  • Connaître le jeu de données utilisé pour l’entrainement, ce qui permettrait de connaitre les choix effectués par les auteurs du modèle (quels textes ils ont retenu, quels textes ils ont écarté) et savoir qui a écrit les textes en question (et n’était pas forcément d’accord pour cette utilisation).
  • Connaître les innombrables choix techniques qui ont été faits pour transformer ces textes en un modèle. (Rappelez-vous  : un algorithme, ce sont les décisions de quelqu’un d’autre.)

Sans ces informations, on ne peut pas refaire le modèle différemment (alors que la possibilité de modifier le programme est une des libertés essentielles pour qu’un logiciel soit qualifié de libre). Certes, on peut affiner le modèle (« fine-tuning a pre-trained model », diront les documentations) mais cela ne modifie pas le modèle lui-même, certains choix sont irréversibles (par exemple des choix de censure). Vous pouvez créer un nouveau modèle à partir du modèle initial (si la licence prétendument « open source » le permet) mais c’est tout.

Un exemple de libre-washing

Le 18 juillet 2023, l’entreprise Meta a annoncé la disponibilité de la version 2 de son modèle Llama, et le fait qu’il soit « open source ». Meta avait même convaincu un certain nombre de personnalités de signer un appel de soutien, une initiative rare dans le capitalisme. Imagine-t-on Microsoft faire signer un appel de soutien et de félicitations pour une nouvelle version de Windows ? En réalité, la licence est très restrictive, même le simple usage du modèle est limité. Par exemple, on ne peut pas utiliser Llama pour améliorer un autre modèle (concurrent). La démonstration la plus simple de la non-liberté est que, pour utiliser le modèle Llama sur Hugging Face, vous devez soumettre une candidature, que Meta accepte ou pas (« Cannot access gated repo for url https://huggingface.co/meta-llama/Llama-2-7b/resolve/main/config.json. Access to model meta-llama/Llama-2-7b is restricted and you are not in the authorized list. Visit https://huggingface.co/meta-llama/Llama-2-7b to ask for access. »)

Mais la communication dans l’industrie du numérique est telle que très peu de gens ont vérifié. Beaucoup de commentateurs et de gourous ont simplement relayé la propagande de Meta. Les auteurs de la définition originale d’« open source » ont expliqué clairement que Llama n’avait rien d’« open source », même en étant très laxiste sur l’utilisation du terme. Ceci dit, il y a une certaine ironie derrière le fait que les mêmes personnes, celles de cette Open Source Initiative, critiquent Meta alors même qu’elles avaient inventé le terme « open source » pour brouiller les pistes et relativiser l’importance de la liberté.

Au contraire, un modèle comme Falcon coche toutes les cases et peut très probablement être qualifié de libre.

La taille compte

Si une organisation qui crée un LLM publie le jeu de données utilisé, tous les réglages utilisés pendant l’entrainement, et permet ensuite son utilisation, sa modification et sa redistribution, est-ce que le modèle peut être qualifié de libre ? Oui, certainement, mais on peut ajouter une restriction, le problème pratique. En effet, un modèle significatif (disons, permettant des résultats qui ne sont pas ridicules par rapport à ceux de ChatGPT) nécessite une quantité colossale de données et des machines énormes pour l’entrainement. L’exécution du modèle par le moteur peut être plus économe. Encore qu’elle soit hors de portée, par exemple, de l’ordiphone classique. Si une application « utilisant l’IA » tourne soi-disant sur votre ordiphone, c’est simplement parce que le gros du travail est fait par un ordinateur distant, à qui l’application envoie vos données (ce qui pose divers problèmes liés à la vie privée, mais c’est une autre histoire). Même si l’ordiphone avait les capacités nécessaires, faire tourner un modèle non trivial épuiserait vite sa batterie. Certains fabricants promettent des LLM tournant sur l’ordiphone lui-même (« on-device ») mais c’est loin d’être réalisé.

Mais l’entraînement d’un modèle non trivial est bien pire. Non seulement il faut télécharger des téra-octets sur son disque dur, et les stocker, mais il faut des dizaines d’ordinateurs rapides équipés de GPU (puces graphiques) pour créer le modèle. Le modèle Llama aurait nécessité des milliers de machines et Bloom une bonne partie d’un super-calculateur. Cette histoire de taille ne remet pas en question le caractère libre du modèle, mais cela limite quand même cette liberté en pratique. Un peu comme si on vous disait « vous êtes libre de passer votre week-end sur la Lune, d’ailleurs voici les plans de la fusée ». Le monde du logiciel libre n’a pas encore beaucoup réfléchi à ce genre de problèmes. (Qui ne touche pas que l’IA : ainsi, un logiciel très complexe, comme un navigateur Web, peut être libre, sans que pour autant les modifications soit une entreprise raisonnable.) En pratique, pour l’instant, il y a donc peu de gens qui ré-entrainent le modèle, faisant au contraire une confiance aveugle à ce qu’ils ont téléchargé (voire utilisé à distance).

Conclusion

Pour l’instant, la question de savoir ce que signifie la liberté pour un modèle de langage reste donc ouverte. L’Open Source Initiative a lancé un projet pour arriver à une définition. Je ne connais pas d’effort analogue du côté de la FSF mais plus tard, peut-être ?




On entend trop le mot « algorithme »

Dans les débats politiques au sujet du Web et du numérique en général, on parle souvent d’« algorithmes ». Il n’est peut-être pas inutile de revenir sur ce qu’est un algorithme et sur ce qu’il n’est pas. Si vous êtes informaticien·ne, vous savez déjà tout cela, mais, si ce n’est pas le cas, vous apprendrez peut-être ici une chose ou deux.

Par exemple, dans le numéro 3790 du magazine Télérama, en date du 3 septembre 2022, la directrice générale de YouTube, Susan Wojcicki, déclarait « Nous ne faisons pas d’éditorial au sens propre puisque tous nos contenus sont recommandés par des algorithmes ». Cette phrase est un condensé de mensonges, bien sûr. Wojcicki est bien placée pour savoir ce qu’est un algorithme mais elle essaie de faire croire qu’il s’agirait d’une sorte de processus magique et éthéré, flottant loin au-dessus des passions humaines, et n’agissant que pour notre bien.

Au contraire, un algorithme est une suite de décisions. Un algorithme, c’est un ensemble d’étapes qu’on va suivre pour un certain but. Choisir le but est déjà une décision. (Quel est le but des algorithmes de recommandation de YouTube ? Probablement de vous faire rester le plus longtemps possible, pour que vous avaliez davantage de publicité.) Mais choisir les étapes est aussi une décision. Rien dans le monde numérique ne se fait tout seul : des personnes ont décidé de l’algorithme. Que les recommandations de YouTube soient issues d’un humain qui vous observerait et déciderait, ou d’un programme automatique, dans les deux cas, c’est la décision de YouTube. Et il y a donc bien « éditorialisation ». YouTube n’est pas neutre. Même chose évidemment pour le moteur de recherche de la même entreprise, Google. Il classe les résultats en fonction de ce que Google a décidé, lors de l’écriture du programme. (Notez que c’est bien ce qu’on demande à un moteur de recherche : s’il trouvait 10 000 résultats et ne les classait pas, on serait bien ennuyé·e.)

On explique parfois l’algorithme en citant l’exemple d’une recette de cuisine : faites ceci, puis faites cela, ajouter ça, mettez le four à telle température. Mais les algorithmes ne sont pas juste une suite d’étapes, à effectuer quoiqu’il arrive. Ils incluent notamment ce qu’on nomme des tests, par exemple « si telle condition, alors faire ceci, sinon faire cela ». Un recette de cuisine qui contiendrait « si vous avez de la moutarde, ajoutez-en une cuillère » donne une meilleure idée de ce qu’est un algorithme.

Le mot d’algorithme vient d’Al-Khwârizmî (محمد بن موسى الخوارزمي), un mathématicien d’origine persane du 8e-9e siècle, qui travaillait à Bagdad (la Silicon Valley de l’époque, là où il fallait être pour travailler au plus haut niveau). Mais le concept d’algorithme existait bien avant lui. Vous avez peut-être appris à l’école l’algorithme d’Euclide pour trouver le PGCD (plus grand commun diviseur), algorithme conçu plus de dix siècles avant Al-Khwârizmî. Mais ce dernier a été le premier à décrire en détail l’idée d’algorithme et à proposer une classification des algorithmes.

 

Statue d'Al-Khwârizmî
Statue d’Al-Khwârizmî à Khiva, Ouzbékistan (portrait imaginaire, car on ne connait pas de portrait réel de l’époque).

 

Le principe de l’algorithme est donc très antérieur à l’ordinateur. Par exemple, une personne qui répond au téléphone pour une « hotline » a en général reçu des instructions extrêmement précises sur ce qu’il faut dire et pas dire, avec interdiction de s’en éloigner. Dans le monde des « hotlines », cela se nomme un script, mais c’est aussi un algorithme ; si le client dit ceci, répondre cela, etc. Remplacer les algorithmes par des humains pour les décisions, comme le préconisent certains, n’a donc pas de sens si ces humains appliquent strictement un script : ce sera toujours un algorithme.

 

Euclide
Euclide, vu par le peintre Justin de Gand. (Là encore, c’est une œuvre d’imagination, on ne sait pas à quoi ressemblait Euclide)

 

Et à propos d’humains qui suivent un algorithme, comment se faisaient les calculs longs et complexes avant l’invention de l’ordinateur ? Il y avait des aides mécaniques (boulier, règle à calcul…) mais le gros du travail était fait par des humains. En français, autrefois, une « calculatrice » n’était pas un ordinateur mais une humaine qui passait sa journée à mouliner des chiffres. On pouvait avoir comme métier « calculatrice dans une compagnie d’assurances ». Même chose pour « computer » en anglais ; désignant aujourd’hui un ordinateur, il désignait autrefois un·e humain·e. Ce travail est bien montré dans le film « Les figures de l’ombre », de Theodore Melfi, qui se passe au moment où ces calculateurs humains sont peu à peu remplacés par des ordinateurs. (Le titre français du film fait perdre le double sens du mot « figures » en anglais, qui désigne un visage mais aussi un chiffre.)

Les programmes, eux, sont bien plus récents que les algorithmes. Ils sont également apparus avant l’invention de l’ordinateur, mais n’ont réellement décollé qu’une fois qu’on disposait d’une machine pour les exécuter automatiquement, et fidèlement. Un programme, c’est la forme concrète d’un algorithme. Écrit dans un langage de programmation, comme PHP, Java, Python ou Rust, le programme est plus précis que l’algorithme et ne laisse place à aucune ambiguïté : les ordinateurs ne prennent pas d’initiatives, tout doit être spécifié. La maternité de la programmation est souvent attribuée à Ada Lovelace au 19e siècle. Comme toujours dans l’histoire des sciences et des techniques, il n’y a évidement pas un·e inventeu·r·se unique, mais une longue chaîne de personnes qui ont petit à petit développé l’idée.

 

Un programme mettant en œuvre l'algorithme d'Euclide
Un programme écrit dans le langage Python, et mettant en œuvre l’algorithme d’Euclide de calcul du PGCD.

 

Le premier point important de cet article était qu’un algorithme, c’est une série de décisions (et la déclaration de Wojcicki au début, lorsqu’elle essaie de diminuer la responsabilité de YouTube, est donc ridicule). Un algorithme n’est pas un phénomène naturel mais la formalisation de décisions prises par des humains. Le fait qu’il soit programmé, puis exécuté par un ordinateur, n’exonère donc pas ces humains de leurs choix. (Et, je me répète, demander que les décisions soient prises « par des humains et pas par des algorithmes » n’a guère de sens : ce sont toujours des humains qui ont décidé, même quand leur décision passe via un algorithme.)

Le deuxième point qui me semble important est que tout système informatique (et je rappelle que l’engin plat qu’on met dans sa poche, et que le marketing nomme « smartphone », est un ordinateur) fonctionne avec des algorithmes. Le ministre de l’Intérieur Gérald Darmanin avait déclaré, à propos de la surveillance automatisée des citoyens, « De plus, alors que toutes les sociétés commerciales peuvent utiliser les données fournies par des algorithmes, seul l’État n’aurait pas le droit de le faire […] ? » et avait appelé à « pérenniser l’utilisation des algorithmes ». Par delà la question politique de fond, ces déclarations sont bien sûr absurdes. L’État utilise des algorithmes depuis longtemps, depuis qu’il utilise des ordinateurs. Mais il ne s’agit pas seulement de l’ignorance (et du mépris pour la technique) d’un ministre. L’utilisation du terme « algorithme » vise à faire croire qu’il s’agit de quelque chose de nouveau, afin de brouiller le débat sur les usages de l’informatique, et d’empêcher les citoyen·nes d’y participer utilement. La réalité, je le redis, est que cela fait longtemps qu’il existe des algorithmes et qu’ils sont utilisés.

Il y a par contre une nouveauté qui a pris de l’importance ces dernières années, ce sont les systèmes à apprentissage (parfois désignés par l’acronyme marketing IA – Intelligence Artificielle, qui ne veut rien dire) ou machine learning en anglais. Il existe de nombreux systèmes de ce genre, très variés. Mais le point commun est l’utilisation d’algorithmes qui évoluent sous l’influence des données qu’on leur donne. Pour prendre un exemple simpliste, on donne au programme des photos de chiens et de chats, lui indiquant à chaque fois s’il s’agit d’un chien ou d’un chat, et, après un grand nombre de photos, le programme aura « appris » et pourra classer correctement une nouvelle photo. Il y a beaucoup à dire sur ces systèmes à apprentissage mais, ici, je vais me contenter de faire remarquer qu’ils ne remettent pas en cause le pouvoir de décision. Au lieu de règles explicites dans un algorithme (« s’il a des griffes rétractiles, c’est un chat »), le système de décision est composé de l’algorithme qui apprend et des données qu’on lui soumet.

Il n’y a donc pas de changement fondamental : le système informatique qui prend la décision a toujours été conçu et entraîné par des humains, et ce sont leurs choix qui se refléteront dans les décisions. Ainsi, si on utilise un tel système pour traiter les CV dans un service de ressources humaines, si l’entreprise avait l’habitude de recruter préférentiellement des hommes, et si on entraîne l’algorithme avec les choix passés, il se mettra à privilégier les CV des hommes, pas parce qu’il serait « sexiste » (les algorithmes n’ont pas d’opinion ou de préjugés) mais parce que c’est ce que ses maîtres humains lui ont demandé, via les données qu’ils ont choisies.

Bref, chaque fois que vous entendrez quelqu’un éluder sa responsabilité en se cachant derrière « c’est l’algorithme », rappelez-lui qu’un algorithme, c’est un ensemble de décisions prises par des humains, et que ces humains sont responsables de ces décisions.




Sauvegardez !

Régulièrement, un accident qui entraine la perte de données importantes nous rappelle l’importance des sauvegardes. L’incendie du centre de données d’OVH à Strasbourg le 10 mars dernier a été particulièrement spectaculaire, car de nombreuses personnes et organisations ont été touchées, mais des incidents de ce genre sont fréquents, quoique moins médiatisés. Un ami vient de m’écrire pour me demander mon numéro de téléphone car il a perdu son ordiphone avec son carnet d’adresses, un étudiant a perdu son ordinateur portable dans le métro, avec tout son mémoire de master dessus, et met une petite annonce dans la station de métro, une graphiste s’aperçoit que son ordinateur, avec tous ses travaux dessus, ne démarre plus un matin, une ville a perdu ses données suite au passage d’un rançongiciel, une utilisatrice de Facebook demande de l’aide car son compte a été piraté et elle ne peut plus accéder à ses photos de famille… Des appels au secours sur les réseaux sociaux comme celui-ci ou celui-là sont fréquents. Dans tous ces cas, le problème était l’absence de sauvegardes. Mais c’est quoi, les sauvegardes, et comment faut-il les faire ?

Le principe est simple : une sauvegarde (backup, en anglais) est une copie des données effectuée sur un autre support. Le but est de pouvoir récupérer ses données en cas de perte. Les causes de perte sont innombrables : vol de l’ordinateur portable ou de l’ordiphone (ces engins, étant mobiles, sont particulièrement exposés à ces risques), effacement par un logiciel malveillant ou par une erreur humaine, panne matérielle. Les causes possibles sont trop nombreuses pour être toutes citées. Retenons plutôt ce principe : les données peuvent devenir inaccessibles du jour au lendemain. Même si vous n’utilisez qu’un ordinateur fixe, parfaitement sécurisé, dans un local à l’abri des incendies (qui peut vraiment prétendre avoir une telle sécurité ?), un composant matériel peut toujours lâcher, vous laissant dans l’angoisse face à vos fichiers irrécupérables. Ne pensons donc pas aux causes de perte, pensons aux précautions à prendre.

(Au passage, saviez-vous que Lawrence d’Arabie avait perdu lors d’un voyage en train un manuscrit qu’il avait dû retaper complètement ? Il n’avait pas de sauvegardes. À sa décharge, avant le numérique, faire des sauvegardes était long et compliqué.)

La règle est simple : il faut sauvegarder ses données. Ou, plus exactement, ce qui n’est pas sauvegardé peut être perdu à tout instant, sans préavis. Si vous êtes absolument certain ou certaine que vos données ne sont pas importantes, vous pouvez vous passer de sauvegardes. À l’inverse, si vous êtes en train d’écrire l’œuvre de votre vie et que dix ans de travail sont sur votre ordinateur, arrêter de lire cet article et aller faire tout de suite une sauvegarde est impératif. Entre les deux, c’est à vous de juger de l’importance de vos données, mais l’expérience semble indiquer que la plupart des utilisateurices sous-estiment le risque de panne, de vol ou de perte. Dans le doute, il vaut donc mieux sauvegarder.

Comment on sauvegarde ?

Là, je vais vous décevoir, je ne vais pas donner de mode d’emploi tout fait. D’abord, cela dépend beaucoup de votre environnement informatique. On n’utilisera pas les mêmes logiciels sur macOS et sur Ubuntu. Je ne connais pas tous les environnements et je ne peux donc pas vous donner des procédures exactes. (Mais, connaissant les lecteurices du Framablog, je suis certain qu’ielles vont ajouter dans les commentaires plein de bons conseils pratiques.) Ensuite, une autre raison pour laquelle je ne donne pas de recettes toutes faites est que la stratégie de sauvegarde va dépendre de votre cas particulier. Par exemple, si vous travaillez sur des données confidentielles (données personnelles, par exemple), certaines stratégies ne pourront pas être appliquées.

Je vais plutôt me focaliser sur quelques principes souvent oubliés. Le premier est d’éviter de mettre tous ses œufs dans le même panier. J’ai déjà vu le cas d’une étudiante ayant bien mis sa thèse en cours de rédaction sur une clé USB mais qui avait la clé et l’ordinateur portable dans le même sac… qui fut volé à l’arrachée dans la rue. Dans ce cas, il n’y a pas de réelle sauvegarde, puisque le même problème (le vol) entraîne la perte du fichier et de la sauvegarde. Même chose si la sauvegarde est accessible depuis la machine principale, par exemple parce qu’elle est sur un serveur de fichiers. Certes, dans ce cas, une panne matérielle de la machine n’entrainerait pas la perte des données sauvegardées sur le serveur, en revanche, une fausse manœuvre (destruction accidentelle des fichiers) ou une malveillance (rançongiciel chiffrant tout ce qu’il trouve, pour le rendre inutilisable) frapperait la sauvegarde aussi bien que l’original. Enfin, si vous travaillez à la maison, et que la sauvegarde est chez vous, rappelez-vous que le même incendie peut détruire les deux. (Il n’est pas nécessaire que tout brûle pour que tous les fichiers soient perdus ; un simple début de fumée peut endommager le matériel au point de rendre les données illisibles.) Rappelez-vous : il y a plusieurs causes de pertes de données, pas juste la panne d’un disque dur, et la stratégie de sauvegarde doit couvrir toutes ces causes. On parle parfois de « règle 3-2-1 »  : les données doivent être sauvegardées en trois exemplaires, sur au moins deux supports physiques différents, et au moins une copie doit être dans un emplacement séparé. Bref, il faut être un peu paranoïaque et imaginer tout ce qui pourrait aller mal.

Donc, pensez à séparer données originelles et sauvegardes. Si vous utilisez un disque dur externe pour vos sauvegardes, débranchez-le physiquement une fois la sauvegarde faite. Si vous utilisez un serveur distant, déconnectez-vous après la copie.

(Si vous êtes programmeureuse, les systèmes de gestion de versions gardent automatiquement les précédentes versions de vos programmes, ce qui protège contre certaines erreurs humaines, comme d’effacer un fichier. Et, si ce système de gestion de versions est décentralisé, comme git, cela permet d’avoir facilement des copies en plusieurs endroits. Toutefois, tous ces endroits sont en général accessibles et donc vulnérables à, par exemple, un logiciel malveillant. Le système de gestion de versions ne dispense pas de sauvegardes.)

Ensuite, ne faites pas d’économies : il est très probable que vos données valent davantage que les quelques dizaines d’euros que coûte un disque dur externe ou une clé USB. Toutefois, il vaut mieux des sauvegardes imparfaites que pas de sauvegardes du tout. Simplement envoyer un fichier par courrier électronique à un autre compte (par exemple celui d’un ami) est simple, rapide et protège mieux que de ne rien faire du tout.

Enfin, faites attention à ce que la sauvegarde elle-même peut faire perdre des données, si vous copiez sur un disque ou une clé où se trouvent déjà des fichiers. C’est une des raisons pour lesquelles il est recommandé d’automatiser les sauvegardes, ce que permettent la plupart des outils. L’automatisation n’a pas pour but que de vous fatiguer moins, elle sert aussi à limiter les risques de fausse manœuvre.

backup chaque jour !
« Five Days’ Backup » par daryl_mitchell, licence CC BY-SA 2.0

À quel rythme ?

La règle est simple : si vous faites des sauvegardes tous les jours, vous pouvez perdre une journée de travail. Si vous en faites toutes les semaines, vous pouvez perdre une semaine de travail. À vous de voir quel rythme vous préférez.

Et le cloud magique qui résout tout ?

Quand on parle de sauvegardes, beaucoup de gens répondent tout de suite « ah, mais pas de problème, moi, tout est sauvegardé dans le cloud ». Mais ce n’est pas aussi simple. D’abord, le cloud n’existe pas : il s’agit d’ordinateurs comme les autres, susceptibles des mêmes pannes, comme l’a tristement démontré l’incendie d’OVH. Il est d’ailleurs intéressant de noter que beaucoup de clients d’OVH supposaient acquis que leurs données étaient recopiées sur plusieurs centres de données, pour éviter la perte, malgré les conditions d’utilisation d’OVH qui disaient clairement que la sauvegarde était de la responsabilité du client. (Mais qui lit les conditions d’utilisation ?)

Parfois, la croyance dans la magie du cloud va jusqu’à dire que leurs centres de données ne peuvent pas brûler, que des copies sont faites, bref que ce qui est stocké dans le nuage ne peut pas être perdu. Mais rappelez-vous qu’il existe d’innombrables causes de perte de données. Combien d’utilisateurs d’un service en ligne ont eu la mauvaise surprise de découvrir un matin qu’ils n’avaient plus accès à leur compte parce qu’un pirate avait deviné leur mot de passe (ou détourné leur courrier ou leurs SMS) ou parce que la société gestionnaire avait délibérément fermé le compte, en raison d’un changement de politique de leur part ou tout simplement parce que le logiciel qui contrôle automatiquement les accès a décidé que votre compte était problématique ? Il n’est pas nécessaire que la société qui contrôle vos fichiers perde les données pour que vous n’y ayez plus accès. Là aussi, c’est une histoire fréquente (témoignage en anglais) et elle l’est encore plus en cas d’hébergement gratuit où vous n’êtes même pas un client.

Ah, et un autre problème avec la sous-traitance (le terme correct pour cloud), la confidentialité. Si vous travaillez avec des données confidentielles (s’il s’agit de données personnelles, vous avez une responsabilité légale, n’oubliez pas), il n’est pas prudent de les envoyer à l’extérieur sans précautions, surtout vers les fournisseurs états-uniens (ou chinois, mais ce cas est plus rare). Une bonne solution est de chiffrer vos fichiers avant l’envoi. Mais comme rien n’est parfait dans le monde cruel où nous vivons, il faut se rappeler que c’est moins pratique et surtout que cela introduit un risque de perte : si vous perdez ou oubliez la clé de chiffrement, vos sauvegardes ne serviront à rien.

Tester

Un adage ingénierie classique est que ce qui n’a pas été testé ne marche jamais, quand on essaie de s’en servir. Appliqué aux sauvegardes, cela veut dire qu’il faut tester que la sauvegarde fonctionne, en essayant une restauration (le contraire d’une sauvegarde : mettre les fichiers sur l’ordinateur, à partir de la copie).

Une bonne discipline, par exemple, est de profiter de l’achat d’une nouvelle machine pour essayer de restaurer les fichiers à partir de la copie. Vous serez peut-être surpris·e de constater à ce moment qu’il manque des fichiers importants, qui avaient été négligés lors de la sauvegarde, ou bien que la sauvegarde la plus récente n’est… pas très récente. Ou bien tout simplement que la clé USB où vous aviez fait la sauvegarde a disparu, ou bien ne fonctionne plus.

Conclusion

Il faut sauvegarder. Je l’ai déjà dit, non ? Pour vous motiver, posez-vous les questions suivantes :

  • Si, un matin, mon ordinateur fait entendre un bruit de casserole et ne démarre pas, saurais-je facilement restaurer des données sauvegardées ?
  • Si toutes mes données sont chez un hébergeur extérieur et que je perds l’accès à mon compte, comment restaurerais-je mes données ?
  • Si je travaille sur un ordinateur portable que je trimballe souvent, et qu’il est volé ou perdu, où et comment restaurer les données ?

Si vous préférez les messages en vidéo, j’ai bien aimé cette vidéo qui, en dépit de son nom, n’est pas faite que pour les geeks.

 

 

 




Le Web est-il devenu trop compliqué ?

Le Web, tout le monde s’en sert et beaucoup en sont très contents. Mais, même parmi ceux et celles qui sont ravi·es de l’utiliser, il y a souvent des critiques. Elles portent sur de nombreux aspects et je ne vais pas essayer de lister ici toutes ces critiques. Je vais parler d’un problème souvent ressenti : le Web n’est-il pas devenu trop compliqué ?

À noter : cet article bénéficie désormais d’une version audio.
Merci à Sualtam, auteur de lectureaudio.fr pour cette contribution active.

Je ne parle pas de la complexité pour l’utilisateur, par exemple des problèmes qu’il ou elle peut avoir avec telle ou telle application Web, ou tel formulaire incompréhensible ou excluant. Non, je parle de la complexité des nombreuses technologies sous-jacentes. Alors, si vous n’êtes pas technicien·ne, vous avez peut-être envie d’arrêter votre lecture ici en pensant qu’on ne parlera que de technique. Mais ce n’est pas le cas, cet article est pour tous et toutes. (Ceci dit, si vous arrêtez votre lecture pour jouer avec le chat, manger un bon plat, lire un livre passionnant ou faire des câlins à la personne appropriée, cela ne me dérange pas et je vous souhaite un agréable moment.)

Mais revenons à l’objection « OK, les techniques utilisées dans le Web sont compliquées mais cela ne concerne que les développeuses et développeurs, non ? » Eh bien non car cette complication a des conséquences pour tous et toutes. Elle se traduit par des logiciels beaucoup plus complexes, donc elle réduit la concurrence, très peu d’organisations pouvant aujourd’hui développer un navigateur Web. Elle a pour conséquence de rendre l’utilisation du Web plus lente : bien que les machines et les réseaux aient nettement gagné en performance, le temps d’affichage d’une page ne cesse d’augmenter. Passer à la fibre ou à la 5G ne se traduira pas forcément par un gain de temps, puisque ce sont souvent les calculs nécessaires à l’affichage qui ralentissent la navigation. Et enfin cette complication augmente l’empreinte environnementale du Web, en imposant davantage d’opérations aux machines, ce qui pousse au remplacement plus rapide des terminaux.

L’insoutenable lourdeur du Web

Une page Web d’aujourd’hui n’est en effet pas une simple description d’un contenu. Elle inclut la « feuille de style », rédigée dans le langage CSS, qui va indiquer comment présenter la page, du JavaScript, un langage de programmation qui va être exécuté pour faire varier le contenu de la page, des vidéos, et d’autres choses qui souvent distraient du contenu lui-même. Je précise que je ne parle pas ici des applications tournant sur le Web (comme une application d’accès au courrier électronique, ou une application de gestion des évènements ou l’application maison utilisée par les employés d’une organisation pour gérer leur travail), non, je parle des pages Web de contenu, qui ne devraient pas avoir besoin de toute cette artillerie.

Du fait de cette complexité, il n’existe aujourd’hui que quatre ou cinq navigateurs Web réellement distincts. Écrire un navigateur Web aujourd’hui est une tâche colossale, hors de portée de la très grande majorité des organisations. La concurrence a diminué sérieusement. La complexité technique a donc des conséquences stratégiques pour le Web. Et ceci d’autant plus qu’il n’existe derrière ces navigateurs que deux moteurs de rendu, le cœur du navigateur, la partie qui interprète le langage HTML et le CSS et dessine la page. Chrome, Edge et Safari utilisent le même moteur de rendu, WebKit (ou l’une de ses variantes).

Et encore tout ne tourne pas sur votre machine. Derrière votre écran, l’affichage de la moindre page Web va déclencher d’innombrables opérations sur des machines que vous ne voyez pas, comme les calculs des entreprises publicitaires qui vont, en temps réel, déterminer les « meilleures » publicités à vous envoyer dans la figure ou comme l’activité de traçage des utilisateurs, notant en permanence ce qu’ils font, d’où elles viennent et de nombreuses autres informations, dont beaucoup sont envoyées automatiquement par votre navigateur Web, qui travaille au moins autant pour l’industrie publicitaire que pour vous. Pas étonnant que la consommation énergétique du numérique soit si importante. Et ces calculs côté serveur ont une grande influence sur la capacité du serveur à tenir face à une charge élevée, comme on l’a vu pendant les confinements Covid-19. Les sites Web de l’Éducation Nationale ne tenaient pas le coup, même quand il s’agissait uniquement de servir du contenu statique.

La surveillance coûte cher

La complexité du Web cache en effet également cette activité de surveillance, pratiquée aussi bien par les entreprises privées que par les États. Autrefois, acheter un journal à un kiosque et le lire étaient des activités largement privées. Aujourd’hui, toute activité sur le Web est enregistrée et sert à nourrir les bases de données du monde de la publicité, ou les fichiers des États. Comme exemple des informations envoyées par votre navigateur, sans que vous en ayez clairement connaissance, on peut citer bien sûr les fameux cookies. Ce sont des petits fichiers choisis par le site Web et envoyés à votre navigateur. Celui-ci les stockera et, lors d’une visite ultérieure au même site Web, renverra le cookie. C’est donc un outil puissant de suivi de l’utilisateur. Et ne croyez pas que, si vous visitez un site Web, seule l’organisation derrière ce site pourra vous pister. La plupart des pages Web incluent en effet des ressources extérieures (images, vidéos, boutons de partage), pas forcément chargés depuis le site Web que vous visitez et qui ont eux aussi leurs cookies. La loi Informatique et Libertés (et, aujourd’hui, le RGPD) impose depuis longtemps que les utilisateurs soient prévenus de ce pistage et puissent s’y opposer, mais il a fallu très longtemps pour que la CNIL tape sur la table et impose réellement cette information des utilisateurs, le « bandeau cookies ». Notez qu’il n’est pas obligatoire. D’abord, si le site Web ne piste pas les utilisateurs, il n’y a pas d’obligation d’un tel bandeau, ensuite, même en cas de pistage, de nombreuses exceptions sont prévues.

Un bandeau cookies. Notez qu’il n’y a pas de bouton Refuser.

 

Les bandeaux cookies sont en général délibérément conçus pour qu’il soit difficile de refuser. Le but est que l’utilisateur clique rapidement sur « Accepter » pour en être débarrassé, permettant ainsi à l’entreprise qui gère le site Web de prétendre qu’il y a eu consentement.

Désolé de la longueur de ce préambule, d’autant plus qu’il est très possible que, en tant que lectrice ou lecteur du Framablog, vous soyez déjà au courant. Mais il était nécessaire de revenir sur ces problèmes du Web pour mieux comprendre les projets qui visent à corriger le tir. Notez que les évolutions néfastes du Web ne sont pas qu’un problème technique. Elles sont dues à des raisons économiques et politiques et donc aucune approche purement technique ne va résoudre complètement le problème. Cela ne signifie pas que les techniciens et techniciennes doivent rester les bras croisés. Ils et elles peuvent apporter des solutions partielles au problème.

Bloquer les saletés

Première approche possible vers un Web plus léger, tenter de bloquer les services néfastes. Tout bon navigateur Web permet ainsi un certain contrôle de l’usage des cookies. C’est par exemple ce que propose Firefox dans une rubrique justement nommée « Vie privée et sécurité ».

Le menu de Firefox pour contrôler notamment les cookies

 

On peut ainsi bloquer une partie du système de surveillance. Cette approche est très recommandée mais notez que Firefox vous avertit que cela risque d’ « empêcher certains sites de fonctionner ». Cet avertissement peut faire hésiter certains utilisateurs, d’autant plus qu’avec les sites en question, il n’y aura aucun message clair, uniquement des dysfonctionnements bizarres. La plupart des sites Web commerciaux sont en effet développés sans tenir compte de la possibilité que le visiteur ait activé ces options. Si le site de votre banque ne marche plus après avoir changé ces réglages, ne comptez pas sur le support technique de la banque pour vous aider à analyser le problème, on vous dira probablement uniquement d’utiliser Google Chrome et de ne pas toucher aux réglages. D’un côté, les responsables du Web de surveillance disent qu’on a le choix, qu’on peut changer les réglages, d’un autre côté ils exercent une pression sociale intense pour qu’on ne le fasse pas. Et puis, autant on peut renoncer à regarder le site Web d’un journal lorsqu’il ne marche pas sans cookies, autant on ne peut guère en faire autant lorsqu’il s’agit de sa banque.

De même qu’on peut contrôler, voire débrayer les cookies, on peut supprimer le code Javascript. À ma connaissance, Firefox ne permet pas en standard de le faire, mais il existe une extension nommée NoScript pour le faire. Comme avec les cookies, cela posera des problèmes avec certains sites Web et, pire, ces problèmes ne se traduiront pas par des messages clairs mais par des dysfonctionnements. Là encore, peu de chance que le logiciel que l’entreprise en question a chargé de répondre aux questions sur Twitter vous aide.

Enfin, un troisième outil pour limiter les divers risques du Web est le bloqueur de publicité. (Personnellement, j’utilise uBlock Origin.)

uBlock Origin sur le site du Monde, où il a bloqué trois pisteurs et publicités. On voit aussi à gauche la liste des sites chargés automatiquement par votre navigateur quand vous regardez Le Monde.

 

Absolument indispensable à la fois pour éviter de consacrer du temps de cerveau à regarder les publicités, pour la sécurité (les réseaux de distribution de la publicité sont l’endroit idéal pour diffuser du logiciel malveillant) et aussi pour l’empreinte environnementale, le bloqueur empêchant le chargement de contenus qui feront travailler votre ordinateur pour le profit des agences de publicité et des annonceurs.

Un navigateur Web léger ?

Une solution plus radicale est de changer de navigateur Web. On peut ainsi préférer le logiciel Dillo, explicitement conçu pour la légèreté, les performances et la vie privée. Dillo marche parfaitement avec des sites Web bien conçus, mais ceux-ci ne sont qu’une infime minorité. La plupart du temps, le site sera affiché de manière bizarre. Et on ne peut pas le savoir à l’avance ; naviguer sur le Web avec Dillo, c’est avoir beaucoup de mauvaises surprises et seulement quelques bonnes (le Framablog, que vous lisez en ce moment, marche très bien avec Dillo).

Le site de l’Élysée vu par Dillo. Inutilisable (et pas par la faute de Dillo mais par le choix de l’Élysée d’un site spectaculaire plutôt qu’informatif).

 

Autre navigateur « alternatif », le Tor Browser. C’est un Firefox modifié, avec NoScript inclus et qui, surtout, ne se connecte pas directement au site Web visité mais passe par plusieurs relais du réseau Tor, supprimant ainsi un moyen de pistage fréquent, l’adresse IP de votre ordinateur. Outre que certains sites ne réagissent pas bien aux réglages du Tor Browser, le passage par le réseau Tor se traduit par des performances décrues.

Toutes ces solutions techniques, du bloqueur de publicités au navigateur léger et protecteur de la vie privée, ont un problème commun : elles sont perçues par les sites Web comme « alternatives » voire « anormales ». Non seulement le site Web risque de ne pas fonctionner normalement mais surtout, on n’est pas prévenu à l’avance, et même après on n’a pas de diagnostic clair. Le Web, pourtant devenu un écosystème très complexe, n’a pas de mécanismes permettant d’exprimer des préférences et d’être sûr qu’elles sont suivies. Certes, il existe des techniques comme l’en-tête « Do Not Track » où votre navigateur annonce qu’il ne souhaite pas être pisté mais il est impossible de garantir qu’il sera respecté et, vu le manque d’éthique de la grande majorité des sites Web, il vaut mieux ne pas compter dessus.

Gemini, une solution de rupture

Cela a mené à une approche plus radicale, sur laquelle je souhaitais terminer cet article, le projet Gemini. Gemini est un système complet d’accès à l’information, alternatif au Web, même s’il en reprend quelques techniques. Gemini est délibérément très simple : le protocole, le langage parlé entre le navigateur et le serveur, est très limité, afin d’éviter de transmettre des informations pouvant servir au pistage (comme l’en-tête User-Agent du Web) et il n’est pas extensible. Contrairement au Web, aucun mécanisme n’est prévu pour ajouter des fonctions, l’expérience du Web ayant montré que ces fonctions ne sont pas forcément dans l’intérêt de l’utilisateur. Évidemment, il n’y a pas l’équivalent des cookies. Et le format des pages est également très limité, à la fois pour permettre des navigateurs simples (pas de CSS, pas de Javascript), pour éviter de charger des ressources depuis un site tiers et pour diminuer la consommation de ressources informatiques par le navigateur. Il n’y a même pas d’images. Voici deux exemples de navigateurs Gemini :

Le client Gemini Lagrange

 

Le même site Gemini, vu par un client différent, Elpher

 

Gemini est un système récent, s’inspirant à la fois de systèmes anciens (comme le Web des débuts) et de choses plus récentes (ainsi, contrairement au Web, le chiffrement du trafic, pour compliquer la surveillance, est systématique). Il reprend notamment le concept d’URL donc par exemple le site d’informations sur les alertes de tempêtes solaires utilisé plus haut à titre d’exemple est gemini://gemini.bortzmeyer.org/presto/. Gemini est actuellement en cours de développement, de manière très ouverte, notamment sur la liste de diffusion publique du projet. Tout le monde peut participer à sa définition. (Mais, si vous voulez le faire, merci de lire la FAQ d’abord, pour ne pas recommencer une question déjà discutée.) Conformément aux buts du projet, écrire un client ou un serveur Gemini est facile et des dizaines de logiciels existent déjà. Le nom étant une allusion aux missions spatiales étatsuniennes Gemini, mais signifiant également « jumeaux » en latin, beaucoup de ces logiciels ont un nom qui évoque le spatial ou la gémellité. Pour la même raison spatiale, les sites Gemini se nomment des capsules, et il y en a actuellement quelques centaines opérationnelles. (Mais, en général, avec peu de contenu original. Gemini ressemble pour l’instant au Web des débuts, avec du contenu importé automatiquement d’autres services, et du contenu portant sur Gemini lui-même.)

On a vu que Gemini est une solution très disruptive et qui ne sera pas facilement adoptée, tant le marketing a réussi à convaincre que, sans vidéos incluses dans la page, on ne peut pas être vraiment heureux. Gemini ne prétend pas à remplacer le Web pour tous ses usages. Par exemple, un CMS, logiciel de gestion de contenu, comme le WordPress utilisé pour cet article, ne peut pas être fait avec Gemini, et ce n’est pas son but. Son principal intérêt est de nous faire réfléchir sur l’accès à l’information : de quoi avons-nous besoin pour nous informer ?

—  —  —




Deux ou trois choses sur les applications de suivi de contacts pendant l’épidémie

Notre petit dossier sur l’application de contact-tracing « StopCovid » s’enrichit aujourd’hui d’un article de Stéphane Bortzmeyer, que nous avons déjà invité à de multiples reprises sur le Framablog.

La position de Framasoft au sujet de cette application est plutôt claire : StopCovid est un leurre de communication politique.

Cependant, nous trouvons important d’apporter au débat des articles plus pédagogiques. Ce que nous avons fait par exemple en publiant la bande dessinée de Nicky Case, et aujourd’hui avec cet article qui, nous l’espérons vous éclairera un peu plus dans le débat.

Accéder aux articles déjà publiés dans notre dossier StopCovid

(NB : cet article est une republication, avec l’accord de son auteur, de l’article https://www.bortzmeyer.org/tracking-covid-19.html dont la première publication est datée du 19 avril 2020 – Nous vous encourageons à vérifier sur le site originel si l’article a pu être mis-à-jour depuis).


Deux ou trois personnes m’ayant demandé si j’avais une opinion sur les applications de suivi de contacts, dans le contexte de l’épidémie de COVID-19, je publie ici quelques notes, et pas mal d’hyperliens, pour vous donner de la lecture pendant le confinement.

D’abord, des avertissements :

  • Je ne suis pas épidémiologiste. Même si je l’étais, il y a encore beaucoup de choses que la science ignore au sujet des infections par le SARS-CoV2, comme les durées exactes des phases où on est contagieux.
  • Je ne suis pas non plus un spécialiste de la conception et de l’analyse de protocoles de suivi de contacts. Mais ce n’est pas très grave, pour les raisons que j’exposerai rapidement par la suite.
  • Vous ne trouverez pas ici d’analyse de l’application annoncée par le gouvernement français, StopCovid, pour la bonne et simple raison qu’elle n’existe pas. Il y a eu des promesses sous la forme de quelques mots (« anonyme », « sur la base du volontariat ») mais aucun détail technique n’a été publié. À l’heure actuelle, il n’est donc pas possible de dire quoi que ce soit de sérieux sur cette application spécifique.
  • D’une manière générale, la situation évolue vite, et il est très possible que, dans une ou deux semaines, cet article ne vaille plus rien.

Maintenant, rentrons dans le vif du sujet. Dans la description et l’analyse des protocoles comme PACT, DP3T ou ROBERT ? Non, car, pour moi, c’est une question très secondaire. Voyons les problèmes par ordre décroissant d’importance.

D’abord, il faut se demander si une telle application de suivi des contacts est utile et, surtout, si elle justifie les efforts qu’on y consacre, par rapport à des sujets moins high-tech, moins prestigieux, moins startup-nation, qui motivent moins les informaticiens mais qui ont plus d’importance pour la santé publique, comme la production et la distribution de masques, ou comme la revalorisation des rémunérations et des conditions de travail du personnel de santé. Je ne vais pas insister sur ce point, c’est certes le plus important mais la Quadrature du Net en a déjà parlé, et mieux que moi.

Bref, ce projet d’application de suivi des contacts semble davantage motivé par le désir d’agir, de faire quelque chose, même inutile, désir qui est commun en temps de crise, plutôt que par un vrai problème à résoudre. (C’est ce que les anglophones nomment la maladie du do-something-itis.) Il y a également des enjeux commerciaux, qui expliquent que certaines entreprises se font de la publicité en affirmant travailler sur le sujet (sans tenir compte des travaux existants).

Mais surtout, une application n’a de sens que si on teste les gens, pour savoir qui est contaminé. Comme on peut apparemment être contagieux et pourtant asymptomatique (pas de maladie visible), il faut tester ces personnes asymptomatiques (qui sont sans doute celles qui risquent de contaminer le plus de gens puisque, ignorantes de leur état, elles sortent). Or, Macron a bien précisé dans son discours du 13 avril qu’on ne testerait pas les personnes asymptomatiques (probablement car il n’y a pas de tests disponibles). Cela suffit à rendre inutile toute application, indépendamment des techniques astucieuses qu’elle utilise, car l’application elle-même ne peut pas déterminer qui est malade ou contagieux.

Ensuite, le protocole est une chose, la mise en œuvre dans une application réelle en est une autre. Le diable est dans les détails. Comme indiqué plus haut, on ne sait encore rien sur l’application officielle, à part son nom, StopCovid. Pour formuler un avis intelligent, il ne faudra pas se contenter de généralités, il faudra regarder son code, les détails, les traqueurs embarqués (une plaie classique des applications sur ordiphone, cf. le projet ExodusPrivacy), etc. Il faudra aussi se pencher sur le rôle du système d’exploitation (surtout s’il y a utilisation de l’API proposée par Google et Apple). Le fait que l’application soit en logiciel libre est évidemment un impératif, mais ce n’est pas suffisant.

Si vous n’êtes pas informaticienne ou informaticien, mais que vous voulez vous renseigner sur les applications de suivi de contacts et ce qu’il y a derrière, souvenez-vous qu’il y a plusieurs composants, chacun devant être étudié :

  • L’application elle-même, celle que vous téléchargez sur le magasin, qui est la partie visible (mais pas forcément la plus importante).
  • Le protocole qui est l’ensemble des règles que suit l’application, notamment dans la communication avec le reste du monde (autres ordiphones, serveur central…). Avec le même protocole, on peut créer plusieurs applications assez différentes.
  • Le système d’exploitation qui, après tout, a un complet contrôle de la machine et peut passer outre les décisions des applications. C’est un sujet d’autant plus sensible que, sur les ordiphones, ce système est étroitement contrôlé par deux entreprises à but lucratif, Apple et Google.
  • Le serveur central (la grande majorité des protocoles proposés nécessite un tel serveur) qui peut être piraté ou, tout simplement, géré par des gens qui ne tiennent pas leurs promesses.

Parmi les bonnes lectures accessibles à un large public :

Voilà, on peut maintenant passer aux questions qui passionnent mes lecteurs et lectrices passionnés d’informatique, les protocoles eux-mêmes. Il en existe de nombreux. J’ai une préférence pour PACT, dont je vous recommande la lecture de la spécification, très claire. La proposition DP3T est très proche (lisez donc son livre blanc).

Ces deux propositions sont très proches : l’ordiphone émet en Bluetooth des identifiants temporaires, générés aléatoirement et non reliables entre eux. Les autres ordiphones proches les captent et les stockent. Ces identifiants se nomment chirps dans PACT (qu’on pourrait traduire par « cui-cui ») et EphID (pour Ephemeral ID) dans DP3T. Lorsqu’on est testé (rappel : il n’y a pas assez de tests en France, on ne peut même pas tester tous les malades, ce qui est un problème bien plus grave que le fait d’utiliser tel algorithme ou pas), et détecté contaminé, on envoie les données à un serveur central, qui distribue la liste. En téléchargeant et en examinant cette liste, on peut savoir si on a été proche de gens contaminés.

C’est évidemment une présentation très sommaire, il y a plein de détails à traiter, et je vous recommande de ne pas vous lancer dans de longues discussions sur Twitter au sujet de ces protocoles, avant d’avoir lu les spécifications complètes. Les deux propositions ont été soigneusement pensées par des gens compétents et le Café du Commerce devrait lire avant de commenter.

PACT et DP3T ont assez peu de différences. Les principales portent sur le mécanisme de génération des identifiants, PACT déduit une série d’identifiants d’une graine renouvelée aléatoirement (on stocke les graines, pas réellement les identifiants), alors que DP3T déduit chaque graine de la précédente, des choses comme ça.

La proposition ROBERT est assez différente. La liste des identifiants des contaminés n’est plus publique, elle est gardée par le serveur central, que les applications doivent interroger. Globalement, le serveur central a bien plus de pouvoir et de connaissances, dans ROBERT. La question est souvent discutée de manière binaire, avec centralisé vs. décentralisé mais le choix est en fait plus compliqué que cela. (Paradoxalement, un protocole complètement décentralisé pourrait être moins bon pour la vie privée.) Au passage, j’ai déjà discuté de cette utilisation très chargée de termes comme « centralisé » dans un article à JRES. Autre avantage de ROBERT, la discussion sur le protocole se déroule au grand jour, via les tickets de GitHub (cf. leur liste mais lisez bien la spécification avant de commenter, pas juste les images). Par contre, son analyse de sécurité est très insuffisante, comme le balayage de tous les problèmes liés au serveur central en affirmant qu’il sera « honnête et sécurisé ». Et puis la communication autour de cette proposition est parfois scientiste (« Ce sont des analyses scientifiques qui permettent de le démontrer, pas des considérations idéologiques [comme si c’était mal d’avoir des idées, et des idées différentes des autres] ou des a priori sémantiques. ») et il y a une tendance à l’exagération dans les promesses.

Enfin, un peu en vrac :

(cette page est distribuée sous les termes de la licence GFDL)




L’Internet pendant le confinement


On parle beaucoup en ce moment d’une « saturation des réseaux », de « risques pour l’Internet », qui justifieraient des mesures autoritaires et discriminatoires, par exemple le blocage ou le ralentissement de Netflix, pour laisser de la place au « trafic sérieux ». Que se passe-t-il exactement et qu’y a-t-il derrière les articles sensationnalistes ?

La France, ainsi que de nombreux autres pays, est confinée chez elle depuis plusieurs jours, et sans doute encore pour plusieurs semaines. La durée exacte dépendra de l’évolution de l’épidémie de COVID-19. Certains travailleurs télétravaillent, les enfants étudient à la maison, et la dépendance de toutes ces activités à l’Internet a suscité quelques inquiétudes.

On a vu des médias, ou des dirigeants politiques comme Thierry Breton, réclamer des mesures de limitation du trafic, par exemple pour les services vidéo comme Netflix. Les utilisateurs qui ont constaté des lenteurs d’accès à certains sites, ou des messages d’erreur du genre « temps de réponse dépassé » peuvent se dire que ces mesures seraient justifiées. Mais les choses sont plus compliquées que cela, et il va falloir expliquer un peu le fonctionnement de l’Internet pour comprendre.

Copie d'écran du site du CNED, montrant un message d'erreur
Le site Web du CNED, inaccessible en raison des nombreux accès (mais le réseau qui y mène marchait parfaitement à ce moment).

Réseaux et services

D’abord, il faut différencier l’Internet et les services qui y sont connectés. Si un élève ou un enseignant essaie de se connecter au site du CNED (Centre National d’Enseignement à Distance) et qu’il récupère un message avec une  « HTTP error 503 », cela n’a rien à voir avec l’Internet, et supprimer Netflix n’y changera rien : c’est le site Web au bout qui est surchargé d’activité, le réseau qui mène à ce site n’a pas de problème. Or, ce genre de problèmes (site Web saturé) est responsable de la plupart des frustrations ressenties par les utilisateurs et utilisatrices. Résumer ces problèmes de connexion avec un « l’Internet est surchargé » est très approximatif et ne va pas aider à trouver des solutions aux problèmes. Pour résumer, les tuyaux de l’Internet vont bien, ce sont certains sites Web qui faiblissent. Ou, dit autrement, « Dire que l’Internet est saturé, c’est comme si vous cherchez à louer un appartement à la Grande Motte au mois d’août et que tout est déjà pris, du coup vous accusez l’A7 d’être surchargée et demandez aux camions de ne pas rouler. »

On peut se demander pourquoi certains services sur le Web plantent sous la charge (ceux de l’Éducation Nationale, par exemple) et d’autres pas (YouTube, PornHub, Wikipédia). Il y a évidemment de nombreuses raisons à cela et on ne peut pas faire un diagnostic détaillé pour chaque cas. Mais il faut noter que beaucoup de sites Web sont mal conçus. L’écroulement sous la charge n’est pas une fatalité. On sait faire des sites Web qui résistent. Je ne dis pas que c’est facile, ou bon marché, mais il ne faut pas non plus baisser les bras en considérant que ces problèmes sont inévitables, une sorte de loi de la nature contre laquelle il ne servirait à rien de se révolter. Déjà, tout dépend de la conception du service. S’il s’agit de distribuer des fichiers statiques (des fichiers qui ne changent pas, comme des ressources pédagogiques ou comme la fameuse attestation de circulation), il n’y a pas besoin de faire un site Web dynamique (où toutes les pages sont calculées à chaque requête). Servir des fichiers statiques, dont le contenu ne varie pas, est quelque chose que les serveurs savent très bien faire, et très vite. D’autant plus qu’en plus du Web, on dispose de protocoles (de techniques réseau) spécialement conçus pour la distribution efficace, en pair-à-pair, directement entre les machines des utilisateurs, de fichiers très populaires. C’est le cas par exemple de BitTorrent. S’il a permis de distribuer tous les épisodes de Game of Thrones à chaque sortie, il aurait permis de distribuer facilement l’attestation de sortie ! Même quand on a du contenu dynamique, par exemple parce que chaque page est différente selon l’utilisateur, les auteurs de sites Web compétents savent faire des sites qui tiennent la charge.

Mais alors, si on sait faire, pourquoi est-ce que ce n’est pas fait ? Là encore, il y a évidemment de nombreuses raisons. Il faut savoir que trouver des développeurs compétents est difficile, et que beaucoup de sites Web sont « bricolés », par des gens qui ne mesurent pas les conséquences de leurs choix techniques, notamment en termes de résistance à la charge. En outre, les grosses institutions comme l’Éducation Nationale ne développent pas forcément en interne, elles sous-traitent à des ESN et toute personne qui a travaillé dans l’informatique ces trente dernières années sait qu’on trouve de tout, et pas forcément du bon, dans ces ESN. Le « développeur PHP senior » qu’on a vendu au client se révèle parfois ne pas être si senior que ça. Le développement, dans le monde réel, ressemble souvent aux aventures de Dilbert. Le problème est aggravé dans le secteur public par le recours aux marchés publics, qui sélectionnent, non pas les plus compétents, mais les entreprises spécialisées dans la réponse aux appels d’offre (une compétence assez distincte de celle du développement informatique). Une petite entreprise pointue techniquement n’a aucune chance d’être sélectionnée.

D’autre part, les exigences de la propriété intellectuelle peuvent aller contre celles de la technique. Ainsi, si BitTorrent n’est pas utilisé pour distribuer des fichiers d’intérêt général, c’est probablement en grande partie parce que ce protocole a été diabolisé par l’industrie du divertissement. « C’est du pair-à-pair, c’est un outil de pirates qui tue la création ! » Autre exemple, la recopie des fichiers importants en plusieurs endroits, pour augmenter les chances que leur distribution résiste à une charge importante, est parfois explicitement refusée par certains organismes comme le CNED, au nom de la propriété intellectuelle.

Compter le trafic réseau

Bon, donc, les services sur le Web sont parfois fragiles, en raison de mauvais choix faits par leurs auteurs, et de réalisations imparfaites. Mais les tuyaux, eux, ils sont saturés ou pas ? De manière surprenante, il n’est pas facile de répondre à cette question. L’Internet n’est pas un endroit unique, c’est un ensemble de réseaux, eux-mêmes composés de nombreux liens. Certains de ces liens ont vu une augmentation du trafic, d’autres pas. La capacité réseau disponible va dépendre de plusieurs liens (tous ceux entre vous et le service auquel vous accédez). Mais ce n’est pas parce que le WiFi chez vous est saturé que tout l’Internet va mal ! Actuellement, les liens qui souffrent le plus sont sans doute les liens entre les FAI (Fournisseurs d’Accès Internet) et les services de vidéo comme Netflix. (Si vous voyez le terme d’appairage – peering, en anglais – c’est à ces liens que cela fait allusion.) Mais cela n’affecte pas la totalité du trafic, uniquement celui qui passe par les liens très utilisés. La plupart des FAI ne fournissent malheureusement pas de données publiques sur le débit dans leurs réseaux, mais certains organismes d’infrastructure de l’Internet le font. C’est le cas du France-IX, le principal point d’échange français, dont les statistiques publiques ne montrent qu’une faible augmentation du trafic. Même chose chez son équivalent allemand, le DE-CIX. (Mais rappelez-vous qu’à d’autres endroits, la situation peut être plus sérieuse.) Les discussions sur les forums d’opérateurs réseau, comme le FRnog en France, ne montrent pas d’inquiétude particulière.

Graphique montrant le trafic du France-IX
Le trafic total au point d’échange France-IX depuis un mois. Le début du confinement, le 17 mars, se voit à peine.

Statistiques du FAI FDN
Le trafic des clients ADSL du FAI (Fournisseur d’Accès Internet) FDN depuis un mois. L’effet du confinement est visible dans les derniers jours, à droite, mais pas spectaculaire.

Mais pourquoi est-ce qu’il n’y a pas d’augmentation massive et généralisée du trafic, alors qu’il y a beaucoup plus de gens qui travaillent depuis chez eux ? C’est en partie parce que, lorsque les gens travaillaient dans les locaux de l’entreprise, ils utilisaient déjà l’Internet. Si on consulte un site Web pour le travail, qu’on le fasse à la maison ou au bureau ne change pas grand-chose. De même, les vidéo-conférences (et même audio), très consommatrices de capacité du réseau, se faisaient déjà au bureau (si vous comprenez l’anglais, je vous recommande cette hilarante vidéo sur la réalité des « conf calls »). Il y a donc accroissement du trafic total (mais difficile à quantifier, pour les raisons exposées plus haut), mais pas forcément dans les proportions qu’on pourrait croire. Il y a les enfants qui consomment de la capacité réseau à la maison dans la journée, ce qu’ils ne faisaient pas à l’école, davantage de réunions à distance, etc., mais il n’y a pas de bouleversement complet des usages.

Votre usage de l’Internet est-il essentiel ?

Mais qu’est-ce qui fait que des gens importants, comme Thierry Breton, cité plus haut, tapent sur Netflix, YouTube et les autres, et exigent qu’on limite leur activité ? Cela n’a rien à voir avec la surcharge des réseaux et tout à voir avec la question de la neutralité de l’Internet. La neutralité des réseaux, c’est l’idée que l’opérateur réseau ne doit pas décider à la place des utilisateurs ce qui est bon pour eux. Quand vous prenez l’autoroute, la société d’autoroute ne vous demande pas si vous partez en week-end, ou bien s’il s’agit d’un déplacement professionnel, et n’essaie pas d’évaluer si ce déplacement est justifié. Cela doit être pareil pour l’Internet. Or, certains opérateurs de télécommunications rejettent ce principe de neutralité depuis longtemps, et font régulièrement du lobbying pour demander la possibilité de trier, d’évaluer ce qu’ils considèrent comme important et le reste. Leur cible favorite, ce sont justement les plate-formes comme Netflix, dont ils demandent qu’elles les paient pour être accessible par leur réseau. Et certaines autorités politiques sont d’accord, regrettant le bon vieux temps de la chaîne de télévision unique, et voulant un Internet qu’ils contrôlent. Le confinement est juste une occasion de relancer cette campagne.

Mais, penserez-vous peut-être, on ne peut pas nier qu’il y a des usages plus importants que d’autres, non ? Une vidéo-conférence professionnelle est certainement plus utile que de regarder une série sur Netflix, n’est-ce pas ? D’abord, ce n’est pas toujours vrai : de nombreuses entreprises, et, au sein d’une entreprise, de nombreux employés font un travail sans utilité sociale (et parfois négatif pour la société) : ce n’est pas parce qu’une activité rapporte de l’argent qu’elle est forcément bénéfique pour la collectivité ! Vous n’êtes pas d’accord avec moi ? Je vous comprends, car, justement, la raison principale pour laquelle la neutralité de l’Internet est quelque chose de crucial est que les gens ne sont pas d’accord sur ce qui est essentiel. La neutralité du réseau est une forme de laïcité : comme on n’aura pas de consensus, au moins, il faut trouver un mécanisme qui permette de respecter les choix. Je pense que les Jeux Olympiques sont un scandaleux gaspillage, et un exemple typique des horreurs du sport-spectacle. Un autre citoyen n’est pas d’accord et il trouve que les séries que je regarde sur Netflix sont idiotes. La neutralité du réseau, c’est reconnaître qu’on ne tranchera jamais entre ces deux points de vue. Car, si on abandonnait la neutralité, on aurait un problème encore plus difficile : qui va décider ? Qui va choisir de brider ou pas les matches de foot ? Les vidéos de chatons ? La vidéo-conférence ?

D’autant plus que l’Internet est complexe, et qu’on ne peut pas demander à un routeur de décider si tel ou tel contenu est essentiel. J’ai vu plusieurs personnes citer YouTube comme exemple de service non-essentiel. Or, contrairement à Netflix ou PornHub, YouTube ne sert pas qu’au divertissement, ce service héberge de nombreuses vidéos éducatives ou de formation, les enseignants indiquent des vidéos YouTube à leurs élèves, des salariés se forment sur YouTube. Pas question donc de brider systématiquement cette plate-forme. (Il faut aussi dire que le maintien d’un bon moral est crucial, quand on est confiné à la maison, et que les services dits « de divertissement » sont cruciaux. Si vous me dites que non, je vous propose d’être confiné dans une petite HLM avec quatre enfants de 3 à 14 ans.)

À l’heure où j’écris, Netflix et YouTube ont annoncé une dégradation délibérée de leur service, pour répondre aux injonctions des autorités.  On a vu que les réseaux sont loin de la saturation et cette mesure ne servira donc à rien. Je pense que ces plate-formes essaient simplement de limiter les dommages en termes d’image liés à l’actuelle campagne de presse contre la neutralité.

Conclusion

J’ai dit que l’Internet n’était pas du tout proche d’un écroulement ou d’une saturation. Mais cela ne veut pas dire qu’on puisse gaspiller bêtement cette utile ressource. Je vais donc donner deux conseils pratiques pour limiter le débit sur le réseau :

  • Utilisez un bloqueur de publicités, afin de limiter le chargement de ressources inutiles,
  • Préférez l’audio-conférence à la vidéo-conférence, et les outils textuels (messagerie instantanée, courrier électronique, et autres outils de travail en groupe) à l’audio-conférence.

Que va-t-il se passer dans les jours à venir ? C’est évidemment impossible à dire. Rappelons-nous simplement que, pour l’instant, rien n’indique une catastrophe à venir, et il n’y a donc aucune raison valable de prendre des mesures autoritaires pour brider tel ou tel service.

Quelques lectures supplémentaires sur ce sujet :




C’est quoi, l’interopérabilité, et pourquoi est-ce beau et bien ?

Protocole, HTTP, interopérabilité, ça vous parle ? Et normes, spécifications, RFC, ça va toujours ? Si vous avez besoin d’y voir un peu plus clair, l’article ci-dessous est un morceau de choix rédigé par Stéphane Bortzmeyer qui s’est efforcé de rendre accessibles ces notions fondamentales.


Protocoles

Le 21 mai 2019, soixante-neuf organisations, dont Framasoft, ont signé un appel à ce que soit imposé, éventuellement par la loi, un minimum d’interopérabilité pour les gros acteurs commerciaux du Web.

« Interopérabilité » est un joli mot, mais qui ne fait pas forcément partie du vocabulaire de tout le monde, et qui mérite donc d’être expliqué. On va donc parler d’interopérabilité, de protocoles, d’interfaces, de normes, et j’espère réussir à le faire tout en restant compréhensible (si vous êtes informaticien·ne professionnel·le, vous savez déjà tout cela ; mais l’appel des 69 organisations concerne tout le monde).

Le Web, ou en fait tout l’Internet, repose sur des protocoles de communication. Un protocole, c’est un ensemble de règles qu’il faut suivre si on veut communiquer. Le terme vient de la communication humaine, par exemple, lorsqu’on rencontre quelqu’un, on se serre la main, ou bien on se présente si l’autre ne vous connaît pas, etc. Chez les humains, le protocole n’est pas rigide (sauf en cas de réception par la reine d’Angleterre dans son palais, mais cela doit être rare chez les lectrices et lecteurs du Framablog). Si la personne avec qui vous communiquez ne respecte pas exactement le protocole, la communication peut tout de même avoir lieu, quitte à se dire que cette personne est bien impolie. Mais les logiciels ne fonctionnent pas comme des humains. Contrairement aux humains, ils n’ont pas de souplesse, les règles doivent être suivies exactement. Sur un réseau comme l’Internet, pour que deux logiciels puissent communiquer, chacun doit donc suivre exactement les mêmes règles, et c’est l’ensemble de ces règles qui fait un protocole.

Un exemple concret ? Sur le Web, pour que votre navigateur puisse afficher la page web désirée, il doit demander à un serveur web un ou plusieurs fichiers. La demande se fait obligatoirement en envoyant au serveur le mot GET (« donne », en anglais) suivi du nom du fichier, suivi du mot « HTTP/1.1 ». Si un navigateur web s’avisait d’envoyer le nom du fichier avant le mot GET, le serveur ne comprendrait rien, et renverrait plutôt un message d’erreur. En parlant d’erreurs, vous avez peut-être déjà rencontré le nombre 404 qui est simplement le code d’erreur qu’utilisent les logiciels qui parlent HTTP pour signaler que la page demandée n’existe pas. Ces codes numériques, conçus pour être utilisés entre logiciels, ont l’avantage sur les textes de ne pas être ambigus, et de ne pas dépendre d’une langue humaine particulière. Cet exemple décrit une toute petite partie du protocole nommé HTTP (pour Hypertext Transfer Protocol) qui est le plus utilisé sur le Web.

Il existe des protocoles bien plus complexes. Le point important est que, derrière votre écran, les logiciels communiquent entre eux en utilisant ces protocoles. Certains servent directement aux logiciels que vous utilisez (comme HTTP, qui permet à votre navigateur Web de communiquer avec le serveur qui détient les pages désirées), d’autres protocoles relèvent de l’infrastructure logicielle de l’Internet ; vos logiciels n’interagissent pas directement avec eux, mais ils sont indispensables.

Le protocole, ces règles de communication, sont indispensables dans un réseau comme l’Internet. Sans protocole, deux logiciels ne pourraient tout simplement pas communiquer, même si les câbles sont bien en place et les machines allumées. Sans protocole, les logiciels seraient dans la situation de deux humains, un Français ne parlant que français, et un Japonais ne parlant que japonais. Même si chacun a un téléphone et connaît le numéro de l’autre, aucune vraie communication ne pourra prendre place. Tout l’Internet repose donc sur cette notion de protocole.

Le protocole permet l’interopérabilité. L’interopérabilité est la capacité à communiquer de deux logiciels différents, issus d’équipes de développement différentes. Si une université bolivienne peut échanger avec une entreprise indienne, c’est parce que toutes les deux utilisent des protocoles communs.

Une prise électrique
Un exemple classique d’interopérabilité : la prise électrique. Kae [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons
 

Seuls les protocoles ont besoin d’être communs : l’Internet n’oblige pas à utiliser les mêmes logiciels, ni à ce que les logiciels aient la même interface avec l’utilisateur. Si je prends l’exemple de deux logiciels qui parlent le protocole HTTP, le navigateur Mozilla Firefox (que vous êtes peut-être en train d’utiliser pour lire cet article) et le programme curl (utilisé surtout par les informaticiens pour des opérations techniques), ces deux logiciels ont des usages très différents, des interfaces avec l’utilisateur reposant sur des principes opposés, mais tous les deux parlent le même protocole HTTP. Le protocole, c’est ce qu’on parle avec les autres logiciels (l’interface avec l’utilisateur étant, elle, pour les humain·e·s.).

La distinction entre protocole et logiciel est cruciale. Si j’utilise le logiciel A parce que je le préfère et vous le logiciel B, tant que les deux logiciels parlent le même protocole, aucun problème, ce sera juste un choix individuel. Malgré leurs différences, notamment d’interface utilisateur, les deux logiciels pourront communiquer. Si, en revanche, chaque logiciel vient avec son propre protocole, il n’y aura pas de communication, comme dans l’exemple du Français et du Japonais plus haut.

Babel

Alors, est-ce que tous les logiciels utilisent des protocoles communs, permettant à tout le monde de communiquer avec bonheur ? Non, et ce n’est d’ailleurs pas obligatoire. L’Internet est un réseau à « permission facultative ». Contrairement aux anciennes tentatives de réseaux informatiques qui étaient contrôlés par les opérateurs téléphoniques, et qui décidaient de quels protocoles et quelles applications tourneraient sur leurs réseaux, sur l’Internet, vous pouvez inventer votre propre protocole, écrire les logiciels qui le parlent et les diffuser en espérant avoir du succès. C’est d’ailleurs ainsi qu’a été inventé le Web : Tim Berners-Lee (et Robert Cailliau) n’ont pas eu à demander la permission de qui que ce soit. Ils ont défini le protocole HTTP, ont écrit les applications et leur invention a connu le succès que l’on sait.

Cette liberté d’innovation sans permission est donc une bonne chose. Mais elle a aussi des inconvénients. Si chaque développeur ou développeuse d’applications invente son propre protocole, il n’y aura plus de communication ou, plus précisément, il n’y aura plus d’interopérabilité. Chaque utilisatrice et chaque utilisateur ne pourra plus communiquer qu’avec les gens ayant choisi le même logiciel. Certains services sur l’Internet bénéficient d’une bonne interopérabilité, le courrier électronique, par exemple. D’autres sont au contraire composés d’un ensemble de silos fermés, ne communiquant pas entre eux. C’est par exemple le cas des messageries instantanées. Chaque application a son propre protocole, les personnes utilisant WhatsApp ne peuvent pas échanger avec celles utilisant Telegram, qui ne peuvent pas communiquer avec celles qui préfèrent Signal ou Riot. Alors que l’Internet était conçu pour faciliter la communication, ces silos enferment au contraire leurs utilisateurs et utilisatrices dans un espace clos.

La situation est la même pour les réseaux sociaux commerciaux comme Facebook. Vous ne pouvez communiquer qu’avec les gens qui sont eux-mêmes sur Facebook. Les pratiques de la société qui gère ce réseau sont déplorables, par exemple en matière de captation et d’utilisation des données personnelles mais, quand on suggère aux personnes qui utilisent Facebook de quitter ce silo, la réponse la plus courante est « je ne peux pas, tou·te·s mes ami·e·s y sont, et je ne pourrais plus communiquer avec eux et elles si je partais ». Cet exemple illustre très bien les dangers des protocoles liés à une entreprise et, au contraire, l’importance de l’interopérabilité.

La tour de Babel, peinte par Pieter Bruegel
« La tour de Babel  », tableau de Pieter Bruegel l’ancien. Domaine public (Google Art Project)

 

Mais pourquoi existe-t-il plusieurs protocoles pour un même service ? Il y a différentes raisons. Certaines sont d’ordre technique. Je ne les développerai pas ici, ce n’est pas un article technique, mais les protocoles ne sont pas tous équivalents, il y a des raisons techniques objectives qui peuvent faire choisir un protocole plutôt qu’un autre. Et puis deux personnes différentes peuvent estimer qu’en fait deux services ne sont pas réellement identiques et méritent donc des protocoles séparés, même si tout le monde n’est pas d’accord.

Mais il peut aussi y avoir des raisons commerciales : l’entreprise en position dominante n’a aucune envie que des acteurs plus petits la concurrencent, et ne souhaite pas permettre à des nouveaux entrants d’arriver. Elle a donc une forte motivation à n’utiliser qu’un protocole qui lui est propre, que personne d’autre ne connaît.

Enfin, il peut aussi y avoir des raisons plus psychologiques, comme la conviction chez l·e·a créat·eur·rice d’un protocole que son protocole est bien meilleur que les autres.

Un exemple d’un succès récent en termes d’adoption d’un nouveau protocole est donné par le fédivers. Ce terme, contraction de « fédération » et « univers » (et parfois écrit « fédiverse » par anglicisme) regroupe tous les serveurs qui échangent entre eux par le protocole ActivityPub, que l’appel des soixante-neuf organisations mentionne comme exemple. ActivityPub permet d’échanger des messages très divers. Les logiciels Mastodon et Pleroma se servent d’ActivityPub pour envoyer de courts textes, ce qu’on nomme du micro-blogging (ce que fait Twitter). PeerTube utilise ActivityPub pour permettre de voir les nouvelles vidéos et les commenter. WriteFreely fait de même avec les textes que ce logiciel de blog permet de rédiger et diffuser. Et, demain, Mobilizon utilisera ActivityPub pour les informations sur les événements qu’il permettra d’organiser. Il s’agit d’un nouvel exemple de la distinction entre protocole et logiciel. Bien que beaucoup de gens appellent le fédivers  « Mastodon », c’est inexact. Mastodon n’est qu’un des logiciels qui permettent l’accès au fédivers.

Le terme d’ActivityPub n’est d’ailleurs pas idéal. Il y a en fait un ensemble de protocoles qui sont nécessaires pour communiquer au sein du fédivers. ActivityPub n’est que l’un d’entre eux, mais il a un peu donné son nom à l’ensemble.

Tous les logiciels de la mouvance des « réseaux sociaux décentralisés » n’utilisent pas ActivityPub. Par exemple,  Diaspora ne s’en sert pas et n’est donc pas interopérable avec les autres.

Appel

Revenons maintenant l’appel cité au début, Que demande-t-il ? Cet appel réclame que l’interopérabilité soit imposée aux GAFA, ces grosses entreprises capitalistes qui sont en position dominante dans la communication. Tous sont des silos fermés. Aucun moyen de commenter une vidéo YouTube si on a un compte PeerTube, de suivre les messages sur Twitter ou Facebook si on est sur le fédivers. Ces GAFA ne changeront pas spontanément : il faudra les y forcer.

Il ne s’agit que de la communication externe. Cet appel est modéré dans le sens où il ne demande pas aux GAFA de changer leur interface utilisateur, ni leur organisation interne, ni leurs algorithmes de sélection des messages, ni leurs pratiques en matière de gestion des données personnelles. Il s’agit uniquement d’obtenir qu’ils permettent l’interopérabilité avec des services concurrents, de façon à permettre une réelle liberté de choix par les utilisateurs. Un tel ajout est simple à implémenter pour ces entreprises commerciales, qui disposent de fonds abondants et de nombreu·ses-x programmeur·e·s compétent·e·s. Et il « ouvrirait » le champ des possibles. Il s’agit donc de défendre les intérêts des utilisateurs et utilisatrices. (Alors que le gouvernement, dans ses commentaires, n’a cité que les intérêts des GAFA, comme si ceux-ci étaient des espèces menacées qu’il fallait défendre.)

Qui commande ?

Mais au fait, qui décide des protocoles, qui les crée ? Il n’y a pas de réponse simple à cette question. Il existe plein de protocoles différents et leurs origines sont variées. Parfois, ils sont rédigés, dans un texte qui décrit exactement ce que doivent faire les deux parties. C’est ce que l’on nomme une spécification. Mais parfois il n’y a pas vraiment de spécification, juste quelques vagues idées et un programme qui utilise ce protocole. Ainsi, le protocole BitTorrent, très utilisé pour l’échange de fichiers, et pour lequel il existe une très bonne interopérabilité, avec de nombreux logiciels, n’a pas fait l’objet d’une spécification complète. Rien n’y oblige développeurs et développeuses : l’Internet est « à permission facultative ». Dans de tels cas, celles et ceux qui voudraient créer un programme interopérable devront lire le code source (les instructions écrites par le ou la programmeur·e) ou analyser le trafic qui circule, pour essayer d’en déduire en quoi consiste le protocole (ce qu’on nomme la rétro-ingénierie). C’est évidemment plus long et plus difficile et il est donc très souhaitable, pour l’interopérabilité, qu’il existe une spécification écrite et correcte (il s’agit d’un exercice difficile, ce qui explique que certains protocoles n’en disposent pas).

Parfois, la spécification est adoptée formellement par un organisme dont le rôle est de développer et d’approuver des spécifications. C’est ce qu’on nomme la normalisation. Une spécification ainsi approuvée est une norme. L’intérêt d’une norme par rapport à une spécification ordinaire est qu’elle reflète a priori un consensus assez large d’une partie des acteurs, ce n’est plus un acte unilatéral. Les normes sont donc une bonne chose mais, rien n’étant parfait, leur développement est parfois laborieux et lent.

Manuscrit médiéval montrant un moine écrivant
Écrire des normes correctes et consensuelles peut être laborieux. Codex Bodmer – Frater Rufillus (wohl tätig im Weißenauer Skriptorium) [Public domain]
 

Toutes les normes ne se valent pas. Certaines sont publiquement disponibles (comme les normes importantes de l’infrastructure de l’Internet, les RFC – Request For Comments), d’autres réservées à ceux qui paient, ou à ceux qui sont membres d’un club fermé. Certaines normes sont développées de manière publique, où tout le monde a accès aux informations, d’autres sont créées derrière des portes soigneusement closes. Lorsque la norme est développée par une organisation ouverte à tous et toutes, selon des procédures publiques, et que le résultat est publiquement disponible, on parle souvent de normes ouvertes. Et, bien sûr, ces normes ouvertes sont préférables pour l’interopérabilité.

L’une des organisations de normalisation ouverte les plus connues est l’IETF (Internet Engineering Task Force, qui produit notamment la majorité des RFC). L’IETF a développé et gère la norme décrivant le protocole HTTP, le premier cité dans cet article. Mais d’autres organisations de normalisation existent comme le W3C (World-Wide Web Consortium) qui est notamment responsable de la norme ActivityPub.

Par exemple, pour le cas des messageries instantanées que j’avais citées, il y a bien une norme, portant le doux nom de XMPP (Extensible Messaging and Presence Protocol). Google l’utilisait, puis l’a abandonnée, jouant plutôt le jeu de la fermeture.

Difficultés

L’interopérabilité n’est évidemment pas une solution magique à tous les problèmes. On l’a dit, l’appel des soixante-neuf organisations est très modéré puisqu’il demande seulement une ouverture à des tiers. Si cette demande se traduisait par une loi obligeant à cette interopérabilité, tout ne serait pas résolu.

D’abord, il existe beaucoup de moyens pour respecter la lettre d’un protocole tout en violant son esprit. On le voit pour le courrier électronique où Gmail, en position dominante, impose régulièrement de nouvelles exigences aux serveurs de messagerie avec lesquels il daigne communiquer. Le courrier électronique repose, contrairement à la messagerie instantanée, sur des normes ouvertes, mais on peut respecter ces normes tout en ajoutant des règles. Ce bras de fer vise à empêcher les serveurs indépendants de communiquer avec Gmail. Si une loi suivant les préconisations de l’appel était adoptée, nul doute que les GAFA tenteraient ce genre de jeu, et qu’il faudrait un mécanisme de suivi de l’application de la loi.

Plus subtil, l’entreprise qui voudrait « tricher » avec les obligations d’interopérabilité peut aussi prétendre vouloir « améliorer » le protocole. On ajoute deux ou trois choses qui n’étaient pas dans la norme et on exerce alors une pression sur les autres organisations pour qu’elles aussi ajoutent ces fonctions. C’est un exercice que les navigateurs web ont beaucoup pratiqué, pour réduire la concurrence.

Jouer avec les normes est d’autant plus facile que certaines normes sont mal écrites, laissant trop de choses dans le vague (et c’est justement le cas d’ActivityPub). Écrire une norme est un exercice difficile. Si on laisse beaucoup de choix aux programmeuses et programmeurs qui créeront les logiciels, il y a des risques de casser l’interopérabilité, suite à des choix trop différents. Mais si on contraint ces programmeuses et programmeurs, en imposant des règles très précises pour tous les détails, on empêche les logiciels d’évoluer en réponse aux changements de l’Internet ou des usages. La normalisation reste donc un art difficile, pour lequel on n’a pas de méthode parfaite.

Conclusion

Voilà, désolé d’avoir été long, mais les concepts de protocole et d’interopérabilité sont peu enseignés, alors qu’ils sont cruciaux pour le fonctionnement de l’Internet et surtout pour la liberté des citoyen·ne·s qui l’utilisent. J’espère les avoir expliqués clairement, et vous avoir convaincu⋅e de l’importance de l’interopérabilité. Pensez à soutenir l’appel des soixante-neuf organisations !

Après

Et si vous voulez d’autres informations sur ce sujet, il y a :




Ce que peut faire votre Fournisseur d’Accès à l’Internet

Nous sommes ravis et honorés d’accueillir Stéphane Bortzmeyer qui allie une compétence de haut niveau sur des questions assez techniques et une intéressante capacité à rendre assez claires des choses complexes. Nous le remercions de nous expliquer dans cet article quelles pratiques douteuses tentent certains fournisseurs d’accès à l’Internet, quelles menaces cela représente pour la confidentialité comme pour la neutralité du Net, et pourquoi la parade du chiffrement fait l’objet d’attaques répétées de leur part.

L’actualité de M. Bortzmeyer est son ouvrage à paraître intitulé Cyberstructure, L’Internet : un espace politique. Vous pouvez en  lire un extrait et le commander en souscription jusqu’au 10 décembre, où vous pourrez rencontrer l’auteur à la librairie À Livr’ouvert.


Introduction

Photo par Ophelia Noor, CC BY-SA 2.0,

Pour vous connecter à l’Internet, vous avez besoin d’un FAI (Fournisseur d’Accès à l’Internet), une entreprise ou une association dont le métier est de relier des individus ou des organisations aux autres FAI. En effet, l’Internet est une coalition de réseaux, chaque FAI a le sien, et ce qui constitue l’Internet global, c’est la connexion de tous ces FAI entre eux. À part devenir soi-même FAI, la seule façon de se connecter à l’Internet est donc de passer par un de ces FAI. La question de la confiance est donc cruciale : qu’est-ce que mon FAI fait sans me le dire ?

Outre son travail visible (vous permettre de regarder Wikipédia, et des vidéos avec des chats mignons), le FAI peut se livrer à des pratiques plus contestables, que cet article va essayer d’expliquer. L’article est prévu pour un vaste public et va donc simplifier une réalité parfois assez compliquée.

Notons déjà tout de suite que je ne prétends pas que tous les FAI mettent en œuvre les mauvaises pratiques décrites ici. Il y a heureusement des FAI honnêtes. Mais toutes ces pratiques sont réellement utilisées aujourd’hui, au moins par certains FAI.

La langue française a un seul verbe, « pouvoir », pour désigner à la fois une possibilité technique (« ma voiture peut atteindre 140 km/h ») et un droit (« sur une route ordinaire, je peux aller jusqu’à 80 km/h »). Cette confusion des deux possibilités est très fréquente dans les discussions au sujet de l’Internet. Ici, je parlerais surtout des possibilités techniques. Les règles juridiques et morales encadrant les pratiques décrites ici varient selon les pays et sont parfois complexes (et je ne suis ni juriste ni moraliste) donc elles seront peu citées dans cet article.

Au sujet du numérique

Pour résumer les possibilités du FAI (Fournisseur d’Accès à l’Internet), il faut se rappeler de quelques propriétés essentielles du monde numérique :

  • Modifier des données numériques ne laisse aucune trace. Contrairement à un message physique, dont l’altération, même faite avec soin, laisse toujours une trace, les messages envoyés sur l’Internet peuvent être changés sans que ce changement ne se voit.
  • Copier des données numériques, par exemple à des fins de surveillance des communications, ne change pas ces données, et est indécelable. Elle est très lointaine, l’époque où (en tout cas dans les films policiers), on détectait une écoute à un « clic » entendu dans la communication ! Les promesses du genre « nous n’enregistrons pas vos données » sont donc impossibles à vérifier.
  • Modifier les données ou bien les copier est très bon marché, avec les matériels et logiciels modernes. Le FAI qui voudrait le faire n’a même pas besoin de compétences pointues : les fournisseurs de matériel et de logiciel pour FAI ont travaillé pour lui et leur catalogue est rempli de solutions permettant modification et écoute des données, solutions qui ne sont jamais accompagnées d’avertissements légaux ou éthiques.

copie d’écran page symantec
Une publicité pour un logiciel d’interception des communications, même chiffrées. Aucun avertissement légal ou éthique dans la page.

Modifier le trafic réseau

Commençons avec la possibilité technique de modification des données numériques. On a vu qu’elle était non seulement faisable, mais en outre facile. Citons quelques exemples où l’internaute ne recevait pas les données qui avaient été réellement envoyées, mais une version modifiée :

  • de 2011 à 2013 (et peut-être davantage), en France, le FAI SFR modifiait les images envoyées via son réseau, pour en diminuer la taille. Une image perdait donc ainsi en qualité. Si la motivation (diminuer le débit) était compréhensible, le fait que les utilisateurs n’étaient pas informés indique bien que SFR était conscient du caractère répréhensible de cette pratique.
  • en 2018 (et peut-être avant), Orange Tunisie modifiait les pages Web pour y insérer des publicités. La modification avait un intérêt financier évident pour le FAI, et aucun intérêt pour l’utilisateur. On lit parfois que la publicité sur les pages Web est une conséquence inévitable de la gratuité de l’accès à cette page mais, ici, bien qu’il soit client payant, l’utilisateur voit des publicités qui ne rapportent qu’au FAI. Comme d’habitude, l’utilisateur n’avait pas été notifié, et le responsable du compte Twitter d’Orange, sans aller jusqu’à nier la modification (qui est interdite par la loi tunisienne), la présentait comme un simple problème technique.
  • en 2015 (et peut-être avant), Verizon Afrique du Sud modifiait les échanges effectués entre le téléphone et un site Web pour ajouter aux demandes du téléphone des informations comme l’IMEI (un identificateur unique du téléphone) ou bien le numéro de téléphone de l’utilisateur. Cela donnait aux gérants des sites Web des informations que l’utilisateur n’aurait pas donné volontairement. On peut supposer que le FAI se faisait payer par ces gérants de sites en échange de ce service.

Il s’agit uniquement des cas connus, c’est-à-dire de ceux où des experts ont décortiqué ce qui se passait et l’ont documenté. Il y a certainement de nombreux autres cas qui passent inaperçus. Ce n’est pas par hasard si la majorité de ces manipulations se déroulent dans les pays du Sud, où il y a moins d’experts disponibles pour l’analyse, et où l’absence de démocratie politique n’encourage pas les citoyens à  regarder de près ce qui se passe. Il n’est pas étonnant que ces modifications du trafic qui passe dans le réseau soient la règle en Chine. Ces changements du trafic en cours de route sont plus fréquents sur les réseaux de mobiles (téléphone mobile) car c’est depuis longtemps un monde plus fermé et davantage contrôlé, où les FAI ont pris de mauvaises habitudes.

Quelles sont les motivations des FAI pour ces modifications ? Elles sont variées, souvent commerciales (insertion de publicités) mais peuvent être également légales (obligation de censure passant techniquement par une modification des données).

Mais ces modifications sont une violation directe du principe de neutralité de l’intermédiaire (le FAI). La « neutralité de l’Internet » est parfois présentée à tort comme une affaire financière (répartition des bénéfices entre différents acteurs de l’Internet) alors qu’elle est avant tout une protection des utilisateurs : imaginez si la Poste modifiait le contenu de vos lettres avant de les distribuer !

Les FAI qui osent faire cela le savent très bien et, dans tous les cas cités, aucune information des utilisateurs n’avait été faite. Évidemment, « nous changerons vos données au passage, pour améliorer nos bénéfices » est plus difficile à vendre aux clients que « super génial haut débit, vos vidéos et vos jeux plus rapides ! » Parfois, même une fois les interférences avec le trafic analysées et publiées, elles sont niées, mais la plupart du temps, le FAI arrête ces pratiques temporairement, sans explications ni excuses.

Surveiller le trafic réseau

De même que le numérique permet de modifier les données en cours de route, il rend possible leur écoute, à des fins de surveillance, politique ou commerciale. Récolter des quantités massives de données, et les analyser, est désormais relativement simple. Ne croyez pas que vos données à vous sont perdues dans la masse : extraire l’aiguille de la botte de foin est justement ce que les ordinateurs savent faire le mieux.

Grâce au courage du lanceur d’alerte Edward Snowden, la surveillance exercée par les États, en exploitant ces possibilités du numérique, est bien connue. Mais il n’y a pas que les États. Les grands intermédiaires que beaucoup de gens utilisent comme médiateurs de leurs communications (tels que Google ou Facebook) surveillent également massivement leurs utilisateurs, en profitant de leur position d’intermédiaire. Le FAI est également un intermédiaire, mais d’un type différent. Il a davantage de mal à analyser l’information reçue, car elle n’est pas structurée pour lui. Mais par contre, il voit passer tout le trafic réseau, alors que même le plus gros des GAFA (Google, Apple, Facebook, Amazon) n’en voit qu’une partie.

L’existence de cette surveillance par les FAI ne fait aucun doute, mais est beaucoup plus difficile à prouver que la modification des données. Comme pour la modification des données, c’est parfois une obligation légale, où l’État demande aux FAI leur assistance dans la surveillance. Et c’est parfois une décision d’un FAI.

Les données ainsi récoltées sont parfois agrégées (regroupées en catégories assez vastes pour que l’utilisateur individuel puisse espérer qu’on ne trouve pas trace de ses activités), par exemple quand elles sont utilisées à des fins statistiques. Elles sont dans ce cas moins dangereuses que des données individuelles. Mais attention : le diable est dans les détails. Il faut être sûr que l’agrégation a bien noyé les détails individuels. Quand un intermédiaire de communication proclame bien fort que les données sont « anonymisées », méfiez-vous. Le terme est utilisé à tort et à travers, et désigne souvent des simples remplacements d’un identificateur personnel par un autre, tout aussi personnel.

La solution du chiffrement

Ces pratiques de modification ou de surveillance des données sont parfois légales et parfois pas. Même quand elles sont illégales, on a vu qu’elles étaient néanmoins pratiquées, et jamais réprimées par la justice. Il est donc nécessaire de ne pas compter uniquement sur les protections juridiques mais également de déployer des protections techniques contre la modification et l’écoute. Deux catégories importantes de protections existent : minimiser les données envoyées, et les chiffrer. La minimisation consiste à envoyer moins de données, et elle fait partie des protections imposées par le RGPD (Règlement [européen] Général sur la Protection des Données). Combinée au chiffrement, elle protège contre la surveillance. Le chiffrement, lui, est la seule protection contre la modification des données.

Mais c’est quoi, le chiffrement ? Le terme désigne un ensemble de techniques, issues de la mathématique, et qui permet d’empêcher la lecture ou la modification d’un message. Plus exactement, la lecture est toujours possible, mais elle ne permet plus de comprendre le message, transformé en une série de caractères incompréhensibles si on ne connait pas la clé de déchiffrement. Et la modification reste possible mais elle est détectable : au déchiffrement, on voit que les données ont été modifiées. On ne pourra pas les lire mais, au moins, on ne recevra pas des données qui ne sont pas les données authentiques.

Dans le contexte du Web, la technique de chiffrement la plus fréquente se nomme HTTPS (HyperText Transfer Protocol Secure). C’est celle qui est utilisée quand une adresse Web commence par  https:// , ou quand vous voyez un cadenas vert dans votre navigateur, à gauche de l’adresse. HTTPS sert à assurer que les pages Web que vous recevez sont exactement celles envoyées par le serveur Web, et il sert également à empêcher des indiscrets de lire au passage vos demandes et les réponses. Ainsi, dans le cas de la manipulation faite par Orange Tunisie citée plus haut, HTTPS aurait empêché cet ajout de publicités.

Pour toutes ces raisons, HTTPS est aujourd’hui massivement déployé. Vous le voyez de plus en plus souvent par exemple sur ce blog que vous êtes en train de lire.

copie d’écran, page du framablog avec le https et le cadenas vert
Tous les sites Web sérieux ont aujourd’hui HTTPS

Le chiffrement n’est pas utilisé que par HTTPS. Si vous utilisez un VPN (Virtual Private Network, « réseau privé virtuel »), celui-ci chiffre en général les données, et la motivation des utilisateurs de VPN est en effet en général d’échapper à la surveillance et à la modification des données par les FAI. C’est particulièrement important pour les accès publics (hôtels, aéroports, Wifi du TGV) où les manipulations et filtrages sont quasi-systématiques.

Comme toute technique de sécurité, le chiffrement n’est pas parfait, et il a ses limites. Notamment, la communication expose des métadonnées (qui communique, quand, même si on n’a pas le contenu de la communication) et ces métadonnées peuvent être aussi révélatrices que la communication elle-même. Le système « Tor », qui peut être vu comme un type de VPN particulièrement perfectionné, réduit considérablement ces métadonnées.

Le chiffrement est donc une technique indispensable aujourd’hui. Mais il ne plait pas à tout le monde. Lors du FIC (Forum International de la Cybersécurité) en 2015, le représentant d’un gros FAI français déplorait en public qu’en raison du chiffrement, le FAI ne pouvait plus voir ce que faisaient ses clients. Et ce raisonnement est apparu dans un document d’une organisation de normalisation, l’IETF (Internet Engineering Task Force). Ce document, nommé « RFC 8404 »1 décrit toutes les pratiques des FAI qui peuvent être rendues difficiles ou impossibles par le chiffrement. Avant le déploiement massif du chiffrement, beaucoup de FAI avaient pris l’habitude de regarder trop en détail le trafic qui circulait sur leur réseau. C’était parfois pour des motivations honorables, par exemple pour mieux comprendre ce qui passait sur le réseau afin de l’améliorer. Mais, aujourd’hui, compte-tenu de ce qu’on sait sur l’ampleur massive de la surveillance, il est urgent de changer ses pratiques, au lieu de simplement regretter que ce qui était largement admis autrefois soit maintenant rejeté.

Cette liste de pratiques de certains FAI est une information intéressante mais il est dommage que ce document de l’IETF les présente comme si elles étaient toutes légitimes, alors que beaucoup sont scandaleuses et ne devraient pas être tolérées. Si le chiffrement les empêche, tant mieux !

Conclusion

Le déploiement massif du chiffrement est en partie le résultat des pratiques déplorables de certains FAI. Il est donc anormal que ceux-ci se plaignent des difficultés que leur pose le chiffrement. Ils sont les premiers responsables de la méfiance des utilisateurs !

La guerre contre les pratiques douteuses, déjà au XIe siècle… – Image retrouvée sur ce site.

J’ai surtout parlé ici des risques que le FAI écoute les messages, ou les modifie. Mais la place cruciale du FAI dans la communication fait qu’il existe d’autres risques, comme celui de censure de certaines activités ou certains services, ou de coupure d’accès. À l’heure où la connexion à l’Internet est indispensable pour tant d’activités, une telle coupure serait très dommageable.

Quelles sont les solutions, alors ? Se passer de FAI n’est pas réaliste. Certes, des bricoleurs peuvent connecter quelques maisons proches en utilisant des techniques fondées sur les ondes radio, mais cela ne s’étend pas à tout l’Internet. Par contre, il ne faut pas croire qu’un FAI est forcément une grosse entreprise commerciale. Ce peut être une collectivité locale, une association, un regroupement de citoyens. Dans certains pays, des règles très strictes imposées par l’État limitent cette activité de FAI, afin de permettre le maintien du contrôle des citoyens. Heureusement, ce n’est pas (encore ?) le cas en France. Par exemple, la FFDN (Fédération des Fournisseurs d’Accès Internet Associatifs) regroupe de nombreux FAI associatifs en France. Ceux-ci se sont engagés à ne pas recourir aux pratiques décrites plus haut, et notamment à respecter le principe de neutralité.

Bien sûr, monter son propre FAI ne se fait pas en cinq minutes dans son garage. Mais c’est possible en regroupant un collectif de bonnes volontés.

Et, si on n’a pas la possibilité de participer à l’aventure de la création d’un FAI, et pas de FAI associatif proche, quelles sont les possibilités ? Peut-on choisir un bon FAI commercial, en tout cas un qui ne viole pas trop les droits des utilisateurs ? Il est difficile de répondre à cette question. En effet, aucun FAI commercial ne donne des informations détaillées sur ce qui est possible et ne l’est pas. Les manœuvres comme la modification des images dans les réseaux de mobiles sont toujours faites en douce, sans information des clients. Même si M. Toutlemonde était prêt à passer son week-end à comparer les offres de FAI, il ne trouverait pas l’information essentielle « est-ce que ce FAI s’engage à rester strictement neutre ? » En outre, contrairement à ce qui existe dans certains secteurs économiques, comme l’agro-alimentaire, il n’existe pas de terminologie standardisée sur les offres des FAI, ce qui rend toute comparaison difficile.

Dans ces conditions, il est difficile de compter sur le marché pour réguler les pratiques des FAI. Une régulation par l’État n’est pas forcément non plus souhaitable (on a vu que c’est parfois l’État qui oblige les FAI à surveiller les communications, ainsi qu’à modifier les données transmises). À l’heure actuelle, la régulation la plus efficace reste la dénonciation publique des mauvaises pratiques : les FAI reculent souvent, lorsque des modifications des données des utilisateurs sont analysées et citées en public. Cela nécessite du temps et des efforts de la part de ceux et celles qui font cette analyse, et il faut donc saluer leur rôle.