2016-06-24 11 views
1

Es gibt viele Fragen zu SO über das Speichern von Passwörtern in einer Datenbank und ich bin mir bewusst, dass Passwörter unter keinen Umständen im Klartext gespeichert werden sollten. Meine Anwendung erfordert jedoch eine Authentifizierung gegen verschiedene Drittanbieter, z. B. SMB- oder REST-APIs, die kein OAUTH bereitstellen. Kurz gesagt: Ich muss Passwörter speichern.Speichern von Passwörtern in einer Datenbank

Um das Speichern von Passwörtern im Klartext zu vermeiden, besteht meine Idee darin, einen geheimen Schlüssel in einer Umgebungsvariablen zu speichern und diese zum Verschlüsseln/Entschlüsseln der Kennwörter zu verwenden.

Ist das ein guter Ansatz für das Problem oder gibt es bessere Möglichkeiten?

Antwort

2

Sehen Sie sich das Attribut attr_encrypted an, um Attribute transparent zu verschlüsseln und zu entschlüsseln. Auf diese Weise können Sie in ein virtuelles Attribut schreiben, und beim Speichern werden die Daten nahtlos verschlüsselt und in der Datenbank gespeichert, sodass sie niemals als einfacher Text gespeichert werden.

Stellen Sie sicher, dass Sie das Schmuckstück mit dem neuen Standardmodus von: per_attribute_iv verwenden, der sowohl den verschlüsselten Chiffretext als auch die individuelle IV für jedes verschlüsselte Attribut, das Sie speichern möchten, beibehält.

https://github.com/attr-encrypted/attr_encrypted

Verwandte Themen