16. September 2019 / SP / Lesedauer: 2 Min.

Hash- und Signaturprüfung

Häufig werden neben einer zum Download angebotenen Datei weitere Infos mit Teils verschiedenen, kryptisch anmutenden Werten angezeigt. Dabei werden Bezeichnungen wie MD5 und SHA-1 oder SHA-2 vorangestellt. Doch was bedeutet das?

 

Abbildung 1 Hash- und Signaturprüfungsprozess beim Download [8]

 

Hashprüfung

Bei den zusätzlichen Angaben handelt es sich um einen sogenannten „Hash“ der Datei, dieser ist für eine nachträgliche Prüfung gedacht. Ein solcher Hash wird für die Integritätsprüfung der Datei genutzt. Für diesen Zweck ist es wichtig, dass die verwendete Funktion „kryptografisch sicher“ ist, sich also nicht einfach umkehren lässt.

Bei einer bekannten Eingabe kann man den zugehörigen Hash relativ einfach berechnen. Soll jedoch bei einem vorhandenen Hash die zugehörige Eingabe errechnet werden (Umkehrung der Hashfunktion), darf dies nicht einfach möglich sein. Damit soll verhindert werden, dass willentlich sogenannte „Kollisionen“ erzeugt werden können, also in diesem Fall eine zweite Datei erzeugt / errechnet werden kann, die zum gleichen Hash führt und somit für den Endanwender wie die originale Eingabe / Datei aussieht. Kollisionen sind prinzipiell unvermeidbar, da beliebig lange Eingabewerte zu Hashwerten fixer Länge transformiert werden. Die Wahrscheinlichkeit einer solchen Kollision ist jedoch sehr gering, da bei der Konstruktion solcher Hashalgorithmen typischerweise auf deren Kollisionsresistenz geachtet wird. Des Weiteren sind Vorkehrungen wie der „Lawineneffekt“ etabliert worden, welche bei geringfügiger Änderung der Eingabe einen sehr stark veränderten Hashwert erzeugen. Dies soll verhindern, dass sich ein Angreifer der Eingabe durch Approximation annähert.

Einige bekannte Vertreter solcher Hashfunktionen sind wie oben genannt die Verfahren MD5 und SHA (Secure Hash Algorithm) in verschiedenen Versionen. Hierbei gilt es zu beachten, nur die zum jeweiligen Zeitpunkt als sicher eingestuften Verfahren zu verwenden. Im Fall von SHA-1 beispielsweise wurde ein praktischer Beweis für die willentliche Erzeugung von Kollisionen geliefert [1], was die Vertrauenswürdigkeit dieses Verfahrens natürlich unterminiert. Nach Möglichkeit sollten also andere Verfahren verwendet werden. Unter Windows kann beispielsweise das „certutil“ verwendet werden, um den Hash zu einer Datei zu erzeugen. [2]

Abbildung 2 Hashberechnung mithilfe des certutil [2]

 

Signaturprüfung

Im zweiten Schritt wird mittels des vom Vertreiber der Datei bereitgestellten GPG (GNU Privacy Guard) Schlüssels die Authentizität der Datei sichergestellt. Dabei kann über das sogenannte “Web of Trust“ evaluiert werden, ob der Schlüssel wirklich vom Hersteller stammt. Hier wird die Echtheit von digitalen Schlüsseln durch ein Netz von gegenseitigen Bestätigungen (Signaturen) gesichert, kombiniert mit dem individuell zugewiesenen Vertrauen in die Bestätigungen der anderen. Allerdings gab es am Web of Trust selbst zuletzt Kritik. [3]

In unserem Praxisbeispiel war die Signaturprüfung erfolgreich, die Vertrauenswürdigkeit des Schlüssels konnte jedoch nicht implizit festgestellt werden und muss vom Benutzer separat überprüft werden.

Abbildung 3 Signaturprüfung [9]

 

Benutzerfreundlichkeit

Um die hier vorgestellten Schritte einfach durchführen zu können, gibt es einige Hilfsprogramme, die die notwendigen Prüfungen vereinfachen und für den Benutzer leichter handhabbar machen. Dazu können z.B. die Kontextmenüs von 7zip [4] und der Gpg4Win-Suite [5] verwendet werden. Diese fügen dem Kontextmenü des Explorers (unter Windows-Betriebssystemen) weitere Einträge hinzu, unter anderem die Möglichkeit zur Berechnung des Hash-Werts.

Ein weiteres Tool ist „rget“, das sich ähnlich wie das bereits sehr lange verfügbare „wget“ verhält, jedoch eine Prüfung implizit durchführt. Zum Zeitpunkt der Veröffentlichung befindet sich dieses Werkzeug jedoch noch in Entwicklung. [6]

 

Empfehlung

Generell sollte jeder Download mit den beschriebenen Schritten überprüft werden, um eine versehentliche Infektion mit Schadsoftware zu vermeiden. Des Weiteren sollte ein Download generell nur von einer vertrauenswürdigen Quelle erfolgen und über eine verschlüsselte Verbindung durchgeführt werden. Die eigentliche Datei sowie Hashwerte und Schlüssel sollten aus separaten Quellen stammen, um zu vermeiden, dass ggf. neue, „falsche“ Hashwerte zusammen mit einer manipulierten Datei in der gleichen Quelle bereitgestellt wurden. Aktuell empfehlenswerte Verfahren verzeichnet die Seite des BSI. [7]

 

Verweise

[1] https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html

[2] https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certutil

[3] https://www.heise.de/security/meldung/Angriff-auf-PGP-Keyserver-demonstriert-hoffnugslose-Situation-4458354.html

[4] https://www.7-zip.org/download.html

[5] https://www.gpg4win.org/download.html

[6] https://github.com/merklecounty/rget

[7] https://www.bsi.bund.de/DE/Publikationen/TechnischeRichtlinien/tr02102/tr02102_node.html

[8] https://manjaro.org/download/xfce/

[9] https://www.kali.org/downloads/

kontakt-ondeso-it

Kontakt aufnehmen

Möchten Sie mehr erfahren? Zögern Sie nicht uns zu kontaktieren, wir helfen Ihnen gerne weiter.

produkte-ondeso-industrial-it

Produkte

Hier finden Sie eine Übersicht unserer Produkte und Lösungen.

flur-ueber-ondeso

Über ondeso

Hier erfahren Sie mehr über unser Unternehmen und unsere Expertise als Pionier und Marktführer.