Генератор MD5

Добавить на сайт Метаинформация

Другие инструменты

Алгоритм хеширования MD5

Алгоритм хеширования MD5

MD5 — это 128-битный алгоритм хеширования, созданный учёным Рональдом Л. Ривестом (Ronald L. Rivest) в начале 90-х годов прошлого века. Аббревиатура MD5 расшифровывается как Message Digest 5-ой версии.

Принципы шифрования MD5 основаны на хешировании, предполагающем формирование «отпечатков» или «сумм» в целях дальнейшей их проверки на подлинность. С помощью данного метода можно убедиться в целостности сохранности информации, а также хранения хешей паролей.

История MD5

История алгоритма построения дайджеста сообщения (MD5) начинается в 1991 году, когда профессор Массачусетского технологического института (Massachusetts Institute of Technology, MIT) Рональд Л. Ривест отчитался о создании нового алгоритма, пришедшего на замену устаревшего MD4. Что касается MD4, то в нём действительно был обнаружен ряд недостатков, о чём позже написал немецкий криптолог Ханс Доббертин (Hans Dobbertin).

Ривест привёл описание нового алгоритма MD5 в документе RFC 1321.

Работа над алгоритмом была продолжена исследователями Бертом ден Буром (Bert den Boer) и Антоном Босселарсом (Antoon Bosselaers), которые в 1993 году доказали вероятность возникновения в MD5 псевдоколлизий, когда различные инициализирующие вектора могут иметь соответствие с одинаковыми дайджестами сообщений.

Далее, в 1996 году Хансом Доббертином было заявлено об обнаружении в MD5 коллизии. В то время стало известно о более предпочтительных алгоритмах хеширования, таких как криптографические хеш-функции RIPEMD-160 — разработанная Хансом Доббертином, Антоном Босселарсом и Бартом Пренелем (Bart Preneel), Whirlpool — разработанная Винсентом Рэйменом (Vincent Rijmen) и Пауло Баррето (Paulo S. L. M. Barreto) и алгоритм криптографического хеширования SHA-1.

Ввиду относительно небольшого размера хеша (128 бит) в MD5, заговорили о вероятности атак типа «день рождения». Проект MD5CRK, запущенный Жан-Люком Куком (Jean-Luc Cooke) в 2004 году имел цель изучить уязвимость алгоритма с помощью birthday-атак. Но, по прошествии пяти месяцев, 17 августа 2004 года, проект свернули в связи с обнаружением уязвимости в алгоритме, группой китайских криптографов во главе с Лай Сюэцзя (Lai Xuejia).

В марте 2005 года математиками и криптографами Бенне де Вегером (Benne de Weger), Арьеном Ленстра (Arjen Klaas Lenstra) и Ван Сяоюнем (王小云) были созданы два документа X.509, имеющие одинаковый хеш и разные открытые ключи.

Год спустя, в марте 2006 года был опубликован алгоритм, составленный чешским криптографом Властимилом Клима (Vlastimil Klima), позволяющий определить коллизии на простом компьютере в течение всего одной минуты. Данный алгоритм стал известен в качестве метода «туннелирования».

В результате анализа результатов работы, в 2008 году подразделение Национального управления кибербезопасности Министерства внутренней безопасности США (US-CERT) порекомендовало всем, кто был задействован в разработках программного обеспечения, веб-сайтов, а также пользователям сети, отказаться от использования алгоритма MD5, независимо от целей его применения. Причиной подобной рекомендации стала ненадёжность, которую он продемонстрировал в процессе его изучения.

В декабре 2010 года китайские криптологи Тао Се (Tao Xie) и Фэн Дэнго (Feng Dengguo) обнаружили коллизию сообщений длиной в 512 бит (один блок). Прежде коллизии находились лишь в сообщениях, длина которых составляла два блока и более. Позже подобных результатов добился Марк Стивенс (Marc Stevens), опубликовавший блоки с одинаковым хешем MD5. Он также разработал алгоритм для получения коллизий данного типа.

