Was sind MD5-, SHA-1- und SHA-256-Hashes und wie überprüfe ich sie?
Auf Ihren Internetreisen werden manchmal MD5-, SHA-1- oder SHA-256-Hashes neben Downloads angezeigt, die jedoch nicht wirklich bekannt sind. Mit diesen scheinbar zufälligen Textzeichenfolgen können Sie überprüfen, ob Dateien, die Sie herunterladen, nicht beschädigt sind oder manipuliert wurden. Sie können dies mit den Befehlen tun, die in Windows, Mac OS und Linux integriert sind.
Funktionsweise von Hashes und Verwendung dieser Daten für die Datenüberprüfung
Hashes sind die Produkte kryptografischer Algorithmen, die eine Zeichenfolge erzeugen. Häufig haben diese Zeichenfolgen eine feste Länge, unabhängig von der Größe der Eingabedaten. Werfen Sie einen Blick auf die obige Tabelle und Sie werden sehen, dass sowohl „Fox“ als auch „Der rote Fuchs springt über den blauen Hund“ die gleiche Länge liefert.
Vergleichen Sie nun das zweite Beispiel in der Tabelle mit dem dritten, vierten und fünften. Sie werden sehen, dass sich die resultierenden Hashwerte trotz einer geringfügigen Änderung der Eingabedaten alle sehr voneinander unterscheiden. Selbst wenn jemand einen sehr kleinen Teil der Eingabedaten ändert, ändert sich der Hash dramatisch.
MD5, SHA-1 und SHA-256 sind alle verschiedene Hash-Funktionen. Softwareentwickler nehmen häufig eine Datei wie eine Linux-ISO-Datei oder sogar eine Windows-EXE-Datei herunter und führen sie über eine Hash-Funktion aus. Sie bieten dann eine offizielle Liste der Hashes auf ihren Websites an.
Auf diese Weise können Sie die Datei herunterladen und anschließend die Hash-Funktion ausführen, um zu bestätigen, dass Sie über die echte Originaldatei verfügen und während des Downloadvorgangs nicht beschädigt wurden. Wie wir oben gesehen haben, wird selbst eine kleine Änderung der Datei den Hash dramatisch verändern.
Dies kann auch nützlich sein, wenn Sie eine Datei aus einer inoffiziellen Quelle haben und bestätigen möchten, dass sie legitim ist. Angenommen, Sie haben eine Linux-.ISO-Datei, die Sie von irgendwoher bekommen haben und die Sie bestätigen möchten, dass sie nicht manipuliert wurde. Sie können den Hashwert dieser spezifischen ISO-Datei online auf der Website der Linux-Distribution nachschlagen. Sie können es dann über die Hash-Funktion auf Ihrem Computer ausführen und bestätigen, dass es mit dem Hashwert übereinstimmt, den Sie von ihm erwarten. Dies bestätigt, dass es sich bei der Datei um dieselbe Datei handelt, die auf der Website der Linux-Distribution zum Download angeboten wird, ohne dass Änderungen vorgenommen werden.
Beachten Sie, dass bei den Funktionen MD5 und SHA-1 „Kollisionen“ gefunden wurden. Hierbei handelt es sich um mehrere verschiedene Dateien - zum Beispiel eine sichere Datei und eine schädliche Datei -, die zu demselben MD5- oder SHA-1-Hash führen. Deshalb sollten Sie SHA-256 nach Möglichkeit vorziehen.
So vergleichen Sie Hash-Funktionen unter jedem Betriebssystem
In diesem Zusammenhang wollen wir uns ansehen, wie Sie den Hash einer heruntergeladenen Datei überprüfen und mit dem von Ihnen angegebenen vergleichen. Hier sind Methoden für Windows, Mac OS und Linux. Die Hashes sind immer identisch, wenn Sie dieselbe Hash-Funktion für dieselbe Datei verwenden. Es ist egal, welches Betriebssystem Sie verwenden.
Windows
Dieser Prozess ist dank PowerShell ohne Software von Drittanbietern unter Windows möglich.
Öffnen Sie zunächst ein PowerShell-Fenster, indem Sie in Ihrem Startmenü die Verknüpfung "Windows PowerShell" starten.
Führen Sie den folgenden Befehl aus, und ersetzen Sie "C: \ Pfad \ to \ file.iso" durch den Pfad zu jeder Datei, von der Sie den Hash anzeigen möchten:
Get-FileHash C: \ Pfad \ zu \ Datei.iso
Je nach Größe der Datei, dem verwendeten Algorithmus und der Geschwindigkeit des Laufwerks, auf dem sich die Datei befindet, kann es einige Zeit dauern, den Hash der Datei zu generieren.
Standardmäßig zeigt der Befehl den SHA-256-Hash für eine Datei an. Sie können jedoch den zu verwendenden Hash-Algorithmus angeben, wenn Sie einen MD5-, SHA-1- oder einen anderen Hashtyp benötigen.
Führen Sie einen der folgenden Befehle aus, um einen anderen Hash-Algorithmus anzugeben:
Get-FileHash C: \ Pfad \ zu \ Datei.iso -Algorithm MD5
Get-FileHash C: \ Pfad \ zu \ Datei.iso -Algorithmus SHA1
Get-FileHash C: \ Pfad \ zu \ Datei.iso -Algorithmus SHA256
Get-FileHash C: \ Pfad \ zu \ Datei.iso -Algorithmus SHA384
Get-FileHash C: \ Pfad \ zu \ Datei.iso -Algorithmus SHA512
Get-FileHash C: \ Pfad \ zu \ Datei.iso -Algorithm MACTripleDES
Get-FileHash C: \ Pfad \ zu \ Datei.iso -Algorithm RIPEMD160
Vergleichen Sie das Ergebnis der Hash-Funktion mit dem Ergebnis, das Sie erwartet haben. Wenn es sich um denselben Wert handelt, wurde die Datei nicht beschädigt, manipuliert oder auf andere Weise vom Original verändert.
Mac OS
macOS enthält Befehle zum Anzeigen verschiedener Hashtypen. Starten Sie dazu ein Terminalfenster. Sie finden es unter Finder> Anwendungen> Dienstprogramme> Terminal.
Das md5
Befehl zeigt den MD5-Hash einer Datei:
MD5 / Pfad / zu / Datei
Das Schasum
Befehl zeigt standardmäßig den SHA-1-Hash einer Datei. Das heißt, die folgenden Befehle sind identisch:
shasum / Pfad / zu / Datei
shasum -a 1 / pfad / zu / datei
Führen Sie den folgenden Befehl aus, um den SHA-256-Hash einer Datei anzuzeigen:
shasum -a 256 / path / to / file
Linux
Greifen Sie unter Linux auf ein Terminal zu und führen Sie einen der folgenden Befehle aus, um den Hash für eine Datei anzuzeigen, je nachdem, welchen Hashtyp Sie anzeigen möchten:
md5sum / path / to / file
sha1sum / path / to / file
sha256sum / path / to / file
Einige Hashes sind für noch mehr Sicherheit kryptografisch signiert
Während Hashes Ihnen helfen zu bestätigen, dass eine Datei nicht manipuliert wurde, gibt es hier immer noch eine Angriffsmöglichkeit. Ein Angreifer könnte die Kontrolle über die Website einer Linux-Distribution erlangen und die darauf angezeigten Hashes ändern, oder ein Angreifer könnte einen Man-in-the-Middle-Angriff durchführen und die während des Transports befindliche Webseite ändern, wenn Sie über HTTP auf die Website zugreifen verschlüsseltes HTTPS.
Aus diesem Grund bieten moderne Linux-Distributionen häufig mehr als auf Webseiten angeführte Hashes. Sie signieren diese Hashes kryptografisch, um sie vor Angreifern zu schützen, die versuchen, die Hashes zu ändern. Sie sollten die kryptografische Signatur überprüfen, um sicherzustellen, dass die Hash-Datei tatsächlich von der Linux-Distribution signiert wurde, wenn Sie absolut sicher sein möchten, dass Hash und Datei nicht manipuliert wurden.
Die Überprüfung der kryptografischen Signatur ist ein aufwändiger Prozess. Lesen Sie unser Handbuch zur Überprüfung, ob Linux-ISOs nicht manipuliert wurden, um vollständige Anweisungen zu erhalten.
Bildnachweis: Jorge Stolfi / Wikimedia