2016-07-23 2 views
0

Я изучаю Jasypt для хранения зашифрованных паролей паролей в файлах свойств. Он имеет хорошую интеграцию с Spring и т.д., но подход, что эти ребята предлагают для шифрования пароля выглядит немного странно, как для меня:Java: что является лучшим вариантом для хранения зашифрованных баз данных (и других) паролей в файлах свойств?

  1. Используйте PBE (симметричный алгоритм) шифрование.

  2. Хранить пароль для шифрования/дешифрования в переменной окружения или в исходном коде.

Оба варианта выглядят небезопасными и немного небезопасными.

Мои вопросы:

  1. Что является лучшей практики для хранения зашифрованных паролей?
  2. Могу ли я использовать шифрование на основе ключа (например, частные/открытые ключи)?
+0

http://security.stackexchange.com/questions/211/how-to-securely-hash-passwords salt + hash + использовать признанные алгоритмы. – assylias

+0

@assylias Как хеширование пароля поможет с паролем jdbc? AFAIK Мне нужен незашифрованный пароль для драйвера jdbc. Такая же ситуация может возникнуть при использовании сторонних служб, где вы должны аутентифицироваться по имени пользователя/паролю. – FoxyBOA

+0

Я неправильно понял ваш вопрос. – assylias

ответ

2

В нашем приложении мы используем два подхода:

  1. Мы используем корпоративный пароль хранилища, который хранит пароли для всех наших баз данных. Наш веб-сервер запрашивает пароль из хранилища для подключения базы данных каждый раз.

  2. Мы храним зашифрованные пароли в файле свойств. И во время запуска приложения мы читаем файл свойств с помощью загрузчика классов и сохраняем его как системную переменную и используем при необходимости.

Трудно иметь шифрование с открытым/закрытым ключом непосредственно с помощью db, для этого вам понадобится посредник.

+1

Привет, Sanket. Когда вы говорите «наше приложение», значит ли это, что у вас есть определенная роль от Jasypt или Spring? Не могли бы вы раскрыть эту роль? –