Par

Depuis plusieurs mois, on parle abondamment de la cinquième génération (5G) des téléphones mobiles et de l’entreprise chinoise Huawei, soupçonnée d’espionnage. Que nous apprennent ces débats et affaires et en quoi permettent-ils une réflexion sur le logiciel libre ?

L’espionnage à grande échelle par l’intermédiaire de secrets bien cachés est routinier puisqu’on craint (sans preuve) que Huawei espionne grâce à ses logiciels et ses matériels réseau. Huawei n’est pas le seul industriel sur ce créneau et, évidemment, les autres fournisseurs, principalement américains, ont les mêmes capacités d’espionnage.
Un groupe industriel, si puissant soit-il, est à la merci d’un boycott : que Mr. Trump interdise à Google de lui vendre son logiciel pour téléphones (Androïd) et le groupe visé est menacé.
Que nous apprend le dieselgate de Volkswagen ? Là aussi, qu’on peut facilement tricher. Vous n’utilisez pas Facebook, par peur (justifiée) que votre vie privée tombe entre de mauvaises mains : raté ! Sur les téléphones, certaines applications utilisent un kit, fourni par Facebook, qui envoie des informations... à Facebook ! Vous ne pouvez pas installer la dernière version de Windows sur votre ordinateur qui a 8 ans ? Pourquoi Microsoft ne publie-t-il plus de mises à jour pour les vieilles versions de Windows ? C’est de l’obsolescence programmée.
On peut multiplier les exemples effrayants. Saviez-vous que les bugs de Windows sont communiqués à la National Security Agency (NSA) et au Federal Bureau of Investigation (FBI) avant que les corrections soient rendues publiques ?
On peut en conclure que, en informatique, c’est le logiciel qui a pris le pouvoir. Mais alors il est urgent de prendre le pouvoir sur le logiciel.

Comment fabriquer facilement des logiciels tricheurs, espions, etc.?
Il faut dire d’abord que logiciel est un mot un peu prétentieux pour dire programme. L’industrie du logiciel ne s’est imposée que quand les ordinateurs sont devenus peu coûteux et très puissants dans les années 1990 ; alors, le logiciel est devenu un marché. Évidemment, Internet a aussi tout changé.

« Il est urgent de prendre le pouvoir sur le logiciel. »

Comment cacher des secrets dans les logiciels ? C’est simple, les programmes (les logiciels) sont écrits dans des langages de programmation évolués. Expliquons : les ordinateurs ne comprennent que les programmes écrits dans leur langage, qui est une suite de 1 et de 0. Ça n’est pas pratique, et à peu près incompréhensible. Dès les années 1950, on a cherché à programmer dans des langages compréhensibles, dits évolué : écrire x = 1+2 est plus sympathique qu’écrire 11010011 pour le même résultat, par exemple. Les langages évolués permettent l’expression de traitements informatiques (des algorithmes) de manière compréhensible, dans une langue presque naturelle, en tout cas de sorte qu’un aller-retour par la pensée entre le programme et l’algorithme qu’on veut implanter sur ordinateur soit possible. Les programmes en langage évolué (on parle de code source) doivent être traduits dans le langage binaire des machines. La traduction est effectuée par des programmes appelés compilateurs. Le même code source (ou programme écrit en langage évolué) peut être traduit vers différentes machines, avec des compilateurs adaptés.
Comme le langage machine (le binaire) est moins expressif que le langage évolué, il faut beaucoup plus d’instructions pour exprimer la même chose (cinq ou six fois plus au moins). Et le langage machine est, par essence, très abscons. Quelles conséquences ?

« Les idées du logiciel libre sont à l’origine du mouvement open data qui se développe un peu partout, et aussi de la création d’œuvres littéraires, techniques musicales, etc., libres, protégées par des licences adaptées. »

On ne peut pas revenir en arrière, c’est-à-dire repasser du code binaire au code source et donc à l’algorithme. Par conséquent on ne peut pas prouver que le programme binaire (celui qui est commercialisé) implante bien uniquement les fonctionnalités pour lesquelles il est vendu. Le code source d’un programme comme Windows compte plus de cinq millions d’instructions et, forcément, le binaire est extraordinairement complexe.
Les codes sources en langage évolué sont (assez) indépendants des machines : pas les binaires. Ainsi, en refusant de traduire un programme (disons, Windows) vers des machines un peu anciennes, ce qui est techniquement possible, on condamne ces machines à disparaître.

Cacher, tricher...
Puisqu’on ne peut pas revenir en arrière du binaire vers le code source, on a un moyen très simple pour ajouter aux programmes des fonctionnalités non désirées par le consommateur, tout simplement en les insérant dans le code source. On peut ajouter des portes dérobées (backdoors) qui permettent de pénétrer votre machine depuis Internet. Avec certaines liseuses, on peut savoir ce que vous lisez ; Windows, aussi, a des portes dérobées. Sous Androïd, une backdoor permet d’installer ou de désinstaller de force une application. Les armes de cyber-guerre utilisent en général des backdoors.

Comment en sortir ? (au moins partiellement)
Il faut d’abord avoir un accès libre à la totalité du code source des programmes, écrit en langage évolué. On peut alors vérifier que le programme binaire qu’on se procure est bien engendré par le même code source et on peut aussi expertiser le code source. Oui, me direz-vous, mais ce n’est pas moi qui ferai cette expertise, je ne sais pas faire ! Certes, mais les logiciels sont utilisés par de grandes communautés d’utilisateurs, parmi lesquels certains peuvent vérifier tout ou partie des programmes. Bref, il faut de la transparence, et organiser cette transparence.

