Was ist das Salt in einem Linux-Passwort-Hash und warum ist es wichtig?

Letzte Aktualisierung: 04/12/2025
Autor: Holger
  • Das Salt ist eine zufällige Zeichenkette, die vor dem Hash an das Passwort angehängt wird, um für jeden Benutzer eindeutige Hashes zu erhalten.
  • Linux Es speichert Hash, Salt und Algorithmus in /etc/shadow und verstärkt so die Sicherheit gegen Wörterbuchangriffe und Rainbow-Tabellen.
  • Bewährte Verfahren erfordern lange, zufällige und eindeutige Salts sowie robuste Hash-Algorithmen und Datenbanken gut geschützt.
  • Die Passwortvergabe per Salt sollte in umfassendere Sicherheitsrichtlinien integriert werden, die starke Passwörter, Multi-Faktor-Authentifizierung (MFA) und Passwortmanager beinhalten.

Salt im Passwort-Hash in Linux

Wenn Sie mit GNU/Linux-Systemen arbeiten oder sich einfach Sorgen um die Sicherheit Ihrer Konten machen, haben Sie wahrscheinlich schon davon gehört. Salz im Passwort-HashEs ist eines jener Konzepte, die oft erwähnt, aber häufig nur halb verstanden werden: Es klingt technisch, aber in Wirklichkeit macht es den Unterschied zwischen einem System, das leicht zu knacken ist, und einem, das viel resistenter gegen Angriffe ist.

Kurz gesagt, Salz ist ein Schlüsselelement, um Passwort-Hashes unvorhersehbar zu machenEs funktioniert, indem vor der Anwendung des Hash-Algorithmus Zufallsdaten hinzugefügt werden, sodass selbst bei zwei Benutzern mit demselben Passwort das in der Datenbank gespeicherte Ergebnis unterschiedlich ist. Die konkrete Implementierung unter Linux, ihre Beziehung zu `/etc/shadow`, Tools wie `mkpasswd` und moderne Sicherheitsbest Practices bilden ein eigenes Themenfeld, das wir im Detail untersuchen werden.

Was genau ist das Salt in einem Passwort-Hash?

Definition des Salt im Passwort-Hash

In der Kryptographie, ein Salz (Salz) ist ein zufällige Zeichenkette Diese Zeichenfolge wird vor Anwendung der Hash-Funktion an das Passwort eines Benutzers angehängt. Ziel ist es, dass der resultierende Hashwert auch dann eindeutig ist, wenn das Klartextpasswort für mehrere Benutzer identisch ist.

Wenn ein Benutzer sein Passwort erstellt oder ändert, generiert das System eine zufälliges SalzEs kombiniert es mit dem Passwort (davor, danach oder in einem bestimmten Format, abhängig vom Schema) und wendet einen Hash-Algorithmus auf diese Kombination an, wie zum Beispiel SHA-256 o SHA-512Das Passwort wird nicht in der Datenbank gespeichert, sondern stattdessen Hash von (Passwort + Salt)In den meisten Fällen wird auch das Salt selbst zusammen mit dem Hash gespeichert.

Diese Technik ermöglicht die Darstellung vieler der Angriffstechniken basierend auf vorab berechneten HashwertenÄhnlich wie Rainbow-Tabellen erschwert dies Wörterbuch- und Brute-Force-Angriffe im großen Stil erheblich. Ein Angreifer kann nicht mehr ausnutzen, dass mehrere Benutzer ein Passwort gemeinsam nutzen, da jeder Benutzer einen anderen Hashwert erhält.

Es ist wichtig zu verstehen, dass Salz an sich kein Geheimnis ist: Es handelt sich weder um ein Passwort noch um einen privaten Schlüssel.Seine Funktion besteht darin, Zufälligkeit und Eindeutigkeit in den Hash-Prozess einzuführen. Die Sicherheit hängt weiterhin von der Verwendung ab. starke Passwörter y geeignete Hash-AlgorithmenVorzugsweise speziell für Passwörter entwickelte Algorithmen (wie bcrypt, scrypt, Argon2), obwohl viele klassische Linux-Systeme Varianten von SHA-256 oder SHA-512 verwenden.

