LINUX.ORG.RU

MD5 благо или бич общества?

 , , , ,


0

1

Мне нужен алгоритм хеширования подобный md5, но я не знаю, стоит ли его использовать ибо раз есть сервисы подобные http://md5list.ru/ (не реклама), то вполне ожидаемо, что любой пользователь (обладающий навыками программирования на си) сможет попытаться расшифровать пароли из базы данных путем генерации слов и их хешей с сопоставления с хешами из базы данных.

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

Многие начинающие программисты говорят об эффективности md5 хеш, но забывают, что дешифровке подвергается все пароли из базы данных. т.е. У нас есть большая база данных пользователей (около 100 тысяч) и украденное приложение. Читая исходники мы рассматриваем алгоритм соления, а затем наши пароли из бд сортируем для того, чтобы было удобно использовать бинарный поиск. Начинаем перебор всех возможных вариантов попутно проверяя их на базе данных (которая находится в оперативной памяти - объемы позволяют) и за сравнительно короткое время получаем небольшой такой список расшифрованных паролей.

конструкцию md5(соль1+md5+соль2) считаю нехорошей вещью, ибо количество коллизий возрастает. Если я ошибаюсь - прошу объяснить почему.

p.s. просьба сильно не пинать, если сморозил глупость. Уровень в создании программ - джуниор, а как криптограф - ноль.



Последнее исправление: cetjs2 (всего исправлений: 3)

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

т.е. Вы предлагаете шифровать пароли, а не хешировать? ммм, а где можно хранить ключ (или ключи) которые использовались для шифрования? Или пусть их запоминают сами пользователи?

frozfox
() автор топика

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

У каждого акка - своя. Пишется рядом с паролем в базе.
Радужные таблицы от этого в «диком восторге» и становятся не интересны.

Kuzz ★★★
()

Разбивай текст на абзацы, а то нормльные люди же не могут это чтать.

Подобные сервисы могут быть созданы для любых хэш-сумм. Надо использовть блочные шифры в режие со счётчиком.

Deleted
()
Ответ на: комментарий от Y

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

frozfox
() автор топика

ваша база 2^17

их база 2^19, из общего числа вариантов 2^128.

вероятность того что один и тот-же хеш есть в обоих базах, где-то 2^-80.

а соль нужна чтоб один и тот-же частый пароль «123123» давал разный отпечаток в разных базах (под разной солью);

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

Я даже не думал о таком, попытаюсь понять, что и как)

frozfox
() автор топика
Ответ на: комментарий от MKuznetsov

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

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

опасаюсь того, что сольют базу данных, а также само приложение

компрометация хешей, даже вместе с солью, не равнозначна компрометации паролей.

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

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

ой, я как-то не подумал, можно же самостоятельно генерировать пароль и давать его пользователю, да - не очень удобно, зато слитая база данных не повредит юзерам =)))))))

frozfox
() автор топика

SHA-3 спасёт отца русской демократии!

Dark_SavanT ★★★★★
()

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

если оно всё в одном месте, сумеет, а если нет, то толку от базы не будет. пароли только солить.

md5, sha1, и другие никогда не предусматривались для шифрования паролей.

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

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

А что насчет авторизации через такие сервисы как гугл, яндекс и т.п.? Имеет ли такой способ право на жизнь по той причине, что не потребуется хранить пароли у себя?

с точки зрения «высокой безопасности и криптографии», кто такие гугл, яндекс ? Есть CA (http://ru.wikipedia.org/wiki/Центр_сертификации) и собственно всё..Но это из другого мира больших денег, грамотных юзеров, ответственных админов

С практической точки зрения - почему нет ? Всякие «вход по вконтакту» равнозначны что юзер хранит пароль на почте или использует схожие пароли на разных сайтах (и то и то в 80% так и есть).

Конечно «взлом» учётки вконтакта или почты автоматически приведёт к порче учётки у вас. Зато у «взрослых дядей» за безопасностью следят явно лучше сможете вы.

Так что удобство _общего_входа_ пересиливает возможные риски.

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

У нас есть большая база данных пользователей (около 100 тысяч)

я так понимаю, что нужно использовать качественный хостинг

это такой тонкий троллинг?

или мечтания о «щас как сделаю супер-сервис нуу очень всем нужный и чтоб хакиры обламались» ?

MKuznetsov ★★★★★
()

всегда использовал md5(userName . md5(passwd)) коллизий не встречал, подборов тоже.

vtVitus ★★★★★
()

Почитай в википедии про соль.

И не используй md5, используй sha-512.

Legioner ★★★★★
()

Сначала шифруй лучше два раза, потому бери md5. Будет долго. Соль или каждому своя или ненужна. Или, как вариант, сделай 256 вариантов соли и для выбора бери xor от логина. Так и соль будет разнообразна, и хранится будет отдельно от базы, что тоже в +. Код преобразования паролей обфускай или вообще не на php сделай, а соль захардкорь в него.

Suntechnic ★★★★★
()

Для паролей есть bcrypt, scrypt и PBKDF2, простой хеш подбирается слишком быстро, особенно такой короткий и уязвимый, как MD5.

Вообще есть keccak и blake2, использовать устаревшие хеши нужды нет.

quantum-troll ★★★★★
()
Ответ на: комментарий от true_admin

В частности про то что пароли можно хранить на внешнем девайсе типа usb-донгла. В таком случае взлом сервера не страшен, если только его физически не спёрли. В общем, смотри доклад.

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

подобный md5 - такой же криптостойкий. Я только начал заниматься разработкой вообще и под веб в частности и мне бы совершенно не хотелось стать причиной потерей пользователями своих данных =)

frozfox
() автор топика
Ответ на: комментарий от true_admin

thanks=) ох, придется сидеть с переводчиком или словарем, но судя по всему - стоящая вещь))))

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

подобный md5 - такой же криптостойкий

ЭЭэээ.... Такой же криптостойкий? Но не md5? Даже не знаю что тебе посоветовать.. SHA-1 недостаточно такой же, конечно, но md4 наверное уже перебор :D

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

Ну не смейтесь =D я просто хочу обеспечить сохранность данных))) мд5 довольно популярен среди php, а знакомых рельсовых и рубиновых программистов нет =)

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

в общем, буду смотреть в сторону keccak (sha3-512) =) а также на будущее буду набирать информации про альтернативные методы авторизации (съемный носитель и т.д.) =)

frozfox
() автор топика

А если я не просто храню md5(password) в табличке hash, а, скажем md5(md5(md5(123456)+login)+password) то что делать-то?

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

Двух факторная авторизация тебе в помощь

catap ★★★★★
()

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

Охлол.

а как криптограф - ноль.

Да.

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