SHA256 Hash mit Windows 10 überprüfen

()

Prüfsummen Auskunft zur Integrität

SHA256-Hashwerte geben Auskunft zur Integrität einer Datei, sie können so etwa vor manipulierten Programmen schützen. Unixoide Betriebssysteme haben die Prüfsummen Werkzeuge wie sha256sum bereits On-Board. Windows 10 beinhaltet in der PowerShell ein cmdlet mit diesem die Prüfsummen schnell überprüft werden können.

Was sind Prüfsummen

Damit die Unversehrtheit einer Datei sichergestellt werden kann, werden Prüfsummen (MD5, SHA256, SHA512, …) angelegt. Dabei wird eine Quersumme über alle Bytes einer Datei gebildet (die Byte-Werte werden nach bestimmten Regeln mit unterschiedlichen Zahlen multipliziert.) Der so errechnete Wert identifiziert den Dateiinhalt eindeutig. Wenn man zu einem späteren Zeitpunkt (oder auf einem anderen Computer) die Prüfsumme erneut erzeugt und mit dem ersten vergleicht, lässt sich erkennen, ob die Datei verändert wurde. Dieses Prinzip wird oft auch genutzt, um zu überprüfen, ob eine Dateiübertragung fehlerfrei stattgefunden hat.

SHA256-Hash Prüfsumme überprüfen

Das überprüfen der Hash-Signatur bietet sich insbesondere bei Downloads an. Ein ISO-Image oder eine Archive-Datei kann nach dem Download auf ihre Integrität und Authentizität geprüft werden. Die Hersteller und Entwickler veröffentlichen hierzu Signaturen, mit diesen ein Image auf die Integrität und Authentizität mittels des SHA256-Hash oder MD5-Hash Wertes verglichen werden kann. Damit die unveränderte Herkunft und Originalität sichergestellt werden kann, ohne wie etwa bei einem Man-in-the-Middle-Angriff dies der Fall sein könnte.

PowerShell Get-FileHash Anwenden

In diesem Beispiel wird das Linux Mint 20 ISO-Image geprüft, dieses zuvor heruntergeladen wurde. Um die Integrität eines ISO-Images zu überprüfen, wird die SHA256-Summe generiert und vergleichen, mit dem SHA256-Hash in der Datei sha256sum.txt, diese ebenfalls heruntergeladen wird.

Die Dateien linuxmint-20-cinnamon-64bit.iso und sha256sum.txt werden in ein Ordner kopiert, dann öffnet man PowerShell und wechselt in den Ordner, wo nun das cmdlet Get-FileHash ausgeführt wird.

PS C:\> Get-FileHash linuxmint-20-cinnamon-64bit.iso -Algorithm SHA256

Algorithm       Hash                                                                   Path
---------       ----                                                                   ----
SHA256          2F6AE466EC9B7C6255E997B82F162AE88BFE640A8DF16D3E2F495B6281120AF9       C:\linuxmint-20-cinnamon-64bit

Der SHA256 Hash des ISO-Image wird generiert und ausgegeben.

Dann öffnet man die zuvor heruntergeladene Datei sha256sum.txt diese den Hash beinhaltet. Prüfsummen Hash werden oft auch als Quersumme, Checksumme oder als Datei-Fingerabdruck bezeichnet.

PS C:\> Get-Content sha256sum.txt
2f6ae466ec9b7c6255e997b82f162ae88bfe640a8df16d3e2f495b6281120af9 *linuxmint-20-cinnamon-64bit.iso

Wie man sieht enthält sha256sum.txt den Hash String in Lowercase, der Hash wird von Get-FileHash jedoch in Uppercase errechnet, damit wir den Hash anschliessend für den Vergleich verwenden können, konvertieren wir diesen aus sha256sum.txt in ein Uppercase String mit ToUpper().

PS C:\> $text="2f6ae466ec9b7c6255e997b82f162ae88bfe640a8df16d3e2f495b6281120af9".ToUpper()

PS C:\> Write-Host $text
2F6AE466EC9B7C6255E997B82F162AE88BFE640A8DF16D3E2F495B6281120AF9

Der Hash String von Get-Content sha256sum.txt wird bei $text zwischen den Anführungszeichen eingefügt.

Get-FileHash Parameter -Algorithm

-Algorithm gibt die kryptografische Hash-Funktion an, die zum Berechnen des Hashwerts aus dem Inhalt der angegebenen Datei oder des angegebenen Streams verwendet werden soll. Die akzeptablen Werte für diesen Parameter sind:

  • SHA1
  • SHA256
  • SHA384
  • SHA512
  • MD5

Wenn kein Wert angegeben oder der Parameter weggelassen wird, lautet der Standardwert SHA256.

Aus Sicherheitsgründen sollten MD5 und SHA1, die nicht mehr als sicher gelten, nur zur einfachen Änderungsüberprüfung verwendet werden, und nicht zum Generieren von Hashwerten für Dateien, die vor Angriffen oder Manipulationen geschützt werden müssen.

Die Prozedur kann in einem PowerShell Script dann für dieses Beispiel wie folgt aussehen.

$text="2f6ae466ec9b7c6255e997b82f162ae88bfe640a8df16d3e2f495b6281120af9".ToUpper()
$hash=(Get-FileHash linuxmint-20-cinnamon-64bit.iso -Algorithm SHA256 | Select-Object -Property Hash | ft -HideTableHeaders)
Write-Host $text
Write-Host $hash

Der Vergleich beider Hashwerte mit folgender Zeile in der PowerShell.

PS C:\> [string]$text -eq [string]$hash

Hash Berechnen und Vergleichen

Das folgende Script berechnet den Hashwert und vergleicht diesen, mit Compare-Object und dem Fingerprint aus der Signatur.

Get-FileHash -Path linuxmint-20-cinnamon-64bit.iso -Algorithm SHA256 | Compare-Object -ReferenceObject "2F6AE466EC9B7C6255E997B82F162AE88BFE640A8DF16D3E2F495B6281120AF9" -DifferenceObject {$_.Hash}

Bei Übereinstimmung der Prüfsummen erscheint keine Ausgabe.

Windows_PowerShell_Get-FileHash

Stimmen die Hashwerte nicht überein, werden beide Objekte ausgegeben.

Windows_PowerShell_Get-FileHash_Compare-Object

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung / 5. Anzahl Bewertungen:

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Es tut uns leid, dass der Beitrag für dich nicht hilfreich war!

Lasse uns diesen Beitrag verbessern!

Wie können wir diesen Beitrag verbessern?

2 Gedanken zu „SHA256 Hash mit Windows 10 überprüfen“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert