Podobnie jak 99% użytkowników, instaluję Ubuntu z gotowych plików binarnych.
Jak mogę się zweryfikować, czy te pliki binarne pochodzą z oryginalnego kodu źródłowego z Ubuntu?
Dobrze byłoby sprawdzić, czy NSA / ktoś nie współpracował ani z Ubuntu, ani z Linode (moim dostawcą VPS), aby zadzierać z plikami binarnymi. Gdybyśmy mogli zweryfikować pliki binarne, nie byłoby też prawdopodobne, aby spróbowali tego dokonać, ponieważ łatwo byłoby je wywołać.
apt-get source
lub użyć go do skompilowania własnego. Zobacz to pytanie: askubuntu.com/questions/28372/…Odpowiedzi:
Możesz pobrać kod źródłowy i samodzielnie go skompilować. Ale poczekaj - najpierw musisz sprawdzić ten kod źródłowy, ponieważ jeśli Canonical współpracował z NSA, prawdopodobnie wprowadzili gdzieś kod, aby umożliwić keylogger lub coś, co można aktywować zdalnie.
Więc...
Ale poczekaj - czy możesz zaufać kompilatorowi ?
źródło
Jeśli nie chcesz zaakceptować „ponieważ Ubuntu tak mówi”, nie możesz.
źródło
Ubuntu oferuje wygodne sposoby kompilacji pakietu na twoim komputerze. Nie ma jednak sposobu, aby sprawdzić, czy plik wykonywalny w pobranym pakiecie binarnym został pobrany z tego kodu źródłowego. Proces podpisywania używany przez Ubuntu znacznie zmniejsza ryzyko manipulowania pakietami przez osoby trzecie, ale nadal musisz ufać, że przed kompilacją nie dodano szkodliwego kodu, który nie znajduje odzwierciedlenia w kodzie źródłowym do pobrania.
Powodem jest to, że niezwykle trudno jest uzyskać dokładnie takie same pliki binarne, jakie znajdują się w skompilowanych pakietach, ponieważ zależą one od dokładnej wersji kompilatora, jego opcji i prawdopodobnie istnieją również ścieżki lub zmienne środowiskowe wkompilowane w plik binarny. Podczas kompilacji nie będziesz w stanie uzyskać dokładnie tego samego pliku binarnego, który „zweryfikuje” pobrany plik binarny.
W rzeczywistości istnieje niewielka społeczność badawcza wokół tego problemu - jak sprawić, by kompilacja była odtwarzalna.
To powiedziawszy, ręczne porównanie pobranego pliku binarnego i samokompilowanego może wykryć dodany / zmodyfikowany kod, więc ryzykowanie dla kogoś, kto oferuje pliki binarne i kod źródłowy, może ukryć coś w plikach binarnych, ponieważ można to wykryć.
Ale jest też problem zaufania do kompilatora, jak już wspomniano ...
źródło
Trudno jest stworzyć dokładnie takie same pliki binarne na dwóch różnych komputerach. Projekt TOR robi to regularnie jako część ich kompilacji. Jest opis, jak to robią. Wydaje się, że Debian i Fedora mają projekty umożliwiające taką dystrybucję, ale są na wczesnym etapie. Nie wydaje się, aby w Ubuntu wykonano jakąkolwiek pracę .
Aby odtworzyć pakiet binarny Ubuntu, musisz odtworzyć środowisko, w którym zostało utworzone, tak dokładnie, jak to możliwe. Na początek musisz najpierw dowiedzieć się, gdzie i jak skompilowano te pakiety. Nie wygląda na to, że informacja ta jest łatwa do znalezienia.
źródło
Sprawdzanie za pomocą MD5 Ubuntu. Jeśli MD5 otrzymany z twoich plików jest zgodny z opublikowanym przez Ubuntu, to nikt nie manipulował pomiędzy plikami binarnymi.
źródło
To ciężka praca, myślę, że zaufanie tutaj jest lepsze niż ta skomplikowana praca. Ale pytanie Czy możesz zaufać?
Ponieważ oprogramowanie typu open source zapewnia użytkownikom swobodę zmiany kodu, nie można komukolwiek ufać.
Zróbmy scenariusz do tego celu, chcę to sprawdzić
Ubuntu == source code
, czekaj Dlaczego nie próbujesz porównać pakietów z ich źródłem?Ale dla mnie dobre porównywanie daje drobne różne wyniki z powodu różnych znaczników czasu, środowisk, ale czy to dowodzi, że nie pochodzi on z kodu źródłowego!
źródło