Czasami zobaczysz skróty MD5, SHA-1 lub SHA-256 wyświetlane wraz z pobraniami podczas podróży do Internetu, ale nie wiadomo, czym one są. Te pozornie losowe ciągi tekstu pozwalają ci sprawdzić, czy pobierane pliki nie są uszkodzone lub przerobione. Możesz to zrobić za pomocą poleceń wbudowanych w Windows, macOS i Linux.
Hashe są produktami algorytmów kryptograficznych zaprojektowanych do tworzenia ciągu znaków. Często te struny mają stałą długość, niezależnie od wielkości danych wejściowych. Spójrz na powyższą tabelę, a zobaczysz, że zarówno "Lis", jak i "Czerwony lis przeskoczył nad niebieskim psem" dają taką samą długość wyjściową.
Teraz porównaj drugi przykład na wykresie z trzecim, czwartym i piątym. Zobaczysz, że pomimo bardzo niewielkiej zmiany danych wejściowych, wynikowe skróty różnią się bardzo od siebie. Nawet jeśli ktoś modyfikuje bardzo mały fragment danych wejściowych, skrót będzie się diametralnie zmieniać.
MD5, SHA-1 i SHA-256 są różnymi funkcjami skrótu. Twórcy oprogramowania często pobierają plik - jak plik .iso Linux, a nawet plik .exe Windows - i uruchamiają go za pomocą funkcji skrótu. Następnie oferują oficjalną listę skrótów na swoich stronach internetowych.
W ten sposób możesz pobrać plik, a następnie uruchomić funkcję skrótu, aby potwierdzić, że masz prawdziwy, oryginalny plik i że nie został uszkodzony podczas procesu pobierania. Jak widzieliśmy powyżej, nawet niewielka zmiana w pliku radykalnie zmieni hasz.
Mogą być również przydatne, jeśli masz plik z nieoficjalnego źródła i chcesz potwierdzić, że jest to uzasadnione. Załóżmy, że masz plik .ISO dla systemu Linux, który masz gdzieś i chcesz potwierdzić, że nie został naruszony. Możesz wyszukać hasz tego konkretnego pliku ISO online na stronie dystrybucji Linuksa. Następnie możesz uruchomić go za pomocą funkcji skrótu na komputerze i potwierdzić, że pasuje do wartości hash, której oczekujesz. To potwierdza, że plik, który posiadasz, jest dokładnie tym samym plikiem, który jest oferowany do pobrania na stronie internetowej dystrybucji Linuksa, bez żadnych modyfikacji.
Zauważ, że znaleziono "kolizje" z funkcjami MD5 i SHA-1. Jest to wiele różnych plików - na przykład bezpieczny plik i złośliwy plik - które dają ten sam skrót MD5 lub SHA-1. Dlatego powinieneś preferować SHA-256, kiedy to możliwe.
Mając to na uwadze, spójrzmy, jak sprawdzić zawartość skrótu pobranego pliku i porównać go z tym, który otrzymałeś. Oto metody dla Windows, macOS i Linux. Skórki będą zawsze identyczne, jeśli używasz tej samej funkcji mieszania dla tego samego pliku. Nie ma znaczenia, z jakiego systemu operacyjnego korzystasz.
Ten proces jest możliwy bez oprogramowania firm trzecich w systemie Windows dzięki PowerShell.
Aby rozpocząć, otwórz okno PowerShell, uruchamiając skrót "Windows PowerShell" w menu Start.
Uruchom następujące polecenie, zastępując "C: \ path \ to \ file.iso" ścieżką do dowolnego pliku, dla którego chcesz wyświetlić skrót:
Get-FileHash C: \ ścieżka \ do \ plik.iso
Wygenerowanie skrótu pliku zajmie trochę czasu, w zależności od rozmiaru pliku, używanego algorytmu i szybkości dysku, na którym plik się znajduje.
Domyślnie polecenie pokaże skrót SHA-256 dla pliku. Można jednak podać algorytm mieszania, którego chcesz użyć, jeśli potrzebujesz MD5, SHA-1 lub innego typu skrótu.
Uruchom jedno z poniższych poleceń, aby określić inny algorytm skrótu:
Get-FileHash C: \ path \ to \ file.iso -Algorithm MD5
Get-FileHash C: \ ścieżka \ do \ file.iso -Algorithm SHA1
Get-FileHash C: \ ścieżka \ do \ file.iso -Algorithm SHA256
Get-FileHash C: \ ścieżka \ do \ file.iso -Algorithm SHA384
Get-FileHash C: \ ścieżka \ do \ file.iso -Algorithm SHA512
Get-FileHash C: \ path \ to \ file.iso -Algorithm MACTripleDES
Get-FileHash C: \ ścieżka \ do \ file.iso -Algorithm RIPEMD160
Porównaj wynik funkcji skrótu z wynikiem, który oczekiwałeś. Jeśli ma tę samą wartość, plik nie został uszkodzony, zmodyfikowany lub zmodyfikowany w inny sposób niż oryginał.
macOS zawiera polecenia do przeglądania różnych typów skrótów. Aby uzyskać do nich dostęp, uruchom okno Terminal. Znajdziesz go w Finderze> Aplikacje> Narzędzia> Terminal.
The md5
polecenie pokazuje skrót mieszania MD5 pliku:
md5 / path / to / file
The shasum
Polecenie domyślnie wyświetla skrót SHA-1 pliku. Oznacza to, że następujące polecenia są identyczne:
shasum / path / to / file
shasum -a 1 / path / to / file
Aby wyświetlić skrót SHA-256 pliku, uruchom następujące polecenie:
shasum -a 256 / path / do / file
W systemie Linux uzyskaj dostęp do terminala i uruchom jedną z następujących komend, aby wyświetlić mieszanie dla pliku, w zależności od typu mieszania, które chcesz wyświetlić:
md5sum / path / to / file
sha1sum / path / to / file
sha256sum / path / to / file
Podczas gdy skróty mogą pomóc ci potwierdzić, że plik nie został zmieniony, wciąż istnieje jedna możliwość ataku. Osoba atakująca może przejąć kontrolę nad witryną dystrybucji Linuksa i zmodyfikować hasze, które się na niej pojawiają, lub osoba atakująca może przeprowadzić atak typu "w środku" i zmodyfikować stronę internetową w trakcie przesyłania, jeśli korzystasz z witryny za pośrednictwem protokołu HTTP zamiast zaszyfrowane HTTPS.
Dlatego współczesne dystrybucje Linuksa często dostarczają więcej niż hasze wymienione na stronach internetowych. Kryptograficznie podpisują te skróty, aby chronić przed atakującymi, którzy mogą próbować modyfikować skróty. Będziesz chciał zweryfikować podpis kryptograficzny, aby upewnić się, że plik hash został faktycznie podpisany przez dystrybucję Linuksa, jeśli chcesz mieć absolutną pewność, że hash i plik nie zostały zmodyfikowane.
Weryfikacja podpisu kryptograficznego jest bardziej zaangażowanym procesem. Zapoznaj się z naszym przewodnikiem po weryfikacji systemów plików ISO, które nie zostały zmodyfikowane w celu uzyskania pełnych instrukcji.
Image Credit: Jorge Stolfi / Wikimedia