Jak, dlaczego i kiedy powinieneś sprawdzić hash

Tutaj w ProPrivacy po prostu miłość oprogramowanie open source. Dzieje się tak głównie dlatego, że pomimo braku doskonałości, open source zapewnia jedyny sposób, aby mieć pewność, że program jest na poziomie.

Jednym z problemów jest to, skąd wiesz, że program open source, który pobierasz ze strony internetowej, to program, który jego twórcy zamierzali pobrać? Skrypty kryptograficzne są częściowym rozwiązaniem tego problemu.

Co to jest skrót kryptograficzny?

Skrypt kryptograficzny to suma kontrolna lub cyfrowy odcisk palca uzyskany przez wykonanie jednokierunkowej funkcji skrótu (operacji matematycznej) na danych zawierających program komputerowy (lub inne pliki cyfrowe).

Każda zmiana tylko jednego bajtu danych zawierających program komputerowy spowoduje zmianę wartości skrótu. Wartość skrótu jest zatem unikalnym odciskiem palca dla dowolnego programu lub innych plików cyfrowych.

Co to jest kontrola skrótu?

Zapewnienie, że program nie został zmodyfikowany lub po prostu uszkodzony, jest dość prostą kwestią obliczenia jego wartości skrótu, a następnie porównania jej z sumą kontrolną skrótu podaną przez jej programistów.

Jeśli jest taki sam, masz uzasadniony poziom pewności, że pobrany program jest dokładnie taki sam, jak program opublikowany przez jego programistę. Jeśli tak nie jest, program został w jakiś sposób zmieniony.

Przyczyny tego nie zawsze są złośliwe (patrz poniżej), ale nieudana kontrola skrótu powinna ustawić dzwonienie dzwonków alarmowych.

Problemy z kontrolami skrótu

Być może zauważyłeś ostrożność podczas śpiewania pochwał sprawdzania wartości skrótu...

Integralność, ale nie uwierzytelnianie

Sprawdzanie wartości skrótu jest przydatne do zapewnienia integralności plików, ale nie zapewnia żadnego rodzaju uwierzytelnienia. Oznacza to, że są dobre dla zapewnienia, że ​​plik lub program, który masz, jest zgodny ze źródłem, ale nie zapewniają żadnej możliwości sprawdzenia, czy źródło jest prawidłowe.

Kontrole mieszania nie gwarantują źródła sumy kontrolnej skrótu.

Na przykład istnieją fałszywe strony internetowe, które rozpowszechniają złośliwe wersje popularnego oprogramowania typu open source, takiego jak KeePass. Wiele z tych witryn zapewnia nawet sumy kontrolne skrótów dla dostarczanych przez nich programów, a gdybyś porównał je z fałszywym programem, pasowałyby do siebie. Ups.

Słabości matematyczne

Dodatkowym problemem jest to, że słabości matematyczne mogą oznaczać, że skróty nie są tak bezpieczne, jak powinny.

Na przykład algorytm MD5 pozostaje bardzo popularną funkcją skrótu, pomimo znanej podatności na ataki kolizyjne. Rzeczywiście, nawet SHA1 nie jest już uważany za bezpieczny pod tym względem.

Mimo to MD5 i SHA1 pozostają najpopularniejszymi algorytmami używanymi do generowania wartości skrótu. SHA256 pozostaje jednak bezpieczny.

Lenistwo programistów

Programiści czasami aktualizują swoje programy za pomocą poprawek błędów i nowych funkcji, ale zaniedbują opublikowanie zaktualizowanej sumy kontrolnej skrótu. Powoduje to nieudane sprawdzenie skrótu podczas pobierania i próby zweryfikowania ich programu.

Nie jest to oczywiście tak poważne, jak kontrola hash dająca złośliwe oprogramowanie przepustce, ale może obniżyć zaufanie do ekosystemu, powodując, że ludzie nie będą musieli sprawdzać integralności pobieranych plików...

Hasła kryptograficzne a podpisy cyfrowe

Większość problemów z hashami kryptograficznymi rozwiązuje się za pomocą podpisów cyfrowych, które gwarantują zarówno integralność, jak i uwierzytelnianie.

Programiści, którzy chętnie korzystają z zastrzeżonego kodu, mogą automatycznie i transparentnie sprawdzać poprawność podpisów przy pierwszej instalacji oprogramowania, korzystając z mechanizmów takich jak Microsoft, Apple lub Google PKI (infrastruktura klucza publicznego).

Programiści open source nie mają tego luksusu. Muszą używać PGP, który nie jest natywnie obsługiwany przez żaden zastrzeżony system operacyjny i dlaczego w Linuksie nie ma odpowiednika infrastruktury Microsoft, Apple ani Google PKI.

Dlatego podpisy cyfrowe PGP należy zweryfikować ręcznie. Ale PGP to kompletna świnia w użyciu i nie jest to prosty proces, ponieważ szybki rzut oka na nasz przewodnik po sprawdzaniu podpisów PGP w systemie Windows pokaże.

Rzeczywisty proces podpisywania nie jest również dla programistów, którzy są świadomi, że w rzeczywistości niewiele osób stara się ręcznie sprawdzać podpisy cyfrowe.

