gdzie są wysiłki na rzecz standaryzacji metadanych integralności pobierania? (appcasting?)

0

Cały czas ściągam oprogramowanie typu open-source i jestem ciągle zakłopotany faktem, że z jednej strony tak wiele stron ( Apache , MySQL , Zaćmienie ) przekazywać informacje o integralności pobierania za pomocą skrótów MD5 i / lub podpisów cyfrowych, zwłaszcza, że ​​zaangażowane są strony lustrzane pobierania, które są potencjalnie podatne na ataki hakerów, ale format tych informacji o integralności pobierania jest czytelny dla człowieka i nie można go odczytać maszynowo.

Uwielbiałbym, gdyby istniał standardowy format tych informacji, więc mógłbym użyć oprogramowania wtyczek w mojej przeglądarce internetowej, aby wykonać całą brudną robotę i wygenerować plik dziennika wyników, więc nie musiałbym musieć ręcznie uruchom md5 i wykonuj tę dodatkową pracę za każdym razem, gdy coś pobieram. Wygląda na to, że rzeczywiście istnieją pewne wysiłki w projektowaniu takich formatów jak np. „appcasting” (Zobacz też tutaj i tutaj i tutaj i jak wygląda oryginalny blog tutaj ) ...

... jak coś takiego nie jest bardziej rozpowszechnione w społeczności open source? Co trzeba zrobić, aby coś takiego się uruchomiło?

Jason S
źródło

Odpowiedzi:

2

Krótka odpowiedź brzmi, że istnieje standardowa metoda, to się nazywa podpisywanie aplikacji . Dłuższa odpowiedź jest nieco bardziej skomplikowana.

Jeśli chodzi o twój pomysł mieszania MD5, istnieje przynajmniej jedna eksperymentalna wtyczka Firefox, która oblicza wartości mieszania pobranych plików. Następnie możesz je ręcznie porównać. Alternatywnie, wiele stron oferuje pobieranie plików tekstowych z wstępnie obliczonymi skrótami dla ich oprogramowania. Następnie możesz wymusić sprawdzenie za pomocą md5sum -c < hash filename >. Problem z tymi wszystkimi metodami polega na tym, że jeśli atakujący był w stanie zastąpić pobrany plik, prawdopodobnie mógłby zmienić skróty wymienione na stronie.

Podpisywanie aplikacji jest oficjalnym rozwiązaniem tego problemu. Korzysta z kryptografii klucza publicznego i urzędów certyfikacji w sposób podobny do tego, który jest używany w standardzie zabezpieczeń SSL dla stron internetowych. Działa poprzez uzyskanie certyfikatu cyfrowego od urzędu certyfikacji. Ten certyfikat może zostać zweryfikowany przez kogokolwiek i upewnij się, że jego posiadaczem jest to, kim są. Można go również użyć do „podpisania” paczki, która zapewnia, że ​​paczka została wyprodukowana przez posiadacza i nie została w żaden sposób zmieniona przez nikogo poza posiadaczem.

Dlaczego więc nie widzimy lepszego zastosowania tych metod? Cóż, są już całkiem dobrze zaadaptowane i są niewidoczne, gdy działają. Główne systemy operacyjne i przeglądarki korzystają z podpisów, jeśli są domyślnie dostępne. Ponadto główne dystrybucje systemu Linux podpisują pakiety oprogramowania i aktualizacje, które udostępniają za pomocą tych metod. Jednakże, jeśli chodzi o mniejszych graczy, jest mało prawdopodobne, abyśmy zobaczyli dużą adopcję.

Problemem jest tutaj mieszanka ubóstwa hakerów i dumy hakerów. Aby uzyskać jeden z tych certyfikatów, musisz zapłacić dużą sumę pieniędzy jednemu z urzędów certyfikacji. Jeśli nie, programista może nadal podpisywać własne pakiety bez błogosławieństwa CA. W ten sposób użytkownik, który pobierze plik, może być pewien, że tylko posiadacz certyfikatu dotknął określonego pakietu, który spełnia wymagania integralności Twojego pytania.

Niestety, korzystając z takiego certyfikatu „z podpisem własnym” maleje publiczne zaufanie do twojego oprogramowania, zamiast go zwiększać. Jeśli samodzielnie się podpisujesz, system operacyjny / przeglądarka skarży się głośno kiedy próbujesz otworzyć pakiet; głośniejszy nawet niż w przypadku całkowicie niepodpisanego pliku. Ponieważ przeglądarka lub system operacyjny nie ufają twórcy oprogramowania, sądzi, że nie powinieneś im ufać.

Na tej podstawie skarga hakerów brzmi: dlaczego ktoś miałby ufać jakimś bezimiennym wielonarodowemu urzędowi certyfikacji bardziej niż komuś innemu? Co kiedykolwiek zrobili, aby udowodnić, że są bardziej godni zaufania niż wszyscy inni?

Dla wielu osób kwestia certyfikatu sprowadza się do wymuszenia: „Płać nam $$$, aby Cię poświadczyć, lub Twoje pobrane dane będą obywatelami drugiej kategorii”. Dlatego podpisywanie aplikacji nie zostało przyjęte przez nikogo oprócz największych graczy.

frnknstn
źródło
Nie zgadzam się z niczym, co mówisz, ale (a) czasami pliki do pobrania nie są aplikacjami (plikami .dll lub skompilowanymi bibliotekami lub plikami .xml), więc nie można ich podpisać. I (b) wiele witryn używa skrótów MD5 do weryfikacji integralności witryn pobierania lustrzanego. Chciałbym tylko, aby skrót MD5 był sformatowany w sposób, który mógłby być czytelny dla komputera.
Jason S
Każdy plik może być podpisany, a nie tylko pliki wykonywalne. Na przykład w witrynie apache do każdego pobrania dołączony jest plik .asc zawierający podpis, na przykład mysql.tar.gz.asc. Domyślam się, że pytasz o wtyczkę Firefoksa, która: - może rozpoznać i zaoferować importowanie kluczy publicznych PGP, na które natkniesz się - automatycznie próbować pobrać pliki .md5 lub .asc, gdy tylko zainicjujesz pobieranie, - zweryfikować pobieranie, gdy jest zakończ, lub gdy ręcznie pobierzesz plik podpisu, automatycznie zweryfikuj pliki, które podpisuje
frnknstn