Итоговым документом, поставившим точку в истории развития алгоритма MD5, стал запрос на комментарии — RFC 6151 (RFC — официальный документ, разработанный Инженерным советом интернета (IETF), в котором описываются спецификации для конкретной технологии), фактически признавший MD5 небезопасным алгоритмом хеширования. Документ рекомендует от него отказаться, выбрав в качестве альтернативы семейство криптографических алгоритмов SHA-2.

Рассмотренный алгоритм MD5 по праву считается одним из первых стандартов алгоритма, применяемого в целях проверки целостности файлов и для хранения паролей в базах данных веб-приложений.

Но, по факту, относительно простая функциональность, короткая выходная длина и несложность проводимых операций, являясь преимуществами алгоритма определяют и его недостатки — MD5 относится к алгоритмам, подверженным взлому и имеющим низкую степень защиты от атак типа «день рождения».

Что такое MD5?

Что такое MD5?

Алгоритм хеширования MD5 может использоваться в различных сферах, связанных с созданием электронных цифровых подписей, защищённых паролей, криптографических онлайн-ключей. Он даёт возможность осуществления проверки целостности информации на ПК.

Изначально MD5 считался относительно надёжным алгоритмом шифрования, но в связи с недостатками, выявленными в процессе изучения, в настоящее время его рекомендуется заменить другим, более защищённым алгоритмом хеширования.

Примеры использования

Основным преимуществом алгоритма MD5 можно назвать его широкие возможности по сферам применения.

Алгоритм позволяет проверять скаченную информацию на предмет подлинности и целостности

К примеру, вместе с пакетами для инсталляции ПО идёт значение контрольной суммы для проверки.

Также практикуется применение алгоритма MD5 для хеширования паролей

Так, например, операционная система Unix активно применяет данный алгоритм в качестве инструмента хеширования. Следует отметить, что в некоторых Linux-системах метод MD5 также активно используются для хранения паролей.

Известны следующие способы хранения паролей:

  • Стандартное хранение без применения хеширования. Недостатком такого способа является высокий риск утечки информации при взломе базы.
  • Осуществляется хранение только хешей паролей. Подобные данные легко находятся с помощью таблиц хешей, которые готовятся заблаговременно. Для заполнения таких таблиц используются распространённые пароли невысокой сложности.
  • Добавление к паролям нескольких символов, имеющих название «соль». После этого осуществляется хеширование результата. Полученный в результате таких действий пароль подлежит сохранению в открытом виде. При поиске паролей, созданных таким образом, таблицы не помогут.

Алгоритм хеширования MD5 может использоваться в целях проверки файлов, загруженных из сети

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

MD5 используется при создании веб-приложений

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

Надёжность алгоритма MD5

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

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

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

Исследователи провели криптоанализ и выявили несколько способов, позволяющих взломать хеш MD5:

  • Универсальным методом взлома можно считать атаку полного перебора (метод «грубой силы»). Но, он также имеет свой недостаток — метод является очень долгим. Для противодействия ему используют приём увеличения количества ключей. Данный метод часто применяют для оценки уровня устойчивости и надёжности шифрования паролей.
  • RainbowCrack — это специальная программа, которая позволяет создать хеш базу, на основе которой осуществляется практически мгновенный взлом пароля из букв и цифр.
  • Для подбора паролей с помощью словаря пользуются словарными базами и готовыми программами.
  • При использовании метода поиска коллизий берут аналогичные значения функции для разных сообщений, которые имеют одинаковое начало. Данным методом активно пользовались в конце XX века.

Формула получения идентичного хеш-кода: MD5(4L1) = MD5(4L2).

В 2004 году китайские учёные обнаружили в системе уязвимое место, позволяющее обнаружить коллизию за небольшой отрезок времени.

В 2006 году был найден способ, позволяющий определять вредные файлы на обычном компьютере с помощью так называемых «туннелей».

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