Zum Inhalt springen Zur Navigation springen
Passwörter hashen: Sicherer mit Salt and Pepper

Passwörter hashen: Sicherer mit Salt and Pepper

Mittlerweile gibt es viele Möglichkeiten, um Passwörter zu knacken und somit an die geschützten Daten zu kommen. Umso wichtiger ist es, zusätzlich zur Einrichtung von Passwortrichtlinien, Maßnahmen zur Steigerung der Sicherheit zu treffen. Wie diese aussehen können und was Salt und Pepper mit dem Schützen Ihrer Daten zu tun haben, verrät der folgende Beitrag.

Passwörter beschäftigen die Datenschutzaufsichtsbehörden

In seinem letzten Tätigkeitsbericht informierte das bayrische Landesamt für Datenschutzaufsicht (BayLDA), dass man aufgrund vermehrter Meldungen von Datenpannen Websitebetreiber kontrollierte, inwieweit diese angemessen mit den Passwörtern ihrer Nutzer umgehen.

„Obwohl wir ausschließlich Websites von größeren Unternehmen, zum Teil börsennotierte Großkonzerne, hinsichtlich längst bekannter Sicherheitsanforderungen untersuchten, mussten wir feststellen, dass zahlreiche Defizite vorhanden waren. Die getroffenen Sicherheitsmaßnahmen mussten oft als unzureichend eingestuft werden. [….] Da das Ergebnis so ernüchternd ausfiel, werden wir auch weiter aktive Kontrollen im Cybersicherheitsumfeld durchführen und bei Verstößen unser Potential aus dem Maßnahmenkatalog ausschöpfen.“

Und auch das erste Bußgeld einer deutsche Aufsichtsbehörde in Höhe von 20.000 € erging, weil unverschlüsselt und ungehashte Passwörter bei einem Hackerangriff entwendet wurden und später im Netz auftauchten. Unternehmen können daher sogar rechtlich verpflichte sein, Maßnahmen zur Steigerung der Sicherheit von Passwörter zu treffen. Aufgrund des risikobasierten Ansatzes des Art. 32 DSGVO ist dies immer eine Frage des Einzelfalls. Dafür sollte dem Verantwortlichen aber auch bekannt sein, welche Risiken bestehen.

Wie werden Passwörter geschützt?

Passwörter werden mit kryptografischen Hashfunktionen irreversibel in eine Zeichenkette umgewandelt. Häufig bekannte Beispielalgorithmen sind MD5, SHA-1 und SHA-256. Hashfunktionen reduzieren zunächst nur Zeichenketten beliebiger Länge (unterschiedliche Passwörter) auf Zeichen fester Länge. (z.B. 128 Bit bei MD5 = 32 Zeichen)

Der Hashwert ist das Ergebnis, welches durch eine Hashfunktion berechnet wurde. Oft wird der Hashwert als eine hexadezimale Zeichenkette codiert d.h. der Hashwert besteht aus einer Zahlen- und Buchstaben-Kombination zwischen 0 und 9 sowie A bis F. Ein Beispiel für einen MD5 Hash könnte wie folgt aussehen:

a3cba2e1ba1e3b5c3b5aad87a4329075

Ein winzig kleiner Unterschied in einer Zeichenfolge erzeugt einen völlig unterschiedlichen Hashwert. Zum Beispiel, wenn ein Buchstabe klein- anstatt großgeschrieben wird. Das ist enorm wichtig, da man sonst leicht auf Passwörter schließen könnte, wenn ein festgelegtes Zeichen für einen bestimmten Buchstaben steht, wie es bei der klassischen monoalphabetischen Verschlüsselung der Fall ist.

Am Beispiel des Windows-Logins

