Verschlüsselung vs. Hashing vs. Salting – Wo liegen die Unterschiede?

01.03.2022
-Minuten Lesezeit

Einführung

Verschlüsselung und Hashing sind Basiskonzepte für alle Arten von „Geheimnissen“ in der Datenverarbeitung, aber nicht jedem ist klar, wie allgegenwärtig sie sind. In diesem Blog werden wir uns vorrangig mit Verschlüsselung, Hashing und Salting für Passwörter befassen. Obwohl Passwörter die unsicherste Methode der Authentifizierung bei einer Anmeldung darstellen, werden sie noch immer häufig verwendet. Cyberkriminelle können kompromittierte Login-Daten für Datenschutzverletzungen, Kontoübernahmebetrug, Ransomware und andere kriminelle Aktivitäten missbrauchen.

 

 

Sowohl Hashing als auch Verschlüsselung sind Methoden zum Schutz von Daten, haben aber unterschiedliche Funktionen. Die Passwortverschlüsselung wird verwendet, wenn der Klartext aus irgendeinem Grund wiederhergestellt werden muss. Das Passwort-Hashing wird typischerweise auf der Serverseite verwendet, wenn der Serverbetreiber den Klartext nicht zu kennen braucht, sondern nur nachweisen muss, dass der Benutzer den Klartext kennt. Diese Funktionen laufen, ebenso wie das Salting, im Hintergrund, ohne das Kundenerlebnis zu beeinträchtigen.

 

Wenn Unternehmen gezwungen sind, Passwörter zu verwenden, sollten sie immer mit bewährten kryptografischen Tools für die Sicherheit von Passwörtern arbeiten, anstatt zu versuchen, sie selbst neu zu entwickeln. Hier finden Sie weitere Informationen über Verschlüsselung, Hashing und Salting und wie diese Verfahren verwendet werden.

Was ist Verschlüsselung?

Die Verschlüsselung ist eine Methode zur Sicherung eines Passworts (Klartext), bei der es mithilfe einer mathematischen Formel in eine verschlüsselte Version (Geheimtext) umgewandelt wird. Die Verschlüsselung ist eine wechselseitige Funktion, d.h. das ursprüngliche Klartext-Passwort, das in Chiffretext verschlüsselt wurde, kann durch Entschlüsselung wieder in Klartext zurückverwandelt werden. Einige Authentifizierungssysteme verlangen immer noch Passwörter mit umkehrbarer Verschlüsselung. Jeder, der über den richtigen kryptografischen Schlüssel verfügt, kann den verschlüsselten Text umkehren, um die Passwörter im Klartext zu offenbaren. Darunter leidet die Sicherheit. Der Schutz von kryptografischen Schlüsseln ist von entscheidender Bedeutung, da ein Übeltäter die Verschlüsselung aufheben und Passwörter wiederherstellen kann, sobald er über den Schlüssel verfügt. Ein Hardware-Sicherheitsmodul (HSM) kann zentrale kryptografische Operationen durchführen und Schlüssel so speichern, dass sie nicht aus dem Modul extrahiert werden können.

 

Es gibt zahlreiche kryptographische Algorithmen und Techniken, mit denen die Verschlüsselung bei der Speicherung von Passwörtern eine wichtige Rolle übernehmen kann. Passwort-Manager verwenden beispielsweise Verschlüsselung, um die Vertraulichkeit der gespeicherten Geheimnisse zu gewährleisten. Wenn ein Benutzer ein Passwort benötigt, entschlüsselt der Passwort-Manager den Geheimtext und fügt das Klartext-Passwort in das Webbrowser-Formular ein, da Klartext das einzige Format ist, das der Browser zulässt.

Was ist Hashing?

