Действительно ли при использовании Jaspyt для шифрования файлов свойств Spring переменная среды является безопасным местом для хранения мастер-пароля?

Я использую Jaspyt и Spring 3 в своем проекте Java. В настоящее время я храню свойства подключения к базе данных в файле свойств. Имя пользователя и пароль представляют собой обычный текст, поэтому я рассматривал возможность использования Jaspyt EncryptablePropertyPlaceholderConfigurer.

В документации и руководствах предлагается хранить мастер-пароль, используемый для расшифровки, в переменной среды. Действительно ли это более безопасно, чем хранение текстовых значений в файле свойств? Если кто-то взломает ящик, не будет ли мастер-пароль виден (1) в переменных среды или (2) в сценарии запуска сервера? Я полагаю, вы могли бы вручную установить переменную среды и отключить ее после запуска сервера, но ручной процесс кажется неуправляемым.

Я просто параноик? Есть ли подход, который вы использовали для защиты имен пользователей и паролей для подключения?


person user935265    schedule 28.11.2011    source источник
comment
Jasypt рекомендует использовать Web PBE Configuration, чтобы обойти именно эту проблему. Но, как говорится в разделе Расширенная настройка, вам придется каждый раз сбрасывать пароль. вы повторно развертываете приложение в веб-консоли.   -  person rzrelyea    schedule 29.04.2013


Ответы (1)


Хранение паролей в открытом виде никогда не бывает безопасной процедурой. Злоумышленник, захвативший сервер, в любом случае имеет доступ к вашим паролям. Если ручной ввод невозможен (как обычно), вы можете скрыть пароль только для части вашей команды. Если вы не хотите раскрывать пароли базы данных, используйте соединение с базой данных JNDI. Это делает пароли видимыми только для администраторов сервера приложений.

person oliver.d    schedule 31.03.2013