Я хочу надежно хранить общедоступные и закрытые ключи в базе данных.Безопасное хранение общедоступных/закрытых ключей в базе данных
Мой вопрос в том, как я могу безопасно хранить закрытый ключ в базе данных. (открытый ключ не обязательно должен быть защищен в любом случае).
У меня есть два метода в настоящее время.
- Добавить фразу (т.е. пользователя мастер-пароль) к закрытому ключу и сохранит в виде строки в базе данных
- зашифровать приватный ключ с помощью симметричного алгоритма и хранения, которые в виде строки в базе данных
Насколько эти методы достаточны?
Что лучше или они одно и то же?
Есть ли лучшие способы?
Обновление Некоторые из вас могут быть смущены тем, почему я хочу это сделать. Мой вариант использования - это система управления паролями на основе команды. Открытые ключи используются для шифрования пароля (по одному для каждого пользователя в команде), а для дешифрования пароля используется закрытый ключ с passphase.
Первый отличается от второго тем, как работает симметричное шифрование. Они по сути эквивалентны, но со вторым вы сами можете выбрать симметричный алгоритм шифрования. Оба имеют свои преимущества и недостатки. Поскольку вы не представили требования, это будет основано на мнениях. –
Мое единственное требование состоит в том, чтобы закрытый ключ хранился надежно (т. Е. Если хакер овладел им, они не могут его расшифровать). Из того, что вы говорите, это то же самое, но второй способ дает мне больше контроля. Я прав? Есть ли лучшие способы? И какие требования вы хотите знать? –
Да, но второй метод также имеет недостаток, потому что все, даже криптографы, плохо выполняют правильное шифрование. Хотя нет места для ошибок, вы можете сделать это потенциально небезопасным. Как я уже сказал, это основано на мнениях. –