Die Datenbank speichert Passwörter nicht direkt, sondern hasht sie beim Anlegen eines Kontos. Dabei speichert sie diesen Hash mit den Benutzerdaten zusammen. Bei Anmeldung eines Benutzers wird sein dabei eingegebenes Passwort gehasht und mit dem gespeicherten Hash verglichen, um den Benutzer zu authentifizieren. Der Systemdienst lsass.exe (Local Security Authority Subsystem Service) ist für das Durchsetzen der Sicherheitsrichtlinien auf den Windows-Systemen zuständig. Er überprüft die Benutzerinformation sowohl bei einer lokalen Anmeldung an einer Workstation als auch bei einer Anmeldung an einem Server. Nun stellt sich allerdings die Frage: Ist das absolut sicher?

Nein, denn…

Brute Force, Passwort-Wörterbücher und Rainbowtables

Ein Brute-Force-Angriff versucht durch wahlloses Ausprobieren von Zeichenkombinationen Passwörter oder Schlüssel herauszufinden. Dabei ist dieser Vorgang meistens vollständig automatisiert, sodass der Rechner mehrere Passwortkombinationen pro Sekunde durchprobiert. Dies geht allerdings nur, wenn im System keine feste Anzahl an möglichen Fehlversuchen festgelegt ist. Je höher die Rechengeschwindigkeit, desto mehr Passwörter pro Sekunde probiert der Rechner aus. So schaffen moderne, schnelle Rechner bis zu 2 Billionen Passwörter pro Sekunde. Je länger die Passwörter sind, desto länger braucht eine Brute Force-Attacke für das Knacken.

Bei einem Wörterbuchangriff versucht der Angreifer mit Hilfe von elektronischen Wörterbüchern Passwörter zu erraten. Das ist häufig mit Erfolg gekrönt, weil viele User bekannte Wörter für ihre Passwörter verwenden. Um Wörterbuchangriffe zu erschweren, wurden Passwort-Policies eingeführt, die zusätzlich Sonderzeichen und Zahlen bei der Festlegung von Passwörtern verlangen.

Die Rainbowtable, zu Deutsch Regenbogentabelle, ermöglicht die Suche nach der ursprünglichen Zeichenfolge (in der Regel ein Passwort) für einen gegebenen Hashwert. Genau wie Passwortwörterbücher, findet man diese vorgefertigten Tabellen im Internet. In diesen, teilweise mehrere Hundert Gigabyte großen Dateien, liegen passend zum verwendeten Verschlüsselungsalgorithmus Passwörter zusammen mit ihren Hashwerten. Allerdings nicht komplett: Stattdessen erzeugt man Ketten, sog. Chains, aus der sich die eigentlichen Werte leicht berechnen lassen und reduziert so den Speicherbedarf der immer noch sehr großen Tabellen.

Möchte man nun ein Passwort anhand eines bekannten Hashwertes ermitteln, durchsucht man zunächst die Liste nach dem vorliegenden Hashwert. Findet man ihn im Anfang oder im Ende einer Kette, ist das Passwort relativ schnell gefunden, denn nun braucht man nur die Wiederholungen der Kette nachzuvollziehen. Ist der Hashwert nicht vorzufinden, folgt eine sogenannte Reduktionsfunktion. Nun reduziert und hasht man den zu knackenden Hashwert immer wieder nach den gleichen Regeln. Durch dieses Verfahren sind alte Algorithmen wie MD5 und SH1 unbrauchbar geworden.

Hier kommt Salt und Pepper ins Spiel

Durch eine Hinzugabe von Salt und Pepper lassen sich Daten schützen. Das Salt erschwert das Entschlüsselns durch Regenbogentabellen. Wenn ein Nutzer ein Passwort festlegt, erstellt das System zusätzlich dazu einen zufälligen Wert, das Salt. Dieser Wert fließt zusammen mit dem Passwort in die Hashfunktion und erzeugt einen anderen Wert. Das Salt und der Hashwert liegen gemeinsam in der Datenbank. Der zufällig vergebene Hashwert des Salts ist nicht in den Regenbogentabellen eingetragen und erschwert somit die Suche nach dem ursprünglichen Passwort erheblich.

