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.