Comment puis-je confirmer que les fichiers binaires de mon Ubuntu proviennent du code source?

25

Comme 99% des utilisateurs, j'installe Ubuntu à partir de binaires prêts à l'emploi.

Comment puis-je vérifier que ces binaires proviennent en fait du code source d’Ubuntu?

Il serait bon de vérifier que NSA / quelqu'un n'a pas collaboré avec Ubuntu ou Linode (mon fournisseur de VPS) pour jouer avec les binaires. Si nous pouvions vérifier les fichiers binaires, il serait également peu probable qu’ils le tentent d’abord, car il serait facile de les appeler.

    
posée mark1111 09.07.2014 - 13:02
la source

6 réponses

36

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é un code quelque part pour permettre un enregistreur de frappe ou quelque chose qui peut être activé à distance.

Alors ...

  1. après avoir téléchargé le code source,
  2. vous devez vérifier tout le code,
  3. puis compilez-le!

Mais attendez - pouvez-vous faire confiance au compilateur ?

    
réponse donnée SPRBRN 09.07.2014 - 13:46
la source
9

Si vous n'êtes pas prêt à accepter "parce qu'Ubuntu le dit", alors vous ne pouvez pas.

    
réponse donnée fkraiem 09.07.2014 - 13:24
la source
5

Ubuntu offre un moyen pratique de compiler un paquet sur votre propre machine. Cependant, il n'y a aucun moyen de vérifier que l'exécutable dans un paquet binaire que vous avez téléchargé a été obtenu à partir de ce code source. Le processus de signature utilisé par Ubuntu réduit considérablement le risque de falsification des packages par des tiers, mais vous devez toujours vous assurer qu'aucun code nuisible n'a été ajouté avant la compilation qui ne figure pas dans le code source téléchargeable.

La raison en est qu’il est extrêmement difficile d’obtenir exactement les mêmes binaires qu’il ya dans les paquets compilés, car ceux-ci dépendent de la version précise du compilateur, de ses options et il existe probablement des chemins ou des variables d’environnement compilés dans 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 de ce problème - comment rendre la compilation reproductible.

Cela dit, une comparaison manuelle d’un fichier binaire téléchargé et d’un fichier auto-compilé peut détecter du code ajouté / modifié, il serait donc risqué pour quelqu'un d’offrir des fichiers binaires et le code source de cacher quelque chose. dans les binaires, car cela peut être détecté.

Mais il y a aussi le problème de faire confiance au compilateur, comme déjà mentionné ...

    
réponse donnée DCTLib 09.07.2014 - 15:25
la source
4

Il est difficile de créer exactement les mêmes fichiers binaires sur deux machines différentes. Le projet TOR fait cela régulièrement dans le cadre de leur construction. Il y a une description comment ils le font . Debian et Fedora semblent avoir des projets rendant cela possible pour ces distributions, mais elles sont en phase de démarrage. Il ne semble pas y avoir de travail effectué dans Ubuntu . Il p>

Pour reproduire un package binaire Ubuntu, vous devez reproduire au mieux l’environnement dans lequel il a été créé. Pour commencer, vous devez d'abord savoir où et comment ces paquets ont été compilés. Il ne semble pas que ces informations soient faciles à trouver.

    
réponse donnée Josef 09.07.2014 - 16:29
la source
0

Vérification avec le MD5 d’Ubuntu. Si le fichier MD5 que vous obtenez de vos fichiers correspond à celui publié par Ubuntu, personne n'a falsifié les fichiers binaires entre eux.

    
réponse donnée YoMismo 10.07.2014 - 16:15
la source
0

C'est un travail difficile, je pense que la confiance est meilleure que ce travail compliqué. Mais la question Pouvez-vous faire confiance?

Comme les logiciels Open Source permettent aux utilisateurs de modifier le code, vous ne pouvez faire confiance à personne.

Faisons un scénario à cette fin, je veux vérifier que mon Ubuntu == source code , wait Pourquoi vous n'essayez pas de comparer les paquets à leur source?

  1. Construisez un paquet binaire pour Ubuntu à partir des sources.
  2. a comparé le paquet binaire auto-construit avec celui publié par la distribution.
  3. Utilisez apt-get -b source pour télécharger le source.

Mais pour moi, comparer bien vous donne des résultats légèrement différents en raison de différents horodatages, environnements, mais cela prouve-t-il que ce n'est pas du code source!

    
réponse donnée nux 11.07.2014 - 04:14
la source

Lire d'autres questions sur les étiquettes