Найти соль в зашифрованном хеше - PullRequest
1 голос
/ 25 августа 2011

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

Вариант использования: я хочу найти слабый пароль, ссылающийся на список доступных хэшей.Для этого мне нужно сравнить хеш каждого известного / общего слова с доступным хешем.Все это делается в C ++ для Unix с использованием openssl / blowfish.h

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

Мой вопрос здесь, как я могу извлечь соль из хэшей паролей.Предположим, вот мой хеш:

$ 2a $ 10 $ FTx8T5QrEbxYVe.NJ6iOhuei.V9qgl60xF8 / 8s7iZRDIlOl.ibDEW

Что в этом соль?или как мне достичь цели?Любой указатель был бы хорош !!

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

Ответы [ 3 ]

2 голосов
/ 25 августа 2011

Просто передайте хеш пароля как соль - он достаточно умен, чтобы извлечь себя. Это соглашение crypt()

См. Как работают пароли в Unix, Mac OS и Windows в Современный Unix и хэширование в стиле BSD .

Примечание: параметр salt в crypt() НЕ является солью. Это $algorithm$salt$MORESALTsomething, поэтому вы никогда не должны добывать соль самостоятельно. - он называется salt по историческим причинам (эпоха DES).

См. Также Почему crypt / blowfish генерирует одинаковый хеш с двумя разными солями?

1 голос
/ 25 августа 2011

«Соль» хэш-функции пароля соединяется с паролем, а полученная строка затем хэшируется. Чтобы вернуть соль, это означало бы, что вам нужно вернуть строку, которая была хэширована. Очевидно, что это имеет две основные проблемы:

  1. Если вы сможете вернуть эту хешированную строку, она также будет содержать текстовый пароль. Это было бы серьезным нарушением безопасности хэш-функции.
  2. Вы также должны выяснить, какая часть объединенной строки является солью, а какой пароль.
0 голосов
/ 25 августа 2011

Не в этом ли смысл соли?Что ты не знаешь что это?Так что никто не может прийти и сделать то, что вы пытаетесь сделать сейчас?

Я понимаю соль следующим образом:

  • У вас есть строка, давайте назовем ее password.
  • А у вас есть и алгоритм, который берет строку и выдает из нее хеш.Давайте назовем это blowfish
    • это даже правильно?Является ли Blowfish алгоритмом хеширования?Я так не думаю !!!
    • Давайте назовем наш алгоритм md5.
  • md5 создаст хеш для password, но он всегда будет выдавать один и тот же
  • У тебя плохой парень.Давайте назовем его Mrun.
  • Mrun пытается выяснить password, протестировав md5 с кучей известных паролей из словаря
  • , не используя просто password, но вместо password + salt создается другой хеш, а Mrun срывается.

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

...