HASH-Algorithmen

Informationen rund um das Thema Hashalgorithmen.

  1. Einführung
  2. Hash-Algorithmen
  3. Fazit

Einführung

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:

  • Datenübertragung
    Wurde beispielsweise während einer Datenübertragung (Download im Internet) der Datensatz (Datei) beschädigt? Der Hashwert im Original kann nach dem Download mit der lokal gespeicherten Datei verglichen werden. Sind die beiden Werte identisch, wurde die Datei einwandfrei übertragen. Speziell zu diesem Zweck bietet die Firma abylonsoft eine kostenlose APP "abylon FREEHASH" an, mit dem Dateien geprüft und verifiziert werden können.
  • Onlineprüfungen, Suchen und Überwachungen
    Optimierte Onlinesuche und Onlineprüfung von Dateien (Inhalten). Ein gutes Beispiel dafür ist der Onlinedienst "virustotal.de", der über eine zu prüfende Datei einen Hashwert bildet und diesen mit der geprüften Datei verknüpft. Alle weiteren Anfragen müssen nicht mehr Aufwendig geprüft werden, sondern können direkt über ihren Hashwert in der Datenbank nachgeschlagen werden. Der Hashwert ist dabei eindeutig und eine Verwechselungsgefahr mit anderen Dateien ausgeschlossen.
    Auch illegale Angebote können so im Internet schnell gefunden werden. Bietet jemand urheberrechtlich Geschützte Werke ohne Genehmigung an (z. B. Filme oder Musik), finden das spezielle Suchsysteme im Abgleich mit einer Datenbank. Der Automatismus ist dabei so gut, dass schon beim speichern von Dateien in einer Cloud, diese mit ihren Hashwert in einer Datenbank auf Inhalt geprüft werden. Wer also illegale Sachen (Fotos, usw.) in seiner Cloud Speicher, erhält automatisch Besuch von der Polizei.
  • Signatur - digitale Unterschrift
    Im Rahmen einer digitalen Signatur wird über das zu signierende Dokument oder Datei ein eindeutiger Hashwert gebildet und mit der Signatur verknüpft. Ändert nun jemand auch nur ein Byte an diesem Dokument oder Datei (APP), wird die Signatur ungültig. Dieses Verfahren kommt beim Windows Betriebssystem zum Einsatz, wo nach dem Download von Dateien und APPs und dessen Ausführung die Signatur des Herausgebers geprüft wird. Wurde die Datei oder APP nachträglich verändert, ist die Signatur unwirksam. Leider wird diese Information vom Windows Betriebssystem nicht in dieser klaren Form angezeigt.

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.

Hash-Algorithmen

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:

  • MD2 und MD4 (MD - Message Digest von RSA.com)
    Veraltet und unsicher - bitte nicht mehr verwenden.
  • MD5 (MD - Message Digest von RSA.com)
    Veraltet und unsicher - bitte nur noch für unkritische Bereiche verwenden. Beim MD5-Verfahren wird ein 128 Bit langer Hashwert über eine beliebige Datenmenge gebildet.
  • SHA1 (Secure Hash Algorithm)
    Veraltet und unsicher - bitte nur noch für unkritische Bereiche verwenden. Beim SHA1-Verfahren wird ein 160 Bit langer Hashwert über eine beliebige Datenmenge gebildet.
  • SHA256 (Secure Hash Algorithm)
    Zur Zeit Standard und gilt als sicher (2017) - bitte für kritische Einsatzgebiete (Passwortschutz) verwenden. Beim SHA256-Verfahren wird ein 256 Bit langer Hashwert über eine beliebige Datenmenge gebildet.
  • SHA512 (Secure Hash Algorithm)
    Zur Zeit Standard und gilt als sicher (2017) - bitte für kritische Einsatzgebiete (Passwortschutz) verwenden. Beim SHA512-Verfahren wird ein 512 Bit langer Hashwert über eine beliebige Datenmenge gebildet.

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.

Fazit

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.