Le logiciel libre
Les principes du logiciel libre ont été formulés dans les années 1980 (donc en avance sur l’histoire !) avec la création de la Foundation for Free Software par des chercheurs américains du Massachusetts Institute of Technology (MIT), principalement Richard Stallman. Ils ont défini quatre libertés que doit satisfaire un logiciel pour être considéré comme libre :
1. liberté d’exécuter le programme, pour tous les usages ;
2. liberté d’étudier le fonctionnement du programme et de l’adapter à ses besoins ;
3. liberté de redistribuer des copies du programme (ce qui implique la possibilité aussi bien de donner que de vendre des copies) ;
4. liberté d’améliorer le programme et de distribuer ces améliorations au public.
La clause (2) impose évidemment que le code source en langage évolué soit accessible et non donné comme une boîte noire, on dit que le programme est totalité. Attention, pour être libre, un programme open-source doit satisfaire les trois autres clauses.
Pour définir les droits, devoirs et protection, la Foundation for Free Software a mis au point des licences pour les logiciels libres ; elles définissent sous quelles conditions on peut réutiliser le logiciel, par exemple en l’incorporant à une réalisation nouvelle ; les auteurs doivent toujours être cités, et certaines restrictions s’imposent ; dans la version la plus dure, les produits dérivés doivent être diffusés avec la même licence.
Au delà des problèmes évoqués, on veut faire du logiciel un bien commun de l’humanité.

Quelques logiciels libres
En s’en tenant aux logiciels grand public, presque tous les programmes propriétaires peuvent (doivent) être remplacés par des logiciels libres. Par exemple la suite LibreOffice remplace la suite Office de Microsoft. Pour la navigation web il faut utiliser des solutions libres : Firefox, par exemple ; sinon vous serez probablement espionnés. Presque tous les logiciels ont à présent un équivalent libre et gratuit ; ce sont aussi des économies d’échelle qui sont ainsi à la portée des particuliers et des collectivités.

« En informatique, c’est le logiciel qui a pris le pouvoir.  »

L’étape suivante, c’est abandonner complètement les systèmes propriétaires en remplaçant Windows ou MacOs par Linux, libre, simple, fiable, durable et gratuit (il fonctionne aussi sur les vieilles machines).

Victoire du logiciel libre ?
En 1998, face au développement de Linux (concurrent libre de Windows) Steven Anthony Balmer, P-DG de Microsoft, le comparait à un cancer et ajoutait : Linux is communism. En 2016, Microsoft soutient la Fondation Linux qui aide au développement... de Linux. No comment.
Si, il y a vingt-cinq ans, le logiciel libre était le domaine des hackers, en 2019 il est présent partout : 83% des sites web utilisent des serveurs libres et Linux. La science, l’ingénierie reposent massivement sur du logiciel libre (peut-on calculer une centrale nucléaire avec une boîte noire ?).
Chez vous, il y a probablement du logiciel libre : si votre accès internet repose sur une box, sachez que, dans la box, il y a un système Linux et beaucoup de logiciel libre.
La puissance du libre est là : en devenant un bien commun, il libère la création : développer les box sans le logiciel libre aurait demandé un travail colossal.
On peut se demander pourquoi cela fonctionne du point de vue de l’économie. De fait, l’informatique s’est transformée en une activité de service, et c’est là qu’il y a de l’argent à gagner (le Web, c’est du service). Mais entre posséder les outils (libres) et la réalisation de services, il y a forcément beaucoup de travail, largement facilité et pérennisé par le logiciel libre. Dans ces conditions, l’intérêt bien compris de grands groupes, même les Google, Apple, Facebook, Amazon et Microsoft, GAFAM, mais aussi d’utilisateurs plus modestes, est de participer au développement de certains logiciels libres : par exemple, des outils développés par Twitter sont libres ; la NASA participe au développement d’un logiciel libre de site web (Django) qu’elle utilise etc. Les logiciels sont développés par ceux qui les utilisent, allant d’une personne isolée à un groupe industriel. Le financement par des fondations n’est pas rare.
Mais attention, le danger rôde : le brevet logiciel est perpétuellement remis sur le tapis dans le cadre de l’Union européenne.

Français, encore un effort !
Un certain nombre de textes législatifs tendent à imposer l’utilisation du libre dans l’administration. Sauf exceptions, ils sont rarement appliqués : pesanteur idéologique, soumission (il suffit de voir les patrons des GAFAM reçus en haut lieu comme des chefs d’État) ; n’allons pas dire corruption. C’est plutôt à un débordement par la base qu’on doit la pénétration du libre. Exception plus que notable : la gendarmerie nationale est passée au logiciel libre. Des communes font le choix, partiel ou total, du libre.

Au delà du logiciel
Les idées du logiciel libre sont à l’origine du mouvement open data qui se développe un peu partout, et aussi de la création d’œuvres littéraires, techniques musicales, etc., libres, protégées par des licences adaptées.
Il est plus qu’urgent de faciliter la transition vers le libre : « Contrôlez vos logiciels avant qu’ils ne vous contrôlent » (Richard Stallman).

Thierry Dumont est ingénieur en calcul scientifique et fondateur de l’Association lyonnaise pour le développement de l’informatique libre.

Cause commune n° 13 • septembre/octobre 2019