Просмотр полной версии : дабл md5
вот я так подумал(я могу думать!) что если выполнять шифрование md5 дважды? код это особо увеличивать не будет:
вместо
md5($password);
будет
md5(md5($password));
а вот брут этого будет сильно затруднён т.к. расшифровать хеш в хеше будет наааамного сложнее!
ну что вы думаете по этому поводу?
Я тоеж атк думал ,непомню уже что надумал но как мне показалось разницы нету :)
GreenBear
23.05.2007, 00:19
будет сложнее в 2 раза.. точнее медленее ..
будет сложнее в 2 раза.. точнее медленее ..
ну вот если взять пароль "password" то его md5 хеш будет равен 5f4dcc3b5aa765d61d8327deb882cf99 а дважды md5 будет 696d29e0940a4957748fe3fc9efd22a3 в итоге в базе храниться такой же по размеру хеш,а вот расшифровать его я бы не сказал что в 2 раза труднее(медленнее),ведь при расшифровке просто md5 хеша в среднем где-то на 6-10 символах расшифровываеться а тут 33 символа да ещё фиг догадаешься что это дважды зашифрованно.
хм в 3 крякми от без гуя тоже было что то вроде for 1 do 100000 begin md5('string');
Ну и все равно его сломали подбором меньше чем за 2 дня .
Хм, с трудом вериться что такое можно сломать.....
Как ты расшифруешь хеш хеша?
Впринципе если знать что именно так хешируется:
md5(md5($password));
то подбор замедляется,грубо говоря в 2 раза.
(Всё зависит от вычислительных способностей)
scrat,чтобы подобрать пароль к хешу надо:
1)md5(md5($password_brut));где $password_brut-пароль из словаря и.т.д
2)сравнить :
md5(md5($password_brut))
и
хеш который ломаем.
А зачем подбирать коллизии нам помогут =)
Digimortal
23.05.2007, 00:56
брутфорс в данном случае не будет особо затруднен, особенно если знать алгоритм..
гораздо эффективнее использовать более сложные алгоритмы с применением salt..
md5(base64_encode(md5($password)));
Хотя тоже сложного ничего, если знать какой алгоритм =\
fucker"ok
23.05.2007, 01:04
Всё верно. Если знать алгоритм, то брут затрудниться в два раза, а если не знать, то чтобы dc5f4c3b5aa765d61d8327deb882cf99 превратилось в 696d29e0940a4957748fe3fc9efd22a3 понадобиться пара сотен лет (если без коллизий. Чистый брут)
md5(md5($string));
Ломаеться так:
Первым делом подбираем строку к хешу чтобы она была равна 696d29e0940a4957748fe3fc9efd22a3=5f4dcc3b5aa765d61 d8327deb882cf99
а дальше брутим 5f4dcc3b5aa765d61d8327deb882cf99 как обычный хещ так что не вижу сособой сложности ^^ тем более что MD5 работает сотые доли секунды на 1 пентиумах ;)
По-моему не ахти надежно, т.к. количество коллизий с увеличением количества процедур хеширования увеличивается в геометрической прогрессии, т.е. казалось бы расшифровать труднее, а оказывается, в разы проще...
nc.STRIEM
23.05.2007, 10:26
а вот если использовать соль, то это действительно затруднит (естественно есле ты ее не знаеш).
По-моему не ахти надежно, т.к. количество коллизий с увеличением количества процедур хеширования увеличивается в геометрической прогрессии, т.е. казалось бы расшифровать труднее, а оказывается, в разы проще...
да
Увеличивается нагрузка на серв и время расшифровки, вот и всё=\
О том, как был взломан crackme 3 Bad guy'a, где брался 30000 раз хеш от пароля (http://cracklab.ru/art/?action=view&id=234)
p.s. Правда там пасс был четырехсимвольный...
Делаем так, если пишем, например, авторизацию на свой мега-секурный-CMS:
1. Генерируем рандомную соль
2. Используя соль криптуем пароль md5(md5($password . $salt));
3. Пишем в БД и соль и криптованый пароль
4. При авторизации берем отправляемый нам пароль, выдираем из БД соль, криптуем и сравниваем получившееся с паролем в БД
В куках пишем только пароль и можно замуту с сессиями сделать :) И если сопрут куки и при наличии фишки с сессиями - взлом аккаунта быстро просечется (на своей CMS я сделал логирование подобных попыток авторизации, если вдруг ломятся не с того IP, который прописан в сессии).
И если сопрут куки и при наличии фишки с сессиями - взлом аккаунта быстро просечется (на своей CMS я сделал логирование подобных попыток авторизации, если вдруг ломятся не с того IP, который прописан в сессии).
Не факт что такая попытка авторизации является взломом. К примеру: сидит человек в инете через GPRS, т.к. сама посебе это штука ненадежная, канал рвется. Человек соединяется еще раз, dhcp выдает ему новый IP. Чел обновляет страницу в браузере, которому на махинации с реконнектами наплевать, и тут твоя CMS орет: "Аааа!!! Подлый хакир!!!".
Некрасиво выходит...
ИМХО, лучше просто включить привязку сессии к IP в настройках PHP. Тогда и сессию не сопрут, и левых логов не будет, и клиента обзывать не будут), просто попросят войти заново.
Никто и не говорит - просто в системе останется запись об этом - и если пользователь обнаружит, что, скажем, во время его отсутствия кто либо заходил под его пользователем - он может принять какие-либо меры.
p.s. система его пропускает дальше и генерирует новую сессию с его IP.
p.s. система его пропускает дальше и генерирует новую сессию с его IP.
А если действительно угнанная сессия?
Если угнаная - тогда это фиксируется в логах авторизаций, я же уже написал тебе про это. Конечно - возможности XSS отрицать на 100% нельзя (спереть сессию получится только так), но логи авторизаций позволяют отслеживать несанкционированные авторизации.
P.s. я начинал говорить об авторизации и крипте пароля - система сессий вообще не к разговору.
всё это хорошо но без админского пасса хрен узнаешь как шифруеться(замкнутый круг) кстати было бы неплохо написать сложный алгоритм который добавляет к паролю определённую строку причём чтобы эта строка зависила от логина
зы ещё одна тема.шифровать md5 N раз,а N=ord($login[0]); :D если злоумышленник будет знать этого то вааще круто будет
зызы чёто меня криптография пропёрла дайте пару ссылок на книги по ней
censored!
23.05.2007, 17:07
Когда ты регистрируешься, то возможно что хэш пароля будет у тебя в куках.
Когда он у тебя в куках (и ты ведь знаешь свой пароль) то можешь на своем пароле и хэше попытаться пробрутить алгоритм (т.е. попытаться пределить как был сгенерен пароль). При условии что не используется соль (или она была взята из словаря).
Вопрос топик-стартеру: Ты когда-нибудь открывал программы для брута md5? Или ты прямо из них методы перечисляешь?)))
Ломаеться так:
Первым делом подбираем строку к хешу чтобы она была равна 696d29e0940a4957748fe3fc9efd22a3=5f4dcc3b5aa765d61 d8327deb882cf99
а дальше брутим 5f4dcc3b5aa765d61d8327deb882cf99 как обычный хещ так что не вижу сособой сложности ^^ тем более что MD5 работает сотые доли секунды на 1 пентиумахСам придумал?, я бы посмотрел как ты будешь брутить 16 в ТРИДЦАТЬ ВТОРОЙ степени комбинаций :D, хотя нет, я до окончания не доживу)))
Посчитаем?
Если хороший комп, то примерно 30'000 паролей в секунду
power(16{символов в таблице}, 32{длина пароля})/30000{паролей в секунду}/60{секунд в минуте}/60{минут в часе}/24{часов в день}/360{дней в году} ~ 364700000000000000000000000 лет =)
Можешь начинать брутить md5(md5('a')) :D
Когда ты регистрируешься, то возможно что хэш пароля будет у тебя в куках.Кажется пароли так уже никто не хранит... Иначе чем людей сессии не устраивают.
Сессию можно привязывать по желанию пользователя как к IP так и хэше юзер-агента.
Thanat0z
24.05.2007, 06:02
Да, поддержу hidden : кг/ам. md5(md5($password)) ерунда и ничего особого и нового в шифровке собой не представляет. Короче учи матчасть
если сделать так
md5(sha1(sha1($password+'123') . md5($password)));
то незная алгоритма это хрен кто сбрутит.
аmd5(md5($password))
брутится не намного сложнеее md5($password)
аmd5(md5($password))
брутится не намного сложнеее md5($password)
я не врубаюсь как так можно его быстро сбрутить!hidden написал примерное кол-во времени
2hidden: комп п4,2Ггц брутит 3млн. паролей/сек. так что ты ошибся
так что ты ошибся
я шото невьехал де я ошибся
2hidden: комп п4,2Ггц брутит 3млн. паролей/сек. так что ты ошибсяЗначит мой комп не такой уж и хороший. 2.7Ghz double core или ты брутишь другой метод у меня md5(md5($pass)+$salt), просто не хотел отчищять лист)))
я шото невьехал де я ошибсяДа не ты ошибся :D
Значит мой комп не такой уж и хороший. 2.7Ghz double core или ты брутишь другой метод у меня md5(md5($pass)+$salt), просто не хотел отчищять лист)))
Да не ты ошибся :D
я про мд5 брут говорил :D
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot