Was ist Hashing?

Hashing erschwert es Angreifern, gespeicherte Passwörter zu entschlüsseln – wenn es richtig eingesetzt wird. [...]

Hashfunktionen verwandeln Passwörter unwiderbringlich in eine zufällig generierte Zeichenfolge (c) pixabay.com

Hashfunktionen spielen eine wichtige Rolle in der IT-Sicherheit – speziell, wenn es um die Speicherung von Passwörtern geht. Das sollten Sie zum Thema wissen.

Hashing – Definition

Hashing bezeichnet einen kryptografischen Prozess, der dazu genutzt werden kann, die Authentizität und Integrität diverser Datentypen zu validieren. Hashfunktionen kommen vor allem in Authentifizierungssystemen zur Anwendung – hier bieten sie den Vorteil, dass keine Passwörter im Plaintext-Format gespeichert werden müssen. Werden Hashfunktionen falsch eingesetzt, können schwerwiegende Datenlecks die Folge sein. Schlimmer ist nur, wenn Hashing überhaupt nicht zum Einsatz kommt.

Hashfunktion vs. Verschlüsselung

Im Gegensatz zur Verschlüsselung, die rückgängig gemacht werden kann, ist Hashing eine Einbahnstraße. Der Output einer Hashfunktion ist ein Gebilde aus verschiedenen Zeichen mit fixer Länge – der Hashwert.

Hashwerte müssen nicht unbedingt geheim gehalten werden, da eine Rückverwandlung in den Ursprungszustand nicht möglich ist. Ein wichtiger Punkt dabei: Jeder Datensatz, auf den eine Hashfunktion angewendet wird, erzeugt einen einzigartigen Hashwert. Verfügen zwei verschiedene Inputs über denselben Hashwert, liegt eine „Collision“ vor. Je nachdem, wie kompliziert es ist, diese per Rechenoperation aufzuspüren, kann eine Hashfunktion aus Security-Perspektive als wirkungslos eingestuft werden.

Sollen Passwörter in Datenbanken gespeichert werden, ist Hashing so gut wie immer der Verschlüsselung vorzuziehen: Im Fall einer Kompromittierung fallen den Angreifern keine Kennwörter im Klartextformat in die Hände. „Verschlüsselung sollte nur eingesetzt werden, wenn eine Möglichkeit zur Wiedererlangung des Originalpassworts bestehen muss“, empfiehlt das Open Web Application Security Project (OWASP) auf seiner Webseite.

Sie sehen gerade einen Platzhalterinhalt von YouTube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Mehr Informationen

Hashing – Einsatzzwecke

Hashing kommt in großem Stil in Authentifizierungssystemen zum Einsatz: Legt ein Benutzer ein neues Konto an, wird das Passwort von der Applikation mit einer Hashfunktion versehen und das Ergebnis – der Hashwert – in einer Datenbank gespeichert. Bei jeder folgenden Authentifizierung wird dieser Prozess wiederholt und der Hashwert mit dem in der Datenbank vorliegenden abgeglichen. Stimmen Sie überein, hat der Benutzer das richtige Passwort eingegeben.

Gerät ein Passwort in Vergessenheit, gehört eine Identitätsüberprüfung zum Passwortwiederherstellungsprozess. Dazu wird für gewöhnlich eine E-Mail mit einem einzigartigen Link an die Adresse verschickt, mit der der Account erstellt wurde. Beim Klick auf diesen Link wird ein neues Passwort erzeugt oder gewählt – und damit ein neuer Hashwert in der Datenbank. Führt der Recovery-Prozess hingegen dazu, dass das alte Passwort im Klartextformat an die E-Mail-Adresse geschickt oder im Browser angezeigt wird, liegt ein Implementierungsfehler vor – Security Best Practices wurden in einem solchen Fall ignoriert.

Die Verwendung von Hashing allein reicht also nicht – die Hashfunktion muss auch richtig implementiert werden, ansonsten besteht die Gefahr, dass Angreifer mit Brute-Force-Angriffen Erfolg haben. Fehler können hier zum Beispiel auftreten, wenn veraltete Hashing-Algorithmen wie MD5 oder SHA-1 verwendet werden.

Hashfunktionen – Algorithmen

Die Internet Engineering Taskforce (IETF) empfiehlt in einem aktuellen Entwurf für die Speicherung von Passwörtern den Einsatz folgender Hashing-Algorithmen:

  • Argon2
  • Bcrypt
  • Scrypt
  • PBKDF2

Neben dem Algorithmus kommt es jedoch auch auf andere Faktoren an. Zum Beispiel die Passwortlänge: Ein Minimum von acht Zeichen ist beispielsweise wichtig, weil so Dictionary-Angriffe wesentlich schwieriger werden.