Beim Hashing wird ebenfalls ein Algorithmus verwendet, um ein Klartext-Passwort in einen verschlüsselten Text zu verwandeln, der das eigentliche Passwort verschleiert. Im Gegensatz zur Verschlüsselung funktioniert das Hashing nur in eine Richtung. Wenn Sie ein zufällig gewähltes Klartext-Passwort beliebiger Länge nehmen und es durch einen Hash-Algorithmus laufen lassen, wird eine für den eingegebenen Klartext eindeutige Zeichenkette oder eine Hexadezimalzahl ausgegeben. Die Länge hängt vom verwendeten Algorithmus ab. Hashes von Passwörtern können nicht in das ursprüngliche Klartext-Passwort zurückverwandelt werden.

 

Der Server speichert eine gehashte Version des Passworts. Wenn der Benutzer ein Klartext-Passwort eingibt, berechnet das System den Hashwert und vergleicht die Hashes. Wenn die Hashes übereinstimmen, kann der Server das Passwort bestätigen und der Benutzer erhält Zugriff.

 

Häufige Hash-Algorithmen

 

Weniger sichere Hash-Algorithmen:

 

  • Der Message-Digest-Algorithmus 5 (MD5) nimmt eine Nachricht beliebiger Länge als Eingabe und wandelt sie in eine Ausgabe mit einer festen Hashwert-Länge von 128 Bit um, die der Authentifizierung der ursprünglichen Nachricht dient.

 

  • Der Secure Hash Algorithm (SHA, sicherer Hash-Algorithmus) ist eine weitere Hashfunktion. Die 160-Bit-Werte von SHA-1 sind durch ihre Länge sicherer als die 128-Bit-Hashwerte von MD5, weisen aber auch Schwächen auf, die letztendlich zur Entwicklung der Hash-Code-Familie „SHA-2“ geführt haben.

 

Hash-Algorithmen mit höherer Sicherheit:

 

  • Die Hash-Code-Familie SHA-2 ist heute weit verbreitet, denn ihre Algorithmen sind verhältnismäßig lang und schwer zu knacken. Die Bezeichnungen der SHA-2-Algorithmen leiten sich von ihrer Länge ab, somit steht SHA-224 für eine Länge von 224 Bit. Auch SHA-256, SHA-384 und SHA-512 folgen diesem Prinzip.

Was ist Salting?