Wie Passwort-Salting Schritt für Schritt funktioniert

Wie Passwort-Salting funktioniert

Der Salzungsprozess lässt sich in einer Reihe recht einfacher Schritte zusammenfassen, aber mit eine enorme Auswirkung auf die Sicherheit:

  So erkennen Sie schädliche Prozesse mit Process Explorer und VirusTotal

Zunächst generiert das System bei der Registrierung oder Passwortänderung eines Benutzers eine einzigartiges und zufälliges Salz für diese Anmeldeinformationen. Dieses Salt ist üblicherweise ausreichend lang (zum Beispiel 16 Byte oder mehr) und wird von einem kryptografisch sicheren Zufallszahlengenerator erzeugt.

Anschließend wird das vom Benutzer gewählte Passwort mit diesem Salt kombiniert, um ein Passwort zu bilden. ZwischenketteDiese Kombination kann so einfach sein wie die Verkettung von Salt und Passwort oder ein komplexeres, durch das Hash-Schema definiertes Format aufweisen. Wichtig ist, dass jeder Benutzer eine andere Kombination erhält.

Dann ein Einweg-Hash-AlgorithmusDas Ergebnis ist eine scheinbar zufällige Zeichenkette, der Hashwert, von fester Länge, die zusammen mit dem Salt in der Datenbank gespeichert wird. In modernen Systemen werden Algorithmen gesucht, die … lange und komplizierte AusgängeDadurch vergrößert sich der Suchraum und Brute-Force-Angriffe werden teurer.

Wenn sich der Benutzer schließlich anmeldet, ruft das System das eingegebene Passwort erneut ab. zugehöriges Salz Aus der Datenbank wird der exakt gleiche Kombinations- und Hash-Prozess wiederholt und das Ergebnis mit dem gespeicherten Hash verglichen. Stimmen sie überein, weiß das System, dass das Passwort korrekt ist, ohne den Klartext kennen zu müssen.

Dieser Mechanismus stellt sicher, dass der Angreifer selbst im Falle eines Datenbanklecks nur die darin enthaltenen Informationen sehen kann. individuelle Hashes mit ihren eigenen SalzenAnstelle einer Reihe vergleichbarer Hashwerte ist das Abwehren eines Angriffs zwar keine Zauberei, aber es wird deutlich rechenintensiver.

Vorteile der Verwendung von Salt in Passwort-Hashes

Vorteile der Verwendung von Salt in Passwörtern

Der Hauptgrund für die Verwendung von Salz ist, dass stärkt die Sicherheit gespeicherter Passwörter gegen eine Vielzahl von Angriffen. Es lohnt sich jedoch, die spezifischen Vorteile genauer zu betrachten.

Erstens sorgt das Salzen dafür, dass Resistenz gegen WörterbuchangriffeOhne Salt kann ein Angreifer eine riesige Liste gängiger Passwörter und ihrer Hashes erstellen und diese einfach mit der gestohlenen Datenbank vergleichen. Mit einem individuellen Salt pro Benutzer werden diese vorab berechneten Hashes nutzlos, da jede Kombination aus Passwort und Salt einen anderen Wert erzeugt.

Zweitens beeinträchtigt die Verwendung von Salz die Wirksamkeit des Regenbogen-TischeHierbei handelt es sich lediglich um vorab berechnete Datenbanken mit Hashwerten für gängige Passwörter, um die Wiederherstellung zu beschleunigen. Da das Ergebnis jedoch vom verwendeten Salt abhängt, sind diese für ungesalzene Hashwerte konzipierten Tabellen entweder nutzlos oder zumindest äußerst ineffizient.

