LINUX.ORG.RU

SHA1+MD5


0

0

Есть ли смысл для обеспечения большей устойчивости хеша пароля, который потенциально может быть в открытом доступе, вычислять хеш следующим образом: sha1(md5($password)) ?

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

В противном случае просто используй стойкий хеш (например, SHA-512) и не парься.

Лучше подумай о добавлении проверок на сложность пароля.

nnz ★★★★
()

> sha1(md5($password))
Нет, это безопасность не повышает.

SHA-512

сложность пароля


ППКС

Lumi ★★★★★
()

Лучше делать sha256(sha256( $password) + «Длинная НЕ секретная фраза» )
Или

str = password
for 1 000 000 do
   str = sha256(str)
anonymous
()
Ответ на: комментарий от xorik

md5( $password + «Длинная секретная фраза» )

Вот так делать не надо 3 раза. 1) Никаких МД5, оно уже взломано. SHA256, SHA512 и т.п. 2) Никаких хэшей от суммы строк. 3) Секретная фраза не нужна.

shaXXX(shaXXX( $password + «Длинная фраза, разная для каждого пароля и хранящаяся вместе с итоговым хэшем открыто» ))

shaXXX(shaXXX($password) + «Длинная фраза, разная для каждого пароля и хранящаяся вместе с итоговым хэшем открыто» )

Шаг 1)
A = Hash(Hash(Password) + Salt)
Или
A = Hash(Hash(Password + Salt))

Шаг 2)
repeat 10000000 // Или сколько ждать не надоест
  A = Hash(A)

Шаг 3)
 Наслаждаемся отличным хэшем
anonymous
()
Ответ на: комментарий от anonymous

1) Таким образом благодаря публичной «соли» делаем невозможность взламывать по обратному словарю. Для каждой «соли» надо будет свой словарь на все пароли иметь, что резко увеличивает его размеры.

2) Благодаря множеству итераций резко увеличивается время на перебор паролей. Потребуется много времени взломщику.

anonymous
()
Ответ на: комментарий от Windos7

>а вот вопрос, допустим знаю содержимое /etc/shadow, как получить исходные пароли? (физический доступ к тачке есть)

John The Ripper, полагаю :)

nnz ★★★★
()
Ответ на: комментарий от Windos7

Выбирай
http://en.wikipedia.org/wiki/Category:Password_cracking_software
Но, насколько я понимаю (могу ошибаться) sha512 пока никто ломать не обучен
$ grep sha512 /etc/pam.d/system-auth
password   required   pam_unix.so try_first_pass use_authtok nullok sha512 shadow
Какой тип хеширования у тебя в федоре 12?

Lumi ★★★★★
()
Ответ на: комментарий от xorik

Только для первого прообраза. В остальном - по барабану

vasily_pupkin ★★★★★
()

Всем спасибо за ответы. Благодаря вам узнал новые отличные методы хеширования.

Chaser_Andrey ★★★★★
() автор топика
Ответ на: комментарий от nnz

пароль можно будет взять брутфорсом (за приемлемое время на приемлемых системных ресурсах) — совершенно пофигу, сколько и в каких комбинациях будет хеширований.

Теоретически это возможно, но практически еще даже с несчастным MD5 до конца не разобрались (в плане составления полной БД по всем хешам), куда уж там SHA... Полную базу SHA-512-хешей в лучшем случае лет через 20 получат (если будут использовать хорошую сеть из мощных компьютеров), но к тому времени, думаю, шифровать будут уже по другим алгоритмам.

Так что ТСу можно не париться и использовать просто SHA (даже 160-битный).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

>>пароль можно будет взять брутфорсом (за приемлемое время на приемлемых системных ресурсах) — совершенно пофигу, сколько и в каких комбинациях будет хеширований.

Теоретически это возможно, но практически еще даже с несчастным MD5 до конца не разобрались (в плане составления полной БД по всем хешам), куда уж там SHA...


В той реплике я имел в виду прежде всего пароли вида qq, [eq, 111, qwerty, 123456 и gfhjkm :)
Берутся по словарю или простым перебором.

Что касается выбора алгоритма — здесь лучше перебдеть, чем недобдеть. Зачем использовать менее стойкий хеш, если можно взять более стойкий?
Ну и, конечно, соль спасет от обратных словарей.

nnz ★★★★
()
Ответ на: комментарий от Lumi

> sha1(md5($password))

Нет, это безопасность не повышает.

Это почему?

Booster ★★
()
Ответ на: комментарий от Lumi

>Но, насколько я понимаю (могу ошибаться) sha512 пока никто ломать не обучен
Брутфорсом не проблема, но какой толк? MD5 тоже или по словарю или брутфорсом. Но брутфорсом и MD5 задолбаешся ждать.

Booster ★★
()
Ответ на: комментарий от Windos7

> собственно а линукс на что опирается когда делает пароли?
В твоём случае на параметр, задающий тип хеша в секции password у PAM.

Lumi ★★★★★
()
Ответ на: комментарий от Booster

> Брутфорсом не проблема, но какой толк? MD5 тоже или по словарю или брутфорсом. Но брутфорсом и MD5 задолбаешся ждать.

Да не проблема, разумеется. Вопрос в другом, наверняка прямое попадание в лоб^Wпароль можно получить только на очень простом пароле, на пароле сложном скорее всего наткнётесь на коллизию (одну из коллизий), которая для более сложного алгоритма хэширования и с большей длинной ключа встречается гораздо реже.

Поэтому sha1(md5($password)) не увеличит стойкость пароля по сравнению с просто sha1. Увеличит только (не сильно) время поиска коллизий, не снизив вероятности их появления.

Lumi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.