Hasła kryptograficzne nie są tak bezpieczne jak podpisy cyfrowe PGP, ale są znacznie łatwiejsze w użyciu, w wyniku czego wielu programistów po prostu na nich polega, zamiast cyfrowo podpisywać swoją pracę.

Naprawdę powinieneś sprawdzić hash (jeśli nie ma podpisu cyfrowego)

Jest to mniej niż idealna sytuacja i zawsze powinieneś sprawdzać podpis cyfrowy programu open source, gdy jest on dostępny. Jeśli jednak tak nie jest, to sprawdzenie jego kryptograficznego skrótu jest znacznie lepsze niż nic nie robienie.

Tak długo, jak masz pewność co do źródła (na przykład masz pewność, że pochodzi on z prawdziwej witryny dewelopera, która nie została zhakowana w celu wyświetlenia fałszywego skrótu kryptograficznego), sprawdzanie jego wartości skrótu zapewnia spory stopień zbieżności oprogramowania pobrano oprogramowanie, które jego twórca zamierzał pobrać.

Jeśli ani podpis cyfrowy, ani suma kontrolna nie są dostępne dla oprogramowania typu open source, nie instaluj go ani nie uruchamiaj.

Jak sprawdzić skrót

Podstawowy proces wygląda następująco:

Opcjonalna podpozycja

  1. Zanotuj numer skrótu opublikowany przez programistę
  2. Wygeneruj wartość skrótu posiadanego pliku
  3. Porównaj dwie wartości skrótu

Jeśli są identyczne, oznacza to, że masz plik, który zamierzał mieć programista. Jeśli nie, oznacza to, że został uszkodzony lub został sfałszowany.

Jeśli dostępny jest skrót SHA256 +, sprawdź to. Jeśli nie, użyj SHA1. Tylko w ostateczności należy sprawdzić przy użyciu skrótu MD5.

Prosty sposób (wszystkie systemy)

Najprostszym sposobem na wygenerowanie wartości skrótu plików jest skorzystanie z witryny internetowej, takiej jak Narzędzia online. Po prostu wybierz rodzaj wartości skrótu, którą chcesz wygenerować, a następnie przeciągnij i upuść wymagany plik w odpowiednim miejscu, a odpowiednia wartość skrótu zostanie wygenerowana.

Przykład

Chcemy sprawdzić integralność pliku instalatora KeePass, który pobraliśmy ze strony KeePass.org (o której wiemy, że jest poprawną domeną). Witryna publikuje skróty MD5, SHA1 i SHA256 dla wszystkich wersji KeePass, więc sprawdzimy SHA256 dla pobranej wersji.

  1. Notujemy prawidłową wartość skrótu, opublikowaną na stronie internetowej KeePass.

  2. Następnie odwiedzamy witrynę narzędzi online, wybieramy opcję Hash pliku: SHA256 i przeciągamy pobrany plik instalatora KeePass w odpowiednie miejsce.

  3. Porównujemy wyniki z sumą kontrolną opublikowaną na stronie KeePass i są one identyczne. Zakładając, że witryna KeePass nie została zhakowana w celu wyświetlenia fałszywych wartości skrótu, możemy być pewni, że pobraliśmy plik niezakłócony. Tak!

    Windows, macOS i Linux mają również wbudowane funkcje wartości skrótu, do których można uzyskać dostęp z wiersza polecenia...

Windows

Ta metoda działa od razu po instalacji w systemie Windows 10, podczas gdy użytkownicy systemu Windows 7 muszą najpierw zaktualizować program Windows PowerShell za pomocą Windows Management Framework 4.0.

Aby uzyskać skrót SHA256, kliknij prawym przyciskiem myszy przycisk Start -> Windows PowerShell i typ:

Get-FileHash [ścieżka / do / pliku]

Na przykład:

Get-FileHash C: \ Users \ Douglas \ Downloads \ KeePass-2.43-Setup.exe

Skróty MD5 i SHA1 można obliczyć za pomocą składni:

Get-FileHash [ścieżka do [ścieżka / do / pliku] - algorytm MD5

i

Get-FileHash [ścieżka do [ścieżka / do / pliku] - algorytm SHA1

Na przykład:

Get-FileHash C: \ Users \ Douglas \ Downloads \ KeePass-2.43-Setup.exe -Algorytm MD5

System operacyjny Mac

Otwórz terminal i wpisz:

openssl [typ skrótu] [/ path / to / file]

Typ skrótu powinien być md5, SHA1 lub SHA256.

Na przykład, aby sprawdzić skrót SHA256 dla instalatora Windows KeePass (tylko dla uproszczenia tego samouczka), wpisz:

openssl sha256 /Users/douglascrawford/Downloads/KeePass-2.43-Setup.exe

Linux

Otwórz terminal i wpisz:

Md5sum [ścieżka / do / pliku] Sha1sum [ścieżka / do / pliku]

lub

Sha256sum [ścieżka / do / pliku]

Na przykład:

sha256sum /home/dougie/Downloads/KeePass-2.43-Setup.exe

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me