Główna » jak » Co to są skróty MD5, SHA-1 i SHA-256 oraz jak je sprawdzać?

    Co to są skróty MD5, SHA-1 i SHA-256 oraz jak je sprawdzać?

    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.

    Jak działają hashe i jak są używane do weryfikacji danych

    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, wartość mieszania zmieni się dramatycznie.

    MD5, SHA-1 i SHA-256 są różnymi funkcjami skrótu. Twórcy oprogramowania często pobierają pliki do pobrania - takie jak plik .iso systemu Linux lub nawet plik .exe systemu 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 wartość mieszania.

    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 swoim komputerze i potwierdzić, że pasuje do wartości hash, której oczekujesz. Potwierdza to, ż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.

    Jak porównać funkcje skrótu w dowolnym systemie operacyjnym

    Mając to na uwadze, spójrzmy, jak sprawdzić zawartość skrótu pobranego pliku i porównaj 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.

    Windows

    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 jest zapisany.

    Domyślnie polecenie pokaże skrót SHA-256 dla pliku. Możesz jednak podać algorytm mieszający, którego chcesz używać, jeśli potrzebujesz MD5, SHA-1 lub innego typu hasha.

    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: \ path \ to \ file.iso -Algorithm RIPEMD160

    Porównaj wynik funkcji mieszania z wynikiem, który spodziewałeś się zobaczyć. Jeśli ma tę samą wartość, plik nie został uszkodzony, zmodyfikowany lub zmodyfikowany w inny sposób niż oryginał.

    System operacyjny Mac

    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 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 / to / file

    Linux

    W systemie Linux uzyskaj dostęp do terminala i uruchom jedną z następujących komend, aby wyświetlić skrót dla pliku, w zależności od typu mieszania, który chcesz wyświetlić:

    md5sum / path / do / file
    sha1sum / path / to / file
    sha256sum / path / to / file

    Niektóre hashe są podpisane kryptograficznie dla jeszcze większego bezpieczeństwa

    Podczas gdy skróty mogą pomóc ci potwierdzić, że plik nie został zmieniony, wciąż istnieje jedna droga 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 pośredni i zmodyfikować stronę internetową w trakcie przesyłania, jeśli korzystasz z witryny za pośrednictwem protokołu HTTP zamiast zaszyfrowane HTTPS.

    Właśnie 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