Коллизии Md5.

Discussion in 'Криптография, расшифровка хешей' started by FHT, 22 Apr 2006.

  1. FHT

    FHT Elder - Старейшина

    Joined:
    21 Sep 2005
    Messages:
    454
    Likes Received:
    212
    Reputations:
    168
    Вообщем нашел в сети пару ресурсов и статеек про колизии в Md5 хешировании.
    Слил себе исходники которые они предлагают к использованию, и не один из них не заработал, как не странно...
    Кто что слышал про сабж и может у кого есть софтина необходимая...
     
  2. Dronga

    Dronga ВАША реклама ТУТ!!

    Joined:
    1 Jul 2005
    Messages:
    575
    Likes Received:
    239
    Reputations:
    249
    Не думаю что тут возможно существование какой-то софтины, если только такой же брутер. Суть колизий в том что на один хешь имеется более одного возможного входного значения. Если я всё правильно понял, то ты хочешь чтобы некая программа показала тебе альтернативный вариант. А откуда она его возьмёт?? Возвращаемся к привычным таблицам и брутерам.... По другому, насколько я знаю, невозможно.
     
  3. Elekt

    Elekt Banned

    Joined:
    5 Dec 2005
    Messages:
    944
    Likes Received:
    427
    Reputations:
    508
    Есть такая тема.
    madnet ещё писал об этой новости.
    Взлом Md5 хеша за 8 часов

    Я очень удивлён, что все так скромно пропустили этот факт, так как:
    По сути, это замена бруту md5\md4 хэшей со 100% нахождением коллизии ответа.

    Есть две версии программы: на сексторме и ещё где-то.
    Я долго мучался в январе с ними. Под виндой так и не запустил, но под линуксом работает на ура. 6-15 часов(в зависимости от железа) и коллизия найдена.

    И всё бы шоколадно, но как я понял - прога подбирает 32-х символьный хеш, который равен хешу md5-чек-суммы файла. Как это перенести с файловой чек-суммы на парольные хэши, до меня тогда не дошло.
    Можно счас заняться, сообразить что к чему, тогда я меньше знал и мог что-либо упустить.
    Если довести до ума, сами понимаете, даже радуга со своими терабайтными таблицами будет отдыхать.
     
    #3 Elekt, 22 Apr 2006
    Last edited: 23 Apr 2006
  4. Go0o$E

    Go0o$E Members of Antichat

    Joined:
    27 Jan 2006
    Messages:
    304
    Likes Received:
    228
    Reputations:
    419
    Вот кстати еще - http://stachliu.com/collisions.html. Тут вообще написано что md5 на Pentium 4 с частотой 1,6 ГГц формируется в среднем за 45 минут! Но тоже не смог запустить =(
     
    1 person likes this.
  5. FHT

    FHT Elder - Старейшина

    Joined:
    21 Sep 2005
    Messages:
    454
    Likes Received:
    212
    Reputations:
    168
    Спасиб большое Елект...
    Если надумаешь повозиться с прогой стукни мне в асю, есть идеи кое-какие, по поводу того что ты написал...
    Я давал сорцы Кловеру, но прога так и не заработала... Просто ИМХО это весьма солидная альтернатива бруту.

    В понедельник или завтра вечером напишу кое-какие свои соображения и идеи по этому поводу.
    Спасибо всем еще раз!
     
  6. Elekt

    Elekt Banned

    Joined:
    5 Dec 2005
    Messages:
    944
    Likes Received:
    427
    Reputations:
    508
  7. Elekt

    Elekt Banned

    Joined:
    5 Dec 2005
    Messages:
    944
    Likes Received:
    427
    Reputations:
    508
    Итак, под виндой прога наотрез оказываеться заводиться. Даже вырезав блок ошибки толку никакого - 100% пожирание процессора, но без результата.
    Есть подозрение на несовместимость железа - напрашиваеться вывод, почитав отзывы на форумах. Возможно присутствие такой зависимости, хотя почему - хз.

    Под линухой - всё замечательно - первый блок формируеться за 15 мин... А второй - надо ждать.

    Теперь самый важный вопрос - что это и как можно применить? Пример использования под линуксом(md5-хэш делиться на 4-ре части и пишется через пробел)

    Code:
    [root@localhost md5c]# ./md5coll ba1f2511 fc30423b dbb183fe 33f3dd0f
    block #1 done
    block #2 done
    unsigned int m0[32] = {
    0xbfe4a258, 0xa0bd5ba4, 0x4df671a8, 0xa49faa67,
    0xb3eeacf5, 0xeb0955b7, 0x531ca15a, 0xbb05d830,
    0x06336cd1, 0x23f1a204, 0xa748b757, 0x93f14b86,
    0x71a764d5, 0x48be87ca, 0x6a24cfab, 0x1feb2e35,
    0xfce711b1, 0x44e81989, 0xd142a4ca, 0xb3f6b0a6,
    0xa401f416, 0xebea7ad1, 0x36383908, 0xce7488d1,
    0x79363761, 0x67dbf8fc, 0x62cb427e, 0xe6c6bc7d,
    0x15ae80ec, 0x9aafbc81, 0xcb159cc9, 0x02f10aa1,
    };
    
    unsigned int m1[32] = {
    0xbfe4a258, 0xa0bd5ba4, 0x4df671a8, 0xa49faa67,
    0x33eeacf5, 0xeb0955b7, 0x531ca15a, 0xbb05d830,
    0x06336cd1, 0x23f1a204, 0xa748b757, 0x93f1cb86,
    0x71a764d5, 0x48be87ca, 0xea24cfab, 0x1feb2e35,
    0xfce711b1, 0x44e81989, 0xd142a4ca, 0xb3f6b0a6,
    0x2401f416, 0xebea7ad1, 0x36383908, 0xce7488d1,
    0x79363761, 0x67dbf8fc, 0x62cb427e, 0xe6c63c7d,
    0x15ae80ec, 0x9aafbc81, 0x4b159cc9, 0x02f10aa1,
    };
    В результате работы программы мы получаем два блока, которые соответствуют байт-кодам этих файлов. Все байты первого блока забиваем в хекс-редактор, сохраняешь. Тоже самое со вторым блоком.
    Фишка в том, что оба получившихся файла имеют одинаковую md5-чек-сумму.

    Code:
    Контрольную сумму файла можно проверить с помощью утилиты md5:
    /home> md5 mamba
    
    Для проверки контрольной суммы под Windows воспользуйтесь консольной утилитой md5sum (md5sum.exe):
    C:> md5sum.exe mamba > checksum.txt
    Основной вопрос -- как это применить? Как перенести байт-код файла на парольное применение?
    Если только предположить что где-то будет возможность вводить в пароле 256 символов - именно столько генерирует программа для каждого файла (но это фантастика!).

    Варианты:
    1) Возможно ли уменьшить величину подбираемых? Кто у нас разбираеться в криптографии?
    2) Существуют ли в природе продукты, использующие md5 и позволяющие ввести 256 символов?


    Такое гробовое молчание по столь важному вопросу... : либо я копаю абсолютно безнадёжную тему, либо это известно в узких кругах и это здесь не обсуждается. Вы хоть намекните.

    Здесь есть крутые хакеры? :) Я один разберусь,.. но к 2010 году. Высказываем свои идеи по сабжу.
     
  8. FHT

    FHT Elder - Старейшина

    Joined:
    21 Sep 2005
    Messages:
    454
    Likes Received:
    212
    Reputations:
    168
    *Что мне удалось выяснить:
    1.Нигде в сети не раскрывается суть алгоритма раскрытия коллизий MD5/SHA/SHA1 и
    прочих алгоритмов, которые используются в настоящее время в криптографии.

    2.Ниодна программа предоставленная на суд общественности не дает желаемого
    результата: т.е. ни одна из софтин не выводит коллизию для пароля, только проверка контрольной суммы файла.

    3.Возможно, все софтины работают НЕ корректно. Т.е. замены брутфорсу возможно не
    будет еще некотрое время.

    ^По материалам предоставленными Elekt`ом и найденными самостоятельно.^

    Далее я предлагаю вашему вниманию софт для "нахождения коллизий" и кое каую инфу про алгоритм MD4/5 (сорри что на англицком):
    *Исходник и бинарник (вариант I)
    http://de-face.jino-net.ru/md5coll/md5coll-a.zip
    *Исходник и бинарник (вариант II)
    http://de-face.jino-net.ru/md5coll/md5coll-b.zip
    *Исходники MD5 алгоритма на Delphi:
    http://de-face.jino-net.ru/md5coll/md5code.zip
     
    #8 FHT, 24 Apr 2006
    Last edited: 24 Apr 2006
  9. Go0o$E

    Go0o$E Members of Antichat

    Joined:
    27 Jan 2006
    Messages:
    304
    Likes Received:
    228
    Reputations:
    419
    1 person likes this.
  10. Elekt

    Elekt Banned

    Joined:
    5 Dec 2005
    Messages:
    944
    Likes Received:
    427
    Reputations:
    508
    Вобщем под виндой прога по утверждениям естествоиспытателей выдаёт первый блок через 6 часов. И это при топовой комплектации железа. У меня оригинал вылетает с ошибкой, но даже скачав патченный бинарник нет ни желания ни возможности ждать сутки результата.

    С линуксом (mandrake) результат появляется намного шустрее - первый блок - около 30 мин. Интересно то что аналогичная система у соседа на Атлоне при тойже частоте(~1.5Гц) справляется с первым блоком за 15 мин.
    Пока не понял, от чего конкретно зависит скорость, поскольку ключи оптимизации от автора
    Code:
    Compile note: for gcc use -Os and appropriate -mcpu and -mtune flags for optimal performance
    мандрива не знает(не в курсе что у него там стоит), а стандартная оптимизация при компилиции -O 3 не особо влияет на скорость(да и вообще насколько мне помнится ключ -O идёт по дефолту 2).

    Делаем эксперимент. Рыть RFC по подсчёту мд5 файла влом, пробуем тыком.
    Считаем хеш от 123 в любом генераторе хешей - 202cb962ac59075b964b07152d234b70.
    Теперь забьём в блокноте 123, сохраним и проверим мд5 суму файла утилитой md5summ. Результат одинаковый, а значит 16-й результат коллизии можно смело забить в хекс редактор, а после открыть блокнотом и полученные символы - есть наш аналог, например, пароля.

    Однако не всё так просто. Файл содержит 32*8/2=128 бит, т.е. 128 произвольных символов.
    Угу. Покажите мне приложение, которое позволяет юзать 128 символов(по паролю), причём в диапазоне от 0 до 254 ascii(ну или 0-ff hex)
    Даже с замены файла ничего особого не поднимешь. Ну, обманем IDS. Но поскольку содержимое коллизии абсолютно хаотично и не контролируемо, полезный код туда не воткнёшь. Отказ в обслуживнии если только.

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

    Вобщем, пока размер коллизии не станет более малым или позволит оставлять часть полезного кода при генерации, взлом мд5 не имеет особого практического применения и остаётся лишь достижением математиков и криптографов.
     
    1 person likes this.
  11. ProTeuS

    ProTeuS --

    Joined:
    26 Nov 2004
    Messages:
    1,239
    Likes Received:
    542
    Reputations:
    445
    >>1.Нигде в сети не раскрывается суть алгоритма раскрытия коллизий Md5/sha/sha1 и
    >>прочих алгоритмов, которые используются в настоящее время в криптографии.

    по-моему, это пишется везде - ошибка в реализации алгоритма хэширования, позволяющая реализовать коллизию на 16 (?) такте, сами подс4итайте в сколько раз уменьшив этим время на брут