Comme 99% des utilisateurs, j'installe Ubuntu à partir de fichiers binaires prêts à l'emploi.
Comment puis-je vérifier moi-même que ces fichiers binaires sont en fait issus du code source d'origine d'Ubuntu?
Il serait bon de vérifier que NSA/quelqu'un n'a pas collaboré avec Ubuntu ou Linode (mon fournisseur VPS) pour jouer avec les fichiers binaires. Si nous pouvions vérifier les fichiers binaires, ils ne seraient probablement pas non plus tentés de le faire car il serait facile de les appeler.
Vous pouvez télécharger le code source et le compiler vous-même. Mais attendez - vous devez d’abord vérifier ce code source, car si Canonical a collaboré avec la NSA, ils ont probablement entré du code quelque part pour autoriser un enregistreur de frappe ou quelque chose qui peut être activé à distance.
Alors...
Mais attendez - pouvez-vous faire confiance au compilateur ?
Si vous ne voulez pas accepter "parce que Ubuntu le dit bien", vous ne pouvez pas.
Ubuntu offre des moyens pratiques pour compiler un paquet sur votre propre machine. Cependant, il n'y a aucun moyen de vérifier que l'exécutable d'un paquet binaire que vous avez téléchargé a bien été obtenu à partir de ce code source. Le processus de signature utilisé par Ubuntu réduit considérablement le risque de falsification par des tiers des packages, mais vous devez toujours vous assurer qu'aucun code nuisible n'a été ajouté avant la compilation, ce qui n'est pas reflété dans le code source téléchargeable.
La raison en est qu’il est extrêmement difficile d’obtenir exactement les mêmes fichiers binaires que dans les packages compilés, car ceux-ci dépendent de la version précise du compilateur, de ses options et probablement de certains chemins ou variables d’environnement compilés dans le binaire. Vous ne pourrez donc pas obtenir exactement le même fichier binaire lors de la compilation, ce qui "vérifierait" le fichier binaire téléchargé.
Il existe en fait une petite communauté de chercheurs autour précisément de ce problème - comment rendre une compilation reproductible.
Ceci dit, une comparaison manuelle d'un binaire téléchargé et d'un auto-compilé peut détecte le code ajouté/modifié, il serait donc risqué que quelqu'un offrant des binaires et le code source cache quelque chose dans les binaires. , comme cela peut être détecté.
Mais il y a aussi le problème de la confiance envers le compilateur, comme déjà mentionné ...
Il est difficile de créer exactement les mêmes fichiers binaires sur deux machines différentes. Le projet TOR le fait normalement dans leur construction. Il y a une description comment ils le font.Debian et Fedora semblent avoir des projets rendant cela possible pour cette distribution, mais ils sont au début étapes. C'est il ne semble pas y avoir de travail sous Ubunt .
Pour reproduire un paquet binaire Ubuntu, vous devez reproduire le plus fidèlement possible l'environnement dans lequel il a été créé. Pour commencer avec cela, vous devez d’abord savoir où et comment ces paquets ont été compilés. Il ne semble pas que cette information soit facile à trouver.
C'est un travail difficile, je pense que la confiance ici est meilleure que ce travail compliqué. Mais la question Pouvez-vous faire confiance?
Étant donné que les logiciels Open Source offrent aux utilisateurs de nombreuses libertés pour modifier le code, vous ne pouvez faire confiance à personne.
Faisons un scénario à cet effet, je veux vérifier que mon Ubuntu == source code
, attend pourquoi vous n'essayez pas de comparer les paquets à leur source?
Mais pour moi, si vous comparez bien, vous obtiendrez des résultats légèrement différents en raison de l’horodatage et des environnements différents, mais est-ce que cela prouve que ce n’est pas du code source!
Vérification avec le MD5 d'Ubuntu. Si le MD5 que vous récupérez dans vos fichiers correspond à celui publié par Ubuntu, personne n’a falsifié les fichiers binaires entre eux.