Gewährleisten der Integrität durch Hashalgorithmen

Hashalgorithmen basieren auf mathematischen One-Way Funktionen, die leicht zu berechnen, aber nur äußerst schwer rückzurechnen sind.

Daten beliebiger Länge werden als Input in die Hashfunktion gegeben und anschließend mit der mathematischen Funktion in einen hexadezimalen Hashcode fester Länge – meist deutlich kürzer als die Eingabedaten – umgewandelt.

Der Hashcode wird oft auch als Hashwert, Hashsumme, Fingerprint oder bei Nachrichten auch Message Digest bezeichnet.

Sicherstellen der Integrität von Daten
Die Integrität selbst wird bei einem Übertragungsvorgang sichergestellt, indem ein Hashwert des Nachrichteninhalts vor der Übertragung sowie nach der Übertragung unabhängig voneinander berechnet und dann abgeglichen werden. Stimmen die Hashwerte überein, so wurden die Daten während des Übertragungsvorgangs nicht abgeändert, stimmen sie nicht überein, so kann es zu einer Manipulation oder fehlerhaften Übertragung gekommen sein.

Eigenschaften von Hashfunktionen

  • Hashfunktionen müssen deterministisch sein, das heißt: Gleicher Input muss immer zu gleichem Output führen und verschiedener Input zu unterschiedlichem Output.
  • Weiterhin sollte grundsätzlich eine geringe Änderung des Inputs – z.B. 1-Bit – zu einer großen Änderung des Outputs führen.

Kryptografische Mängel
Man spricht von kryptografischen Mängeln einer Hashfunktion, wenn eines der folgenden Probleme auftreten kann:

  • Verschiedener Input führt zu identischem Hashcode (Kollision)
  • Nachrichten können aus einem gegebenen Hashcode ermittelt werden  (Preimage)

Die Sicherheit von Hashfunktionen kann zusätzlich erhöht werden, indem – bevor das Hashing stattfindet – ein Salt (zufällige Zeichenkette) an den zu sichernden Klartext angehängt wird, der dann mitgehashed wird. Dies verlängert künstlich die Zeichenkette des Hashwerts und erschwert Angriffe mit Rainbow Tabellen.

Die bekanntesten Hashalgorithmen sind:

  • MD5 – Message Digest 5
  • SHA-1/SHA-2 – Secure Hash Algorithm 
  • RIPEMD-160

NIST und BSI empfehlen momentan die Verwendung von SHA-2 mit 256-Bit.

Literatur:

Vgl. Watkins, Michael; Wallace, Kevin: „CCNA Security“, S. 455.
CCNA Security
Vgl. Schwenk, Jörg: „Sicherheit und Kryptographie im Internet“,S.11.
Sicherheit und Kryptographie im Internet
Vgl. Bachfeld, Daniel: „Cracker Bremse – Passwörter unknackbar speichern“ auf Heise Security.(abgerufen am 23. Oktober 2011).
http://www.heise.de/security/artikel/Passwoerter-unknackbar-speichern-1253931.html
Vgl. BlueKrypt: „NIST Cryptographic Key Length Recommendation“. (abgerufen am 3. Oktober 2011).
http://www.keylength.com/en/4/

Dieser Beitrag wurde unter PKI: Kryptografische Grundlagen veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

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