Jede Hashfunktion kann darüber hinaus so implementiert werden, dass der Hashing-Algorithmus mehrfach auf das Passwort angewendet wird („Work Factor“). Das sorgt für höhere Sicherheit, benötigt aber auch mehr Rechenpower. Für die Wahl des richtigen „Work Factor“ gibt es laut OWASP keine goldene Regel: „Die Wahl des idealen ‚Work Factor‘ hängt von der Performance des Servers und der Zahl der Nutzer auf der Applikation ab. Um ihn zu ermitteln, sind Tests mit verschiedenen Servern nötig. Als Faustregel lässt sich festhalten, dass die Berechnung eines Hashwertes nicht länger als eine Sekunde in Anspruch nehmen sollte – in Umgebungen mit hohem Traffic noch wesentlich weniger.“

Sie sehen gerade einen Platzhalterinhalt von YouTube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Mehr Informationen

Hashing – Methoden

Zu den Best Practices in Sachen sichere Passwortspeicherung gehört auch das sogenannte „Salting„. Hierbei wird eine zufällig generierte Zeichenfolge – der „Salt“ – mit jedem Passwort kombiniert und gemeinsam mit dem Hashwert abgespeichert. Das verhindert beispielsweise Rainbow-Table-Attacken, sorgt aber auch dafür, dass Angreifer Passwortduplikate in Datenbanken nicht entdecken können: Auch wenn zwei verschiedene User dasselbe Passwort gewählt haben, sorgt Salting dafür, dass diese Hashwerte sich unterscheiden. Wirkungsvolle Salts sollten mindestens 16 Zeichen aufweisen, um Brute-Force-Methoden rein mathematisch den Garaus zu bereiten.

Ein zusätzlicher Security Layer kann durch den Einsatz von „Pepper“ erzeugt werden. Hierbei werden alle Passwörter mit einer zufällig erzeugten Zeichenfolge (32 Zeichen) kombiniert. Im Gegensatz zum Salt, der für jedes Passwort individuell erzeugt wird, ist der „Pepper“ für alle Passwörter gleich – und sollte deshalb auch nicht in der Datenbank abgespeichert werden. Stattdessen kann er in einem Application Configuration File oder einem Hardware-Sicherheitsmodul abgelegt werden.

Das Ziel: Auch wenn ein Angreifer in Besitz der kompletten Datenbank inklusive der Salts kommt, wird es ohne Pepper schwierig, die Hash-Werte zu knacken.

Hashfunktionen – Upgrades

Applikationen, die einen unsicheren oder schwachen Hashing-Algorithmus verwenden, sollten umgehend auf den aktuellen Stand gebracht werden. Die alten Hashwerte können dabei als Input für den neuen Algorithmus genutzt werden – sozusagen in Form eines Re-Hashing-Prozesses. Dabei sollten Sie sich aber darüber bewusst sein, dass die resultierenden Hashwerte nicht so sicher sind, wie solche, die aus dem ursprünglichen User Input erzeugt wurden. Deshalb wird gemeinhin empfohlen, Hashes erst dann mit einem modernen Algorithmus zu regenerieren, wenn sich die User das nächste Mal einloggen.

Die goldene Regel für alle Entwickler, wenn es um Kryptografie im Allgemeinen geht: Verzichten Sie auf selbstentwickelte Algorithmen. Die standardisierten und verbreiteten sind das Ergebnis jahrelanger Forschungsarbeit und werden auch von anderen Forschern und Experten auf Herz und Nieren getestet. 

*Lucian Constantin arbeitet als Korrespondet für den IDG News Service.


Mehr Artikel

Gregor Schmid, Projektcenterleiter bei Kumavision, über die Digitalisierung im Mittelstand und die Chancen durch Künstliche Intelligenz. (c) timeline/Rudi Handl
Interview

„Die Zukunft ist modular, flexibel und KI-gestützt“

Im Gespräch mit der ITWELT.at verdeutlicht Gregor Schmid, Projektcenterleiter bei Kumavision, wie sehr sich die Anforderungen an ERP-Systeme und die digitale Transformation in den letzten Jahren verändert haben und verweist dabei auf den Trend zu modularen Lösungen, die Bedeutung der Cloud und die Rolle von Künstlicher Intelligenz (KI) in der Unternehmenspraxis. […]

News

Richtlinien für sichere KI-Entwicklung

Die „Guidelines for Secure Development and Deployment of AI Systems“ von Kaspersky behandeln zentrale Aspekte der Entwicklung, Bereitstellung und des Betriebs von KI-Systemen, einschließlich Design, bewährter Sicherheitspraktiken und Integration, ohne sich auf die Entwicklung grundlegender Modelle zu fokussieren. […]

News

Datensilos blockieren Abwehrkräfte von generativer KI

Damit KI eine Rolle in der Cyberabwehr spielen kann, ist sie auf leicht zugängliche Echtzeitdaten angewiesen. Das heißt, die zunehmende Leistungsfähigkeit von GenAI kann nur dann wirksam werden, wenn die KI Zugriff auf einwandfreie, validierte, standardisierte und vor allem hochverfügbare Daten in allen Anwendungen und Systemen sowie für alle Nutzer hat. Dies setzt allerdings voraus, dass Unternehmen in der Lage sind, ihre Datensilos aufzulösen. […]

Be the first to comment

Leave a Reply

Your email address will not be published.


*