Informationen rund um das Thema Hashalgorithmen.
Hashen heißt, eine Art "Quersumme" über beliebige Daten zu bilden. Das Ergebnis ist je nach Hashverfahren ein Ergebnis fester Länge (z. B. 160 Bit). Egal, ob die Daten nun 1KByte, 1MByte oder 100GByte groß sind. Dieses Hashergebnis ist vergleichbar mit einem Fingerabdruck der Daten. Wenn auch nur ein Zeichen in dem Datensatz (z. B. Worddokument) geändert wird, weicht der neue Hashwert deutlich vom ersten ab. Mit Hilfe der diversen Hashalgorithmen kann ein Datensatz (Datei) auf Veränderung geprüft werden. Einsatzgebiete sind:
Ein Hashwert ist in der Regel auf einen spezifischen Dateninhalt definiert (Kollisionssicherheit). Dies bedeutet in der Theorie, dass für einen Datensatz A der Hashwert Hash(A) diesen eindeutig identifiziert und nicht auf einen anderen Datensatz Hash(B) zutrifft. Bei den älteren Hashverfahren war dies nicht ganz so sicher (MD2, MD4 und MD5). Mit einigem mathematischen Aufwand konnte ein Hashwert sehr wohl auf zwei unterschiedliche Datensätze abgebildet werden. Inzwischen gibt es deutlich sichere Hashalgorithmen (SHA1, SHA256, SHA512), wo die Wahrscheinlichkeit eines solchen Fehlers gegen NULL geht.
Es gibt unterschiedliche mathematische Verfahren zum bilden eines Hashwertes. Wie bereits in der Einführung gesagt, sind diese auch vom Sicherheitsanspruch sehr unterschiedlich. Ältere Verfahren wie MD2, MD4, MD5 und SHA1 sollten für sicherheitskritische Anwendungen (digitale Signatur und Verschlüsselung) nicht mehr verwendet werden. Hier ein überblick, über die gängigsten Hashalgorithmen:
Neben den hier genannten Hashalgorithemn gibt es noch zahlreich weitere Verfahren, die aber so nicht eingesetzt werden oder weit verbreitet und deshalb eher uninteressant sind. Standard sind heute (2017) die Verfahren SHA256 und SHA512. Zu bemerken ist noch, dass unabhängig der Eingabedatenmenge (KB, MB, GB, TB, etc.) immer je nach verwendeten Hashalgorithmus ein Wert fester Länge geliefert wird. Die feste Länge beim SHA256 ist so zum Beispiel immer 256 Bits. Hashwerte bilden auch immer die Basis für Verschlüsselung und den Schutz von Passörtern.
Seit einiger Zeit bietet abylonsoft auch ein Onlinetool zum Erstellen der Quersumme von Dateien und Texten an. Ohne die Installation einer App ermittelt das Tool die Hashwert nach den folgenden Algorithmen:
Der ermittelte Hashwert kann einfach in die Zwischenablage kopiert werden, um beispielsweise die Unversehrheit einer Datei zu prüfen.
Bei der Entwicklung der Hashalgorithmen ist die Problematik der stetig steigenden Rechnerleistung und der mathematischen Berechnung im Bezug auf die Sicherheit zu beobachten. War gestern noch das MD5-Verfahren sicher, ist dies heute mit Homecomputern zu knacken. Das ganze unterliegt einem ständigen technischen Wandel und läuft damit Gefahr, dass ein System von jetzt auf gleich unsicher wird.
Das Hashwertsystem ist beispielsweise die Grundlage von
X.509 - Zertifikaten und damit auch Basis der "digitalen Signatur" (elektronische Unterschrift).
Kann oder wird ein Hashalgorithmus unsicher, wird auch das Zertifikat unsicher
und damit eine "digitale Signatur" fälschbar. Wie sicher sind dann noch
unsere Nutzerzertifikate auf den neuen Personalausweisen mit Chip (RFID
- unsichtbar) und einer Gültigkeit von 10 Jahren? Vor 10 Jahren war SHA1
noch sicher und die Zertifikate wurden mit diesem Algorithmus signiert.
Nach 10 Jahren kann die Sicherheit so geschwächt sein, dass jeder Opfer
von Missbrauch werden kann.
Wie sicher ist eine mit MD5 oder SHA1 offizielle signierte APP heute noch?
Dem Anwender wird es stets als gültig signiert angezeigt, aber sicher ist
dies leider nicht mehr.
Wir sollten aufhören, die Sicherheit von Daten auf schnell alternde Systeme aufzubauen und damit uns alle durch Hackerangriffe zu gefährden.