Logiciel Libre, virus et portes dérobées

Bonjour,

Je débute aujourd’hui un article expliquant l’approche des Logiciels Libres pour contrer les virus et éviter les portes dérobées.

Le brouillon se trouve ici et je partagerais les droits d’édition à qui le souhaite, donnez-moi juste votre nom de compte thegood.cloud.

A++

Bonjour,
Je veux bien contribuer, mon compte est : blandine@mlalerte.org
:slight_smile:

1 Like

Est-ce que ça marche avec https://use01.thegood.cloud/f/129502 ?

Non : fichier introuvable

J’ai beau chercher, il ne semble pas possible de partager le brouillon de façon à ce qu’un autre utilisateur puisse le modifier. C’est ballot :slight_smile: Je vais trouver un autre endroit ou le mettre.

Il y a un endroit tout a fait évident, comment n’y ai-je pas pensé plus tôt :slight_smile: https://partage.mlalerte.org

@Blsd j’ai partagé le document avec toi sur https://partage.mlalerte.org/remote.php/webdav/logiciel-libre.docx et j’en met une copie ici pour archive.

logiciel-libre.odt (158.5 KB)

1 Like

Tu y trouveras mes suggestions de modification et quelques questions !

1 Like

Super boulot sur la rédaction de l’introduction :+1: J’ai accepté l’essentiel de tes modifications, et répondu aux commentaires. De mon point de vue il reste encore deux gros morceaux que je dois eclaircir:

L’effort pour s’en débarrasser est important mais ont peut y parvenir en choisissant soigneusement son matériel, en allant jusqu’à remplacer le BIOS par Libreboot.

Qui est totalement obscur :dark_sunglasses: et que je dois reformuler ou supprimer.

Pour les Logiciels Libres qui ne sont pas, par définition, contrôlés par une seule organisation, il fallait imaginer une solution différente, décentralisée. Les logiciels existent sous deux formes: l’une compréhensible par un être humain (le code source) et l’autre compréhensible par la machine (le binaire). C’est dans cette deuxième forme que peut se dissimuler un virus qui échappe à l’examen le plus attentif, alors qu’il est très facile à identifier dans le code source. Or il est toujours possible de transformer le code source en code binaire, sans quoi la machine serait bien incapable de le comprendre. Il a été proposé qu’un code source, une fois transformé, produise toujours le même binaire, à l’octet près. Si un virus est ajouté au binaire, on le déetecte alors immédiatement car il est différent de celui qu’on attendait. Cette idée simple, baptisée reproducible build n’a émergée qu’après 2010 et elle vient s’ajouter à l’arsenal qui permet d’éradiquer efficacement les virus.

Il faudrait que tu me précise ce qui pose un problème de compréhension parce que je ne le vois pas (évidement… :scream:).

C’est vraiment très motivant de travailler avec toi sur ce document. Sinon ce serait encore un truc incompréhensible et donc inutile. :tada:

C’est difficile aussi :confused: On comprend bien, je pense, le principe de code source et binaire (ou alors, c’est juste tellement la base qu’il ne faut pas lire ce type d’article) ; on commence un peu à être perdu mais c’est facilement contournable (cf. proposition ci-dessous) quand tu commences à dire que le virus peut se cacher dans le binaire ; on est complètement perdu quand tu parles de la reproduction du code : en quoi le fait de le reproduire à l’octet près permet de détecter un virus ? Qu’est-ce que ça apporte ? Qu’est-ce que ça veut dire en fait de reproduire un binaire à l’octet près ?

Pour commencer, je propose déjà ce début de reformulation (en italique la partie qui reste à reformuler) :

Les Logiciels Libres ne sont pas, par définition, contrôlés par une seule organisation. Il fallait donc imaginer une solution différente, décentralisée.
Les logiciels existent sous deux formes : l’une compréhensible par un être humain (le code source) et l’autre compréhensible par la machine (le binaire). Il est toujours possible de transformer le code source en code binaire, sans quoi la machine serait bien incapable de le comprendre.
Un virus peut se dissimuler dans le code source mais aussi dans le code binaire. Il est très facile à identifier dans le code source mais dans le code binaire, c’est une autre histoire : c’est principalement dans cette deuxième forme qu’il peut échapper à l’examen le plus attentif.