Genauso wie man mit Salz den Geschmack von Speisen verbessert, werden Passwörter um eine zufällige Zeichenfolge (Salt) ergänzt, um sie zu optimieren. Jedem Benutzer wird ein anderes Salt zugewiesen, das nur dem Server bekannt ist. Dadurch wird es einzigartig und bietet höhere Sicherheit. Das Salt kann an beiden Enden des Passworts angefügt werden. Durch das Hinzufügen eines Salt zum Kennwort „Password“ würde beispielsweise ein „gesalzenes“ Kennwort wie „4(j3Li95Password“ oder „Password4(j3Li95“ generiert. Nach dem Ergänzen des Salt wird die Kombination aus Klartext-Passwort und Salt gehasht und dadurch sicherer, als wenn nur das ursprüngliche Passwort gehasht wird.

Das Kombinieren von Salting und Hashing für mehr Sicherheit

Das Passwort-Hashing erhöht die Sicherheit bei der Speicherung und Verwaltung. Dies gilt sowohl für Passwörter, die "salted", als auch "unsalted" sind. "Gesalzene" Passwörter, die außerdem gehasht sind, erschweren böswilligen Akteuren das Knacken von Passwörtern in größerem Umfang. Da den Passwörtern vor dem Hashing zufällige Zeichen hinzugefügt werden, erhält der Hacker keine Möglichkeit mehr, das Klartext-Passwort schnell herauszufinden. Es ist nahezu unmöglich, die Ausgabe einer Hashfunktion ohne Ausprobieren umzukehren, um den ursprünglichen Wert zu ermitteln. Der mit gesalzenen Passwörtern erzeugte, einzigartige Hashwert wappnet effektiv gegen Angriffsvektoren, einschließlich Wörterbuch-, Brute-Force-, und Hash-Table-Angriffe.

 

Angenommen, ein Hacker möchte ein Passwort testen... Dazu muss er zunächst die Serverdatei mit den gehashten Passwörtern stehlen. Ein erfahrener Hacker verfügt meistens über häufig verwendete Passwörter, Wörterbuch-Einträge und im Dark Web gefundene Passwörter. Diese lässt er durch Standard-Hash-Algorithmen laufen und trägt die Ergebnisse in eine Tabelle ein. Eine Hash-Tabelle ist eine vorab berechnete Datenbank mit Hashes, und eine Regenbogentabelle (Rainbow Table) ist eine Tabelle mit vorab errechneten, umgekehrten Hashes für die Entschlüsselung von Passwort-Hashes. Der Hacker sucht in der Serverdatei nach Übereinstimmungen mit den vorab errechneten Hashes in seiner Regenbogentabelle. Da die Regenbogentabelle aus allen Klartexten erstellt wurde, die möglich sind, kennt er nun das Passwort dieses Benutzers. Ohne eine zusätzliche Sicherheitsmaßnahme, wie beispielsweise eine Multi-Faktor-Authentifizierung (MFA), kann sich der Hacker jetzt Zugriff auf das Benutzerkonto verschaffen.

 

Ein Hacker, der seine Tabelle mit normalen Passwörtern errechnet hat, kann gesalzene Passwörter nicht ohne Weiteres herausfinden, da zufällige Zeichen hinzugefügt wurden. Der Hacker hat dann keine andere Wahl, als Millionen von gehashten Passwort-Salt-Kombinationen auszuprobieren, um die Passwörter auszuspähen. Ebenso wie ein Autodieb, der sich statt eines schwierigen Einbruchs lieber ein offenes Auto mit steckendem Zündschlüssel sucht, wird der Hacker zu schlechter gesicherten Zielen weiterziehen.

Kurze Zusammenfassung: Verschlüsselung vs. Hashing vs. Salting

Die Passwortverschlüsselung wird verwendet, wenn der Klartext aus irgendeinem Grund wiederhergestellt werden muss. Die Verschlüsselung ist eine umkehrbare Methode zur Umwandlung von Klartext-Passwörtern in Geheimtext. Mit einem Entzifferungsschlüssel lässt sich der ursprüngliche Klartext wiederherstellen. Die Verschlüsselung wird häufig für die Speicherung von Passwörtern in Passwort-Managern genutzt.

 

Das Passwort-Hashing wird typischerweise auf der Serverseite verwendet, wenn der Serverbetreiber den Klartext nicht zu kennen braucht, sondern nur nachweisen muss, dass der Benutzer den Klartext kennt. Das Hashing ist ein monodirektionaler Vorgang, bei dem ein Passwort mithilfe von Hash-Algorithmen in einen Geheimtext umgewandelt wird. Ein gehashtes Passwort kann nicht entschlüsselt werden, aber ein Hacker kann versuchen, es zurückzuentwickeln.

 

Beim Passwort-Salting werden vor dem Hashing zufällige Zeichen am vorderen oder hinteren Ende des Passworts angehängt, um das eigentliche Passwort zu verschleiern. Aufgrund der Zufälligkeit des Salt ist es für Hacker sehr schwierig, nach Hashing und Salting die ursprünglichen, tatsächlichen Passwörter herauszufinden, da ihre vorberechneten Passwort-Tabellen nicht funktionieren.

 

Passwörter sind für sich genommen für ein Identitäts- und Access-Management (IAM) nicht ausreichend und müssen durch weitere Authentifizierungsmethoden verstärkt werden. Weitere Informationen über die Multi-Faktor-Authentifizierung (MFA) finden Sie in unserem Whitepaper über die Best Practices für den Schutz moderner digitaler Unternehmen.

Diesen Artikel teilen:
Verwandte Ressourcen

Starten Sie jetzt

Kontaktieren Sie uns

sales@pingidentity.com

Erfahren Sie, wie Ping Ihnen helfen kann, sichere Erlebnisse für Mitarbeiter, Partner und Kunden in einer sich schnell wandelnden digitalen Welt zu bieten.