Der Pepper erschwert wiederum den Angriff mit Brute Force oder Passwort-Wörterbüchern. Auch Pepper ist eine zufällige Zeichenfolge, die zusammen mit dem Passwort in den Hashwert einfließt. Anders als beim Salt, speichert die Datenbank den Pepper nicht zusammen mit den Login-Daten. Den Pepper bewahrt man getrennt und an einem möglichst sicheren Ort auf. Salt und Pepper haben somit viel mit dem Schützen Ihrer Daten zu tun – sie verhindern das Knacken von Passwörter zwar nicht, erschweren es jedoch erheblich.

Passwortsicherheit: Ein Thema für IT-Sicherheit und Datenschutz

Beim Thema Passwortsicherheit ist sich das BSI einig – als erster Grundsatz zur Steigerung der Sicherheit gilt immer noch: Komplexe Passwörter verwenden! Daneben gibt das BayLDA die folgende Empfehlung als Best-Practice:

  • Mindestlänge von 10 Zeichen bei hoher Zeichenkomplexität
  • Bei geringerer Passwortkomplexität Erhöhung der Mindestlänge (20 Zeichen)
  • Speicherung mit geeigneten gesalzenen Hashverfahren

Zudem sollte die Verifizierung mittels Zwei-Faktor-Authentifizierung in Betracht gezogen werden. Unternehmen sollten regelmäßig ihren Umgang mit Passwörtern überprüfen und das Risiko evaluieren. So wurde bspw. kürzlich das Gesetz gegen Hass im Netz verabschiedet, welches es Sicherheitsbehörden erlaubt, sich von Telemedienanbieter die Passwörter von Nutzern herausgeben zu lassen. Es ist daher nicht unwahrscheinlich, dass die Datenschutzaufsichtsbehörden hier in Zukunft noch genauer hinschauen werden.

Informieren Sie sich über unsere praxisnahen Webinare
  • »Microsoft 365 sicher gestalten«
  • »Informationspflichten nach DSGVO«
  • »Auftragsverarbeitung in der Praxis«
  • »DSGVO-konformes Löschen«
  • »IT-Notfall Ransomware«
  • »Bewerber- und Beschäftigtendatenschutz«
Webinare entdecken
Mit dem Code „Webinar2024B“ erhalten Sie 10% Rabatt, gültig bis zum 30.06.2024.
Beitrag kommentieren
Fehler entdeckt oder Themenvorschlag? Kontaktieren Sie uns anonym hier.
  • Uiuiui… Hier wird aber aus technischer Sicht einiges vermischt…

    Zunächst mal werden Passwörter entweder verschlüsselt oder gehashed, aber sie werden nicht mittels Hashfunktionen verschlüsselt! Das sind zwei vollkommen unterschiedliche Kryptoverfahren. Einen Hash kann man nicht zurückbilden, sondern nur vergleichen. Eine Verschlüsselung ist dagegen rekonstruierbar mittels des Schlüssels.

    Salt & Pepper machen den Hash deutlich schwieriger zu knacken, das ist richtig. Die Beschreibung des Verfahren mit der Rainbowtable ist allerdings etwas schwammig, denn die Rainbowtables sind eigentlich nicht dazu gedacht, das ursprüngliche Passwort herauszufinden, sondern eine beliebige Zeichenkette, die dem Hashwert entspricht. Das Manko von Hashes ist eben, dass – relativ selten zwar, aber immerhin möglich – zwei verschiedene Zeichenketten/Passwörter denselben Hash ergeben können. Darauf baut das Prinzip der Rainbowtables auf.

    Salt & Pepper erschweren das natürlich enorm.

    MD5 sollte man übrigens längts nicht mehr verwenden. Tun viele noch, sollten sie aber nicht.

    • Vielen Dank für die Hinweise.

      „Uiuiui… Hier wird aber aus technischer Sicht einiges vermischt…“

      Mit folgender Sache liegen Sie richtig: Eine Hashfunktion ist keine Verschlüsslung im eigentliche Sinne, es fehlt der Schlüssel. Die Identität des Passworts wird durch eine Hashfunktion eher verschleiert / maskiert. Das haben wir im Beitrag entsprechend geändert.

      „Zunächst mal werden Passwörter entweder verschlüsselt oder gehashed, aber sie werden nicht mittels Hashfunktionen verschlüsselt!“

      Ja und nein. Richtig: Hashfunktionen sind keine Verschlüsslung. Die Praxis mag zwar so aussehen, das entweder oder eingesetzt wird, aber es ist denkbar und auch sicherer, einen Hash anschließend noch zu verschlüsseln. Diesen Aufwand betreibt nur fast keiner.

      Digitale Signaturen werden übrigens ähnlich erzeugt: Es wird der Hash über einen Text gebildet und anschließend mit dem privaten Schlüssel der Hash verschlüsselt. Der Empfänger nutzt den öffentlichen Schlüssel, um den Hash zu entschlüsseln und anschließend den entschlüsselten Hash mit dem zu vergleichen, den der Empfänger selbst errechnet hat. Das ist kein Anwendungsbeispiel für Passwörter, zeigt aber, dass die Kombi nicht ungewöhnlich ist.

      „Das Manko von Hashes ist eben, dass – relativ selten zwar, aber immerhin möglich – zwei verschiedene Zeichenketten/Passwörter denselben Hash ergeben können. Darauf baut das Prinzip der Rainbowtables auf.“

      Rainbowtables bauen nicht auf der Kollisionsresistenz von Hashfunktionen auf. Wie im Text erläutert, handelt es sich um Massen an bereits berechneten Hashwerten, die mit dem zu knackenden Hashwert verglichen werden. Die Effizienz des Verfahrens beruht auf den Ketten, indem nicht jeder Hash verglichen werden muss, sondern anhand von Ketten die „richtige“ für das Passwort ausgemacht werden kann und dann nur die Hashes in der Kette verglichen werden müssen.

  • Eine Frage, was ist Salt und Pepper, ein Programm?
    Mario Emmer

    • Ein Salt ist eine zufällige Zeichenfolge, die einem Passwort vor der Verschlüsselung hinzugefügt wird, um die Sicherheit zu erhöhen. Das Salt wird für jedes Passwort individuell generiert und ist normalerweise öffentlich zugänglich oder wird zusammen mit dem verschlüsselten Passwort gespeichert. Durch das Hinzufügen von Salt wird das Auftreten von Rainbow-Tables verhindert, was eine Form des Angriffs ist, bei dem vorberechnete Hash-Werte verwendet werden, um Passwörter zu entschlüsseln.

      Im Gegensatz zu Salt ist Pepper eine zusätzliche Geheimhaltungsmaßnahme, bei der eine statische, geheime Zeichenfolge verwendet wird, die dem Passwort vor der Verschlüsselung hinzugefügt wird. Im Gegensatz zu Salt ist Pepper nicht öffentlich zugänglich und wird normalerweise nicht zusammen mit dem verschlüsselten Passwort gespeichert. Die Idee ist, dass selbst wenn ein Angreifer Zugriff auf die Passwort-Datenbank erhält, der Pepper benötigt wird, um die Passwörter zu entschlüsseln. Dies erhöht die Sicherheit zusätzlich, da der Angreifer neben dem Zugriff auf die Datenbank auch den geheimen Pepper benötigt, um die Passwörter zu entschlüsseln.

Die von Ihnen verfassten Kommentare erscheinen nicht sofort, sondern erst nach Prüfung und Freigabe durch unseren Administrator. Bitte beachten Sie auch unsere Nutzungsbedingungen und unsere Datenschutzerklärung.