Pour remédier à ce problème, il a été proposé qu’un code source, une fois transformé, produise toujours le même binaire, à l’octet près. Si un virus est ajouté au binaire, on le détecte alors immédiatement car il est différent de celui qu’on attendait. Cette idée simple, baptisée reproducible build n’a émergée qu’après 2010 et elle vient s’ajouter à l’arsenal qui permet d’éradiquer efficacement les virus.

1 Like

C’est parfait, exactement ce dont j’avais besoin! J’y travaille.

1 Like

Hé bien non justement, impossible de se cacher dans le code source. Pour éclaircir, voici une précision: il existe un seul code source et ses modifications sont soigneusement examinées par les développeurs. A partir de ce code source on fabrique une multitude de binaires qui sont installés sur les machines des personnes qui ont besoin du logiciel. Un virus va s’insérer dans le binaire qui est installé sur l’une (ou plusieurs) de ces machines. Par exemple un traitement de texte comme LibreOffice existe sous forme source ici : https://git.libreoffice.org/core/+/refs/heads/master et c’est le seul endroit ou il se trouve. La dernière modification qui y a été apportée se trouve ici: https://gerrit.libreoffice.org/c/core/+/98234 et a été “review” c’est à dire vérifiée.

A partir de ce source, un binaire pour Ubuntu 20.04 (la dernière version qui est celle que tu as sur ta machine) a été généré ici : https://launchpad.net/~libreoffice/+archive/ubuntu/libreoffice-prereleases/+build/19202863/+files/libreoffice-writer_6.4.3-0ubuntu0.20.04.1~lo1_amd64.deb C’est cela et non le source qui a été installé sur ta machine. C’est aussi sur cela qu’un virus pourrait choisir de s’attacher (de s’immiscer ?), à ton insu. Et comme les développeurs de LibreOffice n’ont pas accès à ta machine (heureusement :scream:) ils ne peuvent pas vérifier si un virus s’y trouve. Et ils ne pourraient pas non plus matériellement le faire sur des millions de machines, bien entendu.

Imaginons maintenant que je suis une personne qui tente d’installer un virus sur ta machine. Je pourrais, par exemple, trafiquer ta borne wifi pour qu’au lieu de récupérer le binaire qui se trouve sur https://launchpad.net (ci dessus) tu le récupère un sur https://la-fete-du-virus.org. Et j’y aurais préalablement inséré un astucieux virus dans LibreOffice writer qui m’envoie copie de tout les documents que tu sauvegarde. De quelle façon est-ce que tu pourrais t’assurer que ce n’est pas le cas ? Que ta copie du binaire est l’original ?

