2015-02-23 2 views
0

Будет ли хорошей идеей безопасно хранить соли с удалением их последнего персонажа, а затем наложить на нее последнего персонажа, чтобы увеличить количество времени, которое потребуется для создания радужных столов и т. Д.? Это предполагает, что используемым алгоритмом хэширования является Whirlpool.Является ли bruteforcing последний характер соли хорошей идеей?

Это приведет к тому, что логины займут немного больше времени, но это будет ограничение на скорость перебора, которую нельзя обойти, как это делают другие методы.

Заранее спасибо.

+0

http://security.stackexchange.com/ – taesu

+0

Рассмотрите возможность перехода на [bcrypt] (https://en.wikipedia.org/wiki/Bcrypt), который [намеренно разработан, чтобы быть медленным сейчас и продолжать медленно будущее] (https://en.wikipedia.org/wiki/Key_stretching). – Schwern

ответ

1

Нет. Соли предназначены для полного изменения струны. Если вы считаете, что соль легко эксплуатируется, вы должны сделать больше солей или изменить хэш. Кроме того, каждый раз, когда вы будете использовать соли, вам понадобится много необработанного грубого принуждения.

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

+1

Кроме того, количество времени, которое нужно найти одному персонажу, было бы незначительным – nLee

0

Чтобы уяснить одно: если пользователь пытается использовать brutforce некоторые данные для входа, сама соль-сложность на самом деле не имеет значения. Каждое небольшое изменение сильно влияет на хеш, поэтому ему нужен свежий набор радужных столов.

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

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

+0

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

0

Нет, это не было бы хорошей идеей, это пропустит цель соли. Уникальная соль на каждый пароль позволяет злоумышленнику получить все пароли одновременно с одним радужным столом. Он делает это, даже если соль известна, и лучше не смешивать ее с другими «улучшениями».

Время, необходимое для игры с мини-грубой силой, лучше потратить на более высокий коэффициент затрат. Тем не менее, вы должны перейти на алгоритм, который предлагает коэффициент затрат и требует определенного времени для вычисления хэша (BCrypt, PBKDF2 или SCrypt).

На самом деле вы пытаетесь добавить секретный код сервера в хэш (злоумышленник должен выяснить, что один символ отсутствует и должен быть грубым). Добавление такой тайны может быть сделано гораздо более эффективным способом. Просто зашифруйте (в двух направлениях) уже вычисленный хеш с сильным ключом на стороне сервера, таким образом, злоумышленник должен узнать о ключе, прежде чем он сможет начать грубое форсирование. Вы можете найти более подробное объяснение в конце моего tutorial о безопасном хранении паролей.

 Смежные вопросы

  • Нет связанных вопросов^_^