Java - шифрование / дешифрование пароля для внешних сайтов - PullRequest
1 голос
/ 12 августа 2011

На нашем сервере у нас есть несколько периодических заданий, которые подключаются к внешним учетным записям через API.В настоящее время эти пароли жестко закодированы (в открытом виде).Мы собираемся хранить их в базе данных и хотели бы зашифровать пароли, но мы должны иметь возможность расшифровать их для входа на внешние сайты.Существует ли способ надежного хранения этих паролей без сохранения другого пароля в открытом виде для шифрования / дешифрования?(Это кажется общей проблемой, но я недостаточно знаком с терминологией безопасности, чтобы классифицировать ее).Спасибо!

1 Ответ

3 голосов
/ 12 августа 2011

То, что вы пытаетесь достичь, очень похоже на этот вопрос .В идеале вы не хотите хранить эти секреты в базе данных, вы хотите хранить их как можно дальше от своего приложения.Зачем?Потому что таким образом вы можете по крайней мере исключить само приложение как поверхность для атаки, и получить доступ к этим паролям будет намного сложнее.

В вашем случае вы хотите защитить ключи шифрования паролем.Это означает, что вы должны где-то хранить пароль.Должны ли вы снова зашифровать этот пароль?Это приводит к порочному циклу - это то, что я имел в виду в этом разделе ответа:

... Что приводит нас к этому ресурсу.Это действительно проблема курицы и яйца с хранилищами ключей и паролями.Единственное действительно чистое решение - вводить пароли вручную при каждом запуске приложения / базы данных.Но это, как правило, реальная проблема (подумайте о сбое посреди ночи), поэтому люди склонны хранить пароли в текстовом файле в файловой системе.Это приемлемо, если вы следуете некоторым рекомендациям: ...

Если вы что-то зашифруете, значит, существует секретный ресурс, включающий ключ.Как указано в цитате, идеальный способ сохранить это в тайне - запомнить его и ввести вручную, чтобы не оставить его следов.Поскольку это часто не поддается управлению, вам приходится жить с чем-то менее безопасным, чем запоминание, но лучше, чем хранить секрет в открытом тексте.

Те же рекомендации, что и в этом посте, применимы к вашему делу в отношении хранения секретного пароля в файле.В качестве альтернативы вы можете попробовать использовать средства безопасного хранения ОС, такие как Защита данных Windows .

...