Ich muss private Schlüssel für mehrere Benutzer speichern, damit meine Serveranwendung Dateien in ihrem Namen signieren kann.Speichern privater Schlüssel in der Datenbank
Ich möchte die privaten Schlüssel sicher speichern, aber ich konnte keine optimalen Vorgehensweisen finden. Wenn ich ein Passwort speichern würde, würde ich das Passwort salzen + hashen, um einen Hash zu erstellen, der nicht einfach in das Passwort zurückverwandelt werden kann. Mit einem privaten Schlüssel muss ich ihn jedoch so speichern, dass ich ihn später abrufen kann.
Ich dachte, ich würde den privaten Schlüssel verschlüsseln und dann in meiner Datenbank speichern. Ich dachte ursprünglich, jeder Schlüssel würde mit einem anderen Passwort verschlüsselt werden (basierend auf einigen Eigenschaften des Benutzers). Diese Eigenschaften würden jedoch höchstwahrscheinlich in der Datenbank gespeichert werden. Wenn also meine Datenbank durchgesickert ist, hat der Angreifer alles.
Ich könnte alle privaten Schlüssel mit einem einzigen Passwort verschlüsseln, das nur meiner Anwendung bekannt ist. Dann müsste ein Angreifer meine Datenbank und meine Anwendung stehlen, um Schaden anzurichten.
Gibt es eine Technik/Best Practice, die ich vermisse?