Ein weiterer klarer Vorteil ist, dass es die Datenschutz im Falle eines DatenlecksSelbst wenn ein Angreifer Zugriff auf die Benutzertabelle mit Hash und Salt erlangt, kann er nicht schnell feststellen, wer dasselbe Passwort wie andere verwendet, oder einfach Massenangriffe starten. Jedes Konto erfordert individuelle Betreuung, was im großen Maßstab in der Regel nicht praktikabel ist.

  Warnung vor dem neuen WhatsApp-Betrug: Bizum und Videoanrufe zum Diebstahl von Konten und Geld

Darüber hinaus erhöht das Salzen die Komplexität der rohe GewaltAnstatt ein potenzielles Passwort gleichzeitig gegen alle Hashwerte testen zu können, muss der Angreifer das Salt jedes einzelnen Benutzers berücksichtigen, was den Gesamtaufwand erheblich erhöht. In Kombination mit einem langsamen und parametrisierbaren Hash-Algorithmus (wie bcrypt oder Argon2) steigen die Kosten des Angriffs noch weiter an.

Schließlich ist Salting eine Technik, die sich gut an die technologische Entwicklung anpasst. Selbst wenn sich die Computerhardware verbessert und neue Angriffe auftauchen, die Kombination aus robustem Haschisch und einzigartigem Salz Es bietet einen hohen und skalierbaren Schwierigkeitsgrad: Man kann die Länge des Salzes erhöhen, den Algorithmus verstärken, den Rechenaufwand erhöhen usw.

Wie Linux das Passwort-Salting (/etc/shadow) implementiert

In Linux-Systemen und anderen *NIX-Varianten werden Benutzerpasswörter nicht in /etc/passwd, sondern in der Datei gespeichert. / etc / SchattenDiese Datei, auf die nur der Superuser Zugriff hat, speichert die Passwort-Hashes zusammen mit zusätzlichen Informationen und zeigt deutlich die Verwendung von Salt und des Hash-Algorithmus.

Die Zeilen in /etc/shadow haben eine ähnliche Struktur wie:

Benutzer:$id$sal$hash:zusätzliche_Felder…

Das Symbol $ Trennen Sie die verschiedenen Teile. Der erste Teil nach dem Benutzernamen gibt an, dass Art des Algorithmus verwendet. Zum Beispiel: $ $ 1 steht üblicherweise für MD5, $ $ 5 SHA-256 und $ $ 6 SHA-512 ist der am häufigsten verwendete Algorithmus in modernen Distributionen, da er eine höhere Sicherheit bietet als ältere Verfahren, die auf DES oder MD5 basieren.

Nachdem die Algorithmenkennung erscheint salund dann die resultierender HashAll dies geschieht innerhalb desselben Feldes. Bei der Passwortvalidierung liest das System den Identifikator, das Salt, wendet den dem eingegebenen Passwort entsprechenden Algorithmus an und vergleicht den berechneten Hash mit dem gespeicherten.

Um schnell zu überprüfen, welche Benutzer verschlüsselte Passwörter verwenden und welcher Algorithmus zum Einsatz kommt, können Sie beispielsweise folgenden Befehl verwenden: grep '\$' /etc/shadowIn diesem Kontext dient das Dollarzeichen ($) dazu, Zeilen mit Hashes im modernen Format zu kennzeichnen. Das Symbol muss mit einem Backslash maskiert werden, da es in regulären Ausdrücken das Zeilenende signalisiert.

Bei Konten ohne Passwort oder gesperrten Konten wird in diesem Feld üblicherweise ein Wert wie dieser angezeigt. ! o * Anstelle eines Hashwerts mit Dollarzeichen, was darauf hinweist, dass die Authentifizierung mit einem Standardpasswort nicht möglich ist, macht diese Struktur eines deutlich: Linux integriert Salting in sein Format Lagerung Passwörter nativ.

Unterschied zwischen Passwort-Hashing und Salting