Il y a plusieurs méthodes mais j’ai choisi de mettre en avant celle qui repose sur l’accès au code source pour plusieurs raisons (que je ne détaille pas tout de suite parce que sinon ça va vraiment faire long :scroll: . Je pourrais aller chercher le code source sur https://git.libreoffice.org/core/+/refs/heads/master afin de re-fabriquer moi même le binaire et vérifier qu’il correspond a ce que j’ai installé sur ma machine. Alors tu vas me dire que l’astucieux installeur de virus aurait pu aussi prévoir cette éventualité mais c’est vraiment compliqué, au point qu’on va considérer que ce n’est pas un risque. Un peu comme la banque considère que si elle te demande un mot de passe et qu’en plus elle t’envoie un SMS de confirmation ça va suffire: une personne mal intentionnée qui parvient à prendre le contrôle de deux moyens de vérification est tellement forte qu’elle dispose vraisemblablement de multiples moyens de te tromper, bref tu es cuite :dark_sunglasses: C’est pour ça qu’un logiciel libre n’est vraiment libre que si tu disposes aussi des moyens de refabriquer le binaire—parce qu’il y a quand même des entrepreneurs un peu marlous qui se sont dit que ce serait une bonne idée de garder ça secret tout en prétendant que leur logiciel est libre—mais je m’égare.

Donc une fois que j’ai récupéré le code source sur https://git.libreoffice.org/core/+/refs/heads/master je vais refabriquer le binaire. Et je vais le comparer à ce qui est installé sur ma machine. Si c’est exactement la même chose, c’est à dire que les fichiers ont exactement la même taille et que chaque octet est exactement à la même place, alors je suis rassuré: un virus ne s’est pas installé.

Avec un peu de chance ces explications assez verbeuses ont éclairé ce que je voulais dire. Ou pas :stuck_out_tongue:

Je te propose de mettre tout ça dans les commentaires du document et j’essaierai de synthétiser quand je m’y remettrai pour reprendre tes autres modifs (si tu y arrives avant moi, tant mieux ceci étant dit :slight_smile: )

J’ai bien conscience que ce que j’ai écrit demande de se poser un peu pour éventuellement en tirer quelque chose. Lorsque tu auras le temps de le faire, je te propose simplement de répondre sur ce forum avec des questions supplémentaires (je pense qu’il y en aura…). Et si, par fantastique conjonction des planètes, c’est totalement limpide, je me chargerais de trouver une rédaction qui tienne la route.

Je crains qu’une tentative de synthèse de ta part soit mise en échec parce que j’ai échoué à transmettre les concepts nécessaires. Et c’est quand même pas facile d’expliquer quelque chose synthétiquement et je me sentirais horriblement coupable de t’avoir fait faire l’effort sur de mauvaises bases.

Je vais tenter une rédaction différente ce soir. Pour archive voici la rédaction initiale:

Le code source du logiciel est jalousement gardé par Huawei, au prétexte de cacher leur savoir- faire à leur concurrents. Mais c’est aussi cette opacité qui est à l’origine de la défiance des États, incapables de vérifier la bonne foi de l’entreprise lorsqu’elle nie la présence de porte dérobées. A contrario, si Huawei diffusait le code source du logiciel en même temps que sa traduction binaire, il serait beaucoup plus facile de constater l’absence de porte dérobée et de restaurer un climat de confiance, mais cela mettrait à mal leur modèle économique puisque ce code serait susceptible d’être copié par ses concurrents. Il en va de même pour AUTRES EXEMPLES DE LOGICIELS COURANTSZoom, Microsoft, Apple ou Google.
À l’inverse, les logiciels libres sont, par définition, livrés avec leur code source que chacun peut alors étudier pour les faire évoluer, ajouter des fonctionalités, corriger des bugs et… s’assurer qu’ils ne contiennent pas de portes dérobées, installées par malice ou par inadvertance. Il ne sera donc jamais nécessaire de lutter contre les portes dérobées lorsqu’on s’appuie sur des Logiciels Libres car elles ne peuvent pas être dissimulées efficacement.

Nouvelle proposition (aussi dans le document mais j’aime bien en avoir copie ici).

Si tout un chacun avait accès au code source de ce logiciel, il n’y aurait plus de motif d’inquiétude car il est facile d’en analyser le fonctionnement. C’est même la première qualité attendue d’un code source qui est “la forme préférée pour travailler sur un logiciel, le comprendre et le faire évoluer”. Mais il est jalousement gardé par Huawei, au prétexte de cacher leur savoir- faire à leur concurrents.
Or le code source d’un logiciel libre est par définition toujours disponible: son absence signifierait que le logiciel n’est pas libre. C’est ce qui immunise le logiciel libre contre les portes dérobées: une transparence qui permet à tous de constater leur absence. Si le concepteur cherchait à ajouter une porte, elle serait alors visible de tous.

1 Like

Intel domine totalement le marché des processeurs (plus de 95% en 2015) , c’est à dire que la quasi totalité des ordinateurs dans le monde ont des processeurs Intel. Mais ce n’est pas le cas des téléphones mobiles qui sont équipés pour la majorité de processeurs ARM qui, contrairement à Intel, sont fabriqués par une très grande diversités d’entreprises indépendantes. Le troisième larron de la bande est AMD qui ne m’inspire pas plus confiance, même si j’ai une faiblesse pour ceux qui sont dominés.

J’ai re-écrit aussi la partie sur les virus qui était un peu indigeste. Je pense que tu vas vouloir la reformuler parce que ça reste assez maladroit :blush: J’ai relu ton introduction et ça passe vraiment bien :tophat: J’ai bien l’impression qu’on est pas très loin d’avoir un truc bien :slight_smile:

1 Like

Tu veux dire à l’installation ? Lorsque je cherche le code à installer parce que le logiciel n’est pas encore installé sur mon ordi ?
Parce qu’une fois que le binaire est installé, il l’est une fois pour toutes non ? Il n’y a plus à passer par le wifi après…

D’accord, je comprends.
Mais du coup, je ne vois juste pas l’intérêt d’avoir déjà un binaire à la base s’il faut de toute façon le refabriquer pour vérifier qu’il ne contient pas de virus ^^"

Je suis fort déçue que ce lien ne mène à rien

1 Like

Peux-tu recontextualiser ce message ?