Защита хэшей MD5

  • Автор темы [phpbb]
  • Дата начала

Crazy

Developer
Автор оригинала: Compote
впринципе толк есть. хоть и маленький, но есть.
Как я уже писал, достаточно просто поменять местами крайние символы. Хацкеры просто обделаются... :)

BTW, теорема на закуску: композиция md5 СНИЖАЕТ криптостойкость. Кто первый докажет -- тому кружка почтового пива. :)
 

Burunduk-13

[CBT], Старожил РНРClub'a
>теорема на закуску: композиция md5 СНИЖАЕТ криптостойкость. Кто первый докажет -- тому кружка почтового пива.
Есть мысль:
Обозначим множествл всех вариантов 32-х символьных комбинаций [A-F0-9] через A. Количество комбинаций A = N. N - это количество разнообразных md5 хэшей. Скорее всего в множестве состоящем из md5(елементов множества А); количество уникальных елементов будет меньше, так как не думаю, что md5 сможет для N различных строк вернуть N различных хешей. (N - максимальное кол-во разнообразных хешей)... Следовательно уменьшаеться количество разнообразных значений, которое может иметь поле password.
Еще одна мысль:
При многократном хешировании может увеличиться вероятность такого: md5(md5(....(md5('Super_puper_Strong_PassoWord')))...) = md5(md5(md5(...(md5('1')))..);
Извините за не очень понятное изъяснение мыслей, но надеюсь суть понятна.
 

Макс

Старожил PHPClub
композиция md5 СНИЖАЕТ криптостойкость
md5 - имеет ограниченное число вариантов
а пароль (если программист не ставит узких ограничений) имеет гораздо больший диапазон вариантов.
то есть множество паролей больше чем множество md5-хешей от этих паролей.
(не знаю, насколько ясно изложил свою мысль)


ЗЫ
кстати насколько мне известно лучше юзать SHA-1 или HMAC-MD5 в качестве хеш-функций
 

si

Administrator
?
md5 - имеет ограниченное число вариантов
а пароль (если программист не ставит узких ограничений) имеет гораздо больший диапазон вариантов.
то есть множество паролей больше чем множество md5-хешей от этих паролей.
(не знаю, насколько ясно изложил свою мысль)
кол-во вариантов для md5:
2^128_=_3,402823669209E38

предположим что человек использует для своих паролей алфавит в 255 символов
log(255;3,402823669209E38)_=_16,01130110283

т.е. для такогоже кол-ва вариантов надо иметь пароль в 16 символов длинной. много знаете такиз юзеров ?
 

si

Administrator
кстати насколько мне известно лучше юзать SHA-1
еще есть GOST, на сколько я помню обладает приличной криптостойкостью и у него 256 бит, что дает 2^256 - _1,157920892373E77 ну очень много по моему :)
 

ONK

Пассивист PHPСluba
А не 512бит? Я где-то отмечал что 512, или ошибаюсь?
 

Макс

Старожил PHPClub
si
ну это было лишь мое предположение по поводу высказывания
Crazy :
композиция md5 СНИЖАЕТ криптостойкость
Насколько я понимаю - оно чисто теоретическое и предполагает чисто теоретические доказательства.
 

Crazy

Developer
Автор оригинала: Burunduk-13
Скорее всего в множестве состоящем из md5(елементов множества А); количество уникальных елементов будет меньше
Обещанное почтовое пиво: [])
 

Burunduk-13

[CBT], Старожил РНРClub'a
Автор оригинала: Crazy
Обещанное почтовое пиво: [])
А в чем заключаеться его почтовость??? И можно не пива, а натуральный сок. Пиво не рулит
Почтовый натуральный сок.. это рулит
 

Yurik

/dev/null
впринципе толк есть. хоть и маленький, но есть.
очевидно кто-то кого-то непонял. Что толку от хешированного пароля к емейлу? Тоже самое что и хранить хеш от пароля к мускулу.
 

antonio

Moderator
Команда форума
Есть еще одна интересная задачка. В проге делается проверка контрольной суммы самой себя по какому-нть алгоритму вычисления контрольной суммы и мы можем дописывать всякий мусор в конец файла.

Задача.

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

Теоретический вопрос.

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

Данная задача родилась в процессе размышления над проблемой защиты от взлома кодированных (или скомпиленых в байт код) РНР скриптов.
 

Quest

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

Alien

Новичок
Если есть угроза того, что сопрут БД но не сопрут исходники, то:

define('MY_KEY', 'любой бред');
$pass = $_POST['pass'];
$md5pass = md5($pass.MY_KEY);

$query = "select ... where pass = $md5pass";

Таким образом хакеру прийдется еще и угадать что же находится в MY_KEY
 

PhpDeveloper

Guest
Построить алгоритм вычисления мусора таким образом, чтобы контрольная сумма файла совпала с проверяемой. Т.о. хеш будет храниться в самом файле а не вне его.
Вставить проверку контрольной суммы в php скрипт, подлежащий закодированию, просто. Для этого нужно лишь проверять контрольную сумму не от всего файла, а от начала файла и до строки, вероятность появления которой при кодировании Encoderom ничтожно мала. После кодирования дописать эту строку и контрольную сумму.

Только абсолютно непонятно, как это защитить php скрипт от взлома.
 

wanderer

PHP - rulez!...
объясните не понимающему: почему есть бред хранит md5 пароли в БД?
 

Ilia

Guest
Тык до чего договорились.. ? Композиция МД5 есть рулез, потому что усложняет перебор ?
 

young

Новичок
Композиция МД5 есть рулез, потому что усложняет перебор ?
Композиция из N md5 усложняет ровно в N раз
Т.е. md5(md5()) в два раза сложнее чем md5()
Что довольно мало и не стоит того.

А пароли длинее 8ми символов практически не реально подобрать за разумные сроки
 

Ямерт

The Old One
А пароли длинее 8ми символов практически не реально подобрать за разумные сроки
Можно ещё после n-ного неправильного ввода пароля в рамках одного сеанса, делать sleep на m секунд.
 
Сверху