Frage

Ich habe eine Frage zum folgenden Szenario:
Ich möchte Jasypt verwenden, um mein Passwort zu verschlüsseln und ein bestimmtes Salz zur Verschlüsselung zu verwenden.

Ist es sinnvoll (oder gibt es eine Sicherheitsimplikation), wenn:
Ich verwende eine passwortbasierte Verschlüsselung, um das Salz mit einem Passwort zu verschlüsseln, das ich aus einer Umgebungsvariablen erhalte. Auf diese Weise kann ich den verschlüsselten Wert des Salzes in einer Eigenschaftsdatei haben, sie von dort aus abrufen, es über das Passwort entschlüsseln, das ich bekomme, von dem Umgebungsvariable (eigentlich werde ich ein UmgebungsstringPBeConfig -Objekt haben, das wiederum die Umgebungsvariable von UmgebungsstringPBeConfig -Objekten erhält und die Umgebungsvariable löscht, sobald die Umgebung erstellt wurde) und schließlich das Salz verwenden.

Vielen Dank.

Bearbeiten: Bitte beachten Sie, dass ich wissen möchte, ob das "Verstecken" des Salzes, wie oben beschrieben, eine gute Praxis ist. Ich implementiere eine solche Lösung momentan nicht.

Bearbeiten: Bitte beachten Sie auch die folgenden Empfehlungen von Owasp.

Empfehlung: Machen Sie es schwierig, das gesamte Salz zu stehlen

Es gibt eine Reihe von zusätzlichen empfohlenen Verbesserungen des grundlegenden Salzmechanismus zur Prüfung:

Haben ein zusätzliches 'System' Salz, das für das gesamte System ein fester Wert ist. Dies sollte irgendwo in einer Konfigurationsdatei gespeichert werden. Dieser feste Wert müsste nicht jede Sicherung enthalten sein, sodass ein Angreifer alle Elemente, die zur ordnungsgemäßen Berechnung des Hash -Werts erforderlich sind, eine Kompromisse beizutragen. Einbetten Sie einen Teil des Systemsalzes in den Quellcode ein. Dies wäre nicht so hilfreich für Open -Source -Code, aber für benutzerdefinierte Anwendungen wäre es noch ein weiterer Artikel, den ein Angreifer für den ordnungsgemäßen Hash -Wert zu berechnen ist. Generieren Sie jedes Mal, wenn das Passwort des Benutzers geändert wird, ein neues Salz für ein Konto.

Empfehlung: Salzisolation

Ein zusätzlicher Mechanismus für die Speicherspeicherverteidigungsmechanismus besteht darin, das Salz an einem anderen Ort zu speichern als der Passwort -Hash. Die Verwendung des Dateisystems des Servers ist ein häufig verwendeter Mechanismus für die Salzisolation, vorausgesetzt, die Kennworthashes werden an verschiedenen Standorten wie einer Datenbank oder einem LDAP -Server gespeichert. Dieser Verteidigungsmechanismus verringert das Risiko von Kennwortdiebstahl, wenn die Datenbankdatei gestohlen wird, da die Salze nicht in die Datenbankdaten enthalten sind. Achten Sie darauf, dass sowohl die Passwort -Hashes als auch die Salze nicht zusammen gesichert sind. Sie sollten auch isoliert gesichert werden.

Keine korrekte Lösung

Andere Tipps

Warum möchten Sie ein Salz verschlüsseln? Salze sind normalerweise öffentliche Informationen-sie existieren nur, um vorbereitete Offline-Angriffe "Regenbogentisch" auf Datenbanken mit Passwörtern zu verhindern. Ich denke, Sie müssen klarer sein, was Sie versuchen und warum.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top