Мне нужно хранить личные ключи для нескольких пользователей, чтобы мое серверное приложение могло подписывать файлы от их имени.
Я хочу хранить секретные ключи надежно, но я не мог найти лучшие практики вокруг этого. Если бы я хранил пароль, я бы соел + хеш пароль, чтобы сделать хэш, который нельзя легко вернуть обратно в пароль. Тем не менее, с закрытым ключом мне нужно сохранить его таким образом, чтобы я мог позже его восстановить.
Я думал, что буду шифровать закрытый ключ, а затем хранить его в своей базе данных. Первоначально я думал, что каждый ключ будет зашифрован другим паролем (на основе некоторых свойств пользователя). Однако эти свойства, скорее всего, будут храниться в базе данных, поэтому, если моя база данных просочилась, у злоумышленника есть все.
Я мог бы зашифровать все закрытые ключи одним паролем, который известен только моему приложению. Тогда злоумышленнику придется украсть мою базу данных, а мое приложение - нанести какой-либо вред.
Есть ли техника/лучшая практика, которую я пропускаю?