Es ist wichtig, zwei Konzepte, die manchmal verwechselt werden, klar zu unterscheiden: Hashing y salzenPasswort-Hashing ist der Prozess, bei dem ein Passwort mithilfe eines Einwegalgorithmus in einen unleserlichen Wert umgewandelt wird. Der Server muss das ursprüngliche Passwort niemals kennen, sondern nur überprüfen, ob der Benutzer das richtige Passwort kennt, da beide denselben Hashwert erzeugen.

  Was ist WINUX: Linux mit einer freien Seele und dem Look and Feel von Windows

Das Problem besteht darin, dass, wenn zwei Passwörter identisch sind, Ungesalzenes Haschisch ist ebenfalls identisch.Dies ermöglicht es Angreifern, Benutzer anhand ihrer Passwörter zu vergleichen und zu gruppieren oder vorab berechnete Tabellen zu verwenden. Darüber hinaus wird ein schneller Hash-Algorithmus, der auf Datenintegrität ausgelegt ist (wie beispielsweise der einfache SHA-256-Algorithmus), anfälliger für massive Brute-Force-Angriffe.

Das Salzen kommt genau deshalb ins Spiel, um diese Schwäche zu beheben: Es geht darum Füge dem Passwort zufällige Daten hinzu. vor dem Hashing. Das Ergebnis ist, dass selbst wenn zwei Benutzer „casa“ als Passwort wählen, die Hashes in der Datenbank völlig unterschiedlich sind, da der eine beispielsweise „casa+7Ko#“ und der andere „casa8p?M“ als Pre-Hash-Zeichenkette hat.

Hashing und Salting konkurrieren also nicht miteinander, sondern ergänzen sich. Hashing liefert die Unidirektionalitätseigenschaft und einfache Überprüfbarkeit; das Salz bietet Einzigartigkeit und Widerstandsfähigkeit gegen massive AngriffeEine sichere Implementierung zur Passwortspeicherung kombiniert beide Techniken, idealerweise unter Verwendung eines speziell für diesen Zweck entwickelten Algorithmus, mit konfigurierbaren Kosten.

Verwendung von Salt unter Linux mit mkpasswd

In GNU/Linux-Umgebungen und anderen Systemen UnixEine sehr praktische Möglichkeit, mit Salzen zu experimentieren, ist das Werkzeug mkpasswdDieser Befehl dient zur Generierung verschlüsselte Passwörter sicher und wird üblicherweise in Benutzererstellungsprozesse, Administrationsskripte usw. integriert.

Die grundlegende Syntax von mkpasswd ermöglicht es Ihnen, das zu verschlüsselnde Passwort und eine Reihe von Optionen anzugeben, wie z. B. den Algorithmus (z. B. DES, MD5, SHA-256, SHA-512) mithilfe der Option. -mIn modernen Systemen ist es sinnvoll, sich für Folgendes zu entscheiden: SHA-512 mindestens, oder, falls die Distribution dies zulässt, durch noch robustere Systeme.

Die besonders interessante Option im Zusammenhang mit dem Salzen ist -S, was erlaubt Salz hinzufügen Das Passwort wird vor der Verschlüsselung verschlüsselt. Falls dies nicht manuell angegeben wird, kann mkpasswd eine Fehlermeldung generieren. Bei jeder Ausführung wird zufällig Salz verwendet.sodass selbst bei Verwendung desselben Anmeldepassworts der resultierende Hash jedes Mal unterschiedlich ist.

Dies lässt sich leicht überprüfen: Verschlüsselt man „password123“ mehrmals mit mkpasswd unter Verwendung von SHA-512 und einem zufälligen Salt, erhält man völlig unterschiedliche Hashwerte. Verwendet man jedoch denselben Salt-Wert mit der Option -S, ist der Hash immer identisch, da sich die Kombination aus Passwort und Salt nicht ändert.

Dank dieses Tools ist es ganz einfach. Bereiten Sie mit Salz verschlüsselte Passwörter vor. Konfigurationsdateien erweitern, Benutzer manuell verwalten oder das Verhalten von Salting testen, ohne etwas programmieren zu müssen.

Was ist digitale Hygiene?
Verwandte Artikel:
Digitale Hygiene: Sicherheit, Wohlbefinden und Ordnung im Online-Leben