Соляное место, соляное укрытие - PullRequest
0 голосов
/ 16 февраля 2012

У меня есть вопрос относительно следующего сценария:
Я хочу использовать jasypt для шифрования своего пароля и использовать определенную соль для шифрования.

Имеет ли смысл (или есть какие-либо последствия для безопасности), если:
Я использую шифрование на основе пароля, чтобы зашифровать соль с помощью пароля, который я получаю из переменной среды, таким образом, я могу зашифроватьзначение соли в файле свойств, получить его оттуда, расшифровать его с помощью пароля, который я получаю из переменной среды (на самом деле я собираюсь получить объект EnvironmentStringPBEConfig, который, в свою очередь, получает переменную среды из объекта EnvironmentStringPBEConfig и удаляет переменную средыкак только EnvironmentStringPBEConfig будет создан) и, наконец, использовать соль.

Спасибо.

Редактировать: обратите внимание, что я хотел бы знать, является ли "прятание" соли, как описано выше, хорошей практикой, сейчас я не реализую такое решение.

РЕДАКТИРОВАТЬ: Также обратите вниманиеследующие рекомендации от OWASP .

Рекомендация: затруднить кражу всей соли

Существует ряд дополнительных рекомендуемых улучшений основного механизма посола для рассмотрения:

Имейте дополнительную «системную» соль, которая является фиксированным значением для всей системы.Это должно быть где-то храниться в файле конфигурации.Это фиксированное значение не нужно будет включать в каждую резервную копию, что делает злоумышленнику еще сложнее скомпрометировать все элементы, необходимые для правильного вычисления значения хеш-функции.Встраивание части системной соли в исходный код.Это не было бы полезно для открытого исходного кода, но для пользовательских приложений наличие части вашей системной соли в коде было бы еще одним элементом, который требуется злоумышленнику для правильного вычисления значения хеш-функции.Создание новой соли для учетной записи при каждом изменении пароля пользователя.

Рекомендация: выделение соли

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

1 Ответ

2 голосов
/ 16 февраля 2012

Почему вы хотите зашифровать соль? Соли, как правило, являются общедоступной информацией - они существуют только для предотвращения заранее вычисленных «автономных» атак на базы данных паролей. Я думаю, вам нужно уточнить, что вы пытаетесь сделать и почему.

...