У меня есть вопрос относительно следующего сценария:
Я хочу использовать jasypt для шифрования своего пароля и использовать определенную соль для шифрования.
Имеет ли смысл (или есть какие-либо последствия для безопасности), если:
Я использую шифрование на основе пароля, чтобы зашифровать соль с помощью пароля, который я получаю из переменной среды, таким образом, я могу зашифроватьзначение соли в файле свойств, получить его оттуда, расшифровать его с помощью пароля, который я получаю из переменной среды (на самом деле я собираюсь получить объект EnvironmentStringPBEConfig, который, в свою очередь, получает переменную среды из объекта EnvironmentStringPBEConfig и удаляет переменную средыкак только EnvironmentStringPBEConfig будет создан) и, наконец, использовать соль.
Спасибо.
Редактировать: обратите внимание, что я хотел бы знать, является ли "прятание" соли, как описано выше, хорошей практикой, сейчас я не реализую такое решение.
РЕДАКТИРОВАТЬ: Также обратите вниманиеследующие рекомендации от OWASP .
Рекомендация: затруднить кражу всей соли
Существует ряд дополнительных рекомендуемых улучшений основного механизма посола для рассмотрения:
Имейте дополнительную «системную» соль, которая является фиксированным значением для всей системы.Это должно быть где-то храниться в файле конфигурации.Это фиксированное значение не нужно будет включать в каждую резервную копию, что делает злоумышленнику еще сложнее скомпрометировать все элементы, необходимые для правильного вычисления значения хеш-функции.Встраивание части системной соли в исходный код.Это не было бы полезно для открытого исходного кода, но для пользовательских приложений наличие части вашей системной соли в коде было бы еще одним элементом, который требуется злоумышленнику для правильного вычисления значения хеш-функции.Создание новой соли для учетной записи при каждом изменении пароля пользователя.
Рекомендация: выделение соли
Дополнительный механизм защиты хранения пароля предусматривает хранение соли в другом месте, чем хеш пароля.Использование файловой системы сервера - это один из наиболее часто используемых механизмов для солевой изоляции, предполагая, что хэши паролей хранятся в разных местах, таких как база данных или сервер LDAP.Этот механизм защиты снижает риск кражи пароля при краже файла базы данных, поскольку соли не будут включены в данные базы данных.Следите за тем, чтобы хеши паролей и солей не создавались вместе, они также должны создаваться изолированно.