r   e   k   l   a   m   a
r   e   k   l   a   m   a

Niebawem Debian będzie mógł udowodnić, że jest wolny od furtek w binarnych plikach

Strona główna AktualnościOPROGRAMOWANIE

Zeszłoroczna afera wokół TrueCrypta sprawiła, że na poważniej zaczęto się zastanawiać nad tym, czy binarne kompilacje otwartego oprogramowania na pewno powstają z udostępnionego przez jego autorów kodu źródłowego. Wydawać by się mogło, że nic prostszego, niż po prostu skompilować dostarczony kod i porównać uzyskaną binarkę z tym, co dostępne jest w repozytorium czy na stronie internetowej – ale w rzeczywistości wcale nie jest tak prosto. Na efekt wynikowy wpływa całe środowisko kompilacji, w szczególności wersja zastosowanych narzędzi, ścieżki dostępu, nazwy hostów, a nawet takie drobiazgi jak wybrana lokalizacja i uporządkowanie plików. Zazwyczaj więc po samodzielnym skompilowaniu kodu dostaniemy coś innego, niż dostarczają jego autorzy. Jak więc ufać otwartemu oprogramowaniu, szczególnie temu, które związane jest z bezpieczeństwem i szyfrowaniem? Jak uzyskać pewność, że w binariach nie ma furtek wprowadzonych tam przez NSA? Na szczęście nie jesteśmy w sytuacji beznadziejnej. Deweloperzy Debiana są bliscy ukończenia prac nad mechanizmem powtarzalnych kompilacji, pozwalającemu każdemu samodzielnie sprawdzić, czy dostarczane binaria zostały faktycznie skompilowane z opublikowanego kodu źródłowego.

Micah Lee, redaktor serwisu The Intercept, poinformował na Twitterze, że już niebawem Debian będzie pierwszym systemem operacyjnym, który będzie taki dowód „czystości” skompilowanego kodu przedstawić swoim użytkownikom. To zasługa ludzi działających w projekcie Reproducible Builds. Ich motto brzmi: powinno być możliwe odtworzenie bajt po bajcie każdej kompilacji każdego pakietu Debiana. Nietrywialne to zadanie, gdyż mowa jest o ponad 17 tysiącach pakietów, znajdujących się w oficjalnych repozytoriach tego wolnego systemu operacyjnego. A jednak wyniki są bardzo obiecujące – w taki deterministyczny i jednoznaczny sposób można odtworzyć już ponad 83% z nich.

Pracując nad systemem powtarzalnych kompilacji, deweloperzy wprowadzili specjalny sposób zapisu wszystkich informacji o środowisku, w jakim dany pakiet był budowany. To plik .buildinfo, naśladujący w swojej strukturze plik .change, używany do odnotowywania zmian wprowadzonych w nowej wersji pakietu. Znajdziemy w nim dane o ścieżkach kompilacji, skróty kryptograficzne plików źródłowych, numery wersji, wersje narzędzi itp. Plik ten zostaje następnie podpisany cyfrowo kluczami deweloperów Debiana, którzy zdołali osobiście odtworzyć binarkę, wykorzystując zawarte w .buildinfo wiadomości. Podpisy te, gromadzone w oddzielnych plikach, stanowią gwarancję dla użytkowników, że zaufani programiści ufają danej binarce.

Oczywiście nie ma przymusu ufania deweloperom Debiana. Na stronie projektu znajdują się szczegółowe wyjaśnienia, jak samemu zbudować deterministyczną kompilację. W tym celu wykorzystywane są zmodyfikowane wersje mechanizmu Common Debian Build System i jego programów pomocniczych, jak również innych elementów infrastruktury kompilacji i budowania pakietów na Debianie. Deweloperzy przygotowali też odpowiednie narzędzia do poszczególnych języków programowania (w tym Pythona i Javy) i popularnych bibliotek (na czele z Qt). Większość zmian wiąże się ze zmianami w obsłudze czasoznaczków czy porządku sortowania plików i w bliskiej przyszłości trafić ma do standardowej wersji infrastruktury.

Powtarzalne kompilacje wyrastają na kolejną fundamentalną cechę Debiana. Przygotowano m.in. narzędzie debbindiff, pozwalające na dogłębną analizę różnic pomiędzy binarnymi pakietami, pakiety są dwukrotnie budowane na platformie jenkins.debian.net, a informacje o powtarzalności kompilacji są zgłaszane w trackerze pakietów dystrybucji. Zespół odpowiedzialny za tę inicjatywę chciałby, by powtarzalne kompilacje stały się domyślnym celem dla „Stretcha”, następnej po Debianie 8 „Jessie” stabilnej wersji systemu.

Dla większości użytkowników sprawa ta nie ma oczywiście większego znaczenia. Ma ona jednak kolosalne znaczenie dla deweloperów wolnego i otwartego oprogramowania, dając im narzędzia pozwalające na zweryfikowanie binarnych pakietów i zagwarantowanie, że osoby pobierające np. pakiety Tora czy GPG nie otrzymają w nich jakiejś nieciekawej niespodzianki.

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.