0Pricing
Cryptology Academy · Урок

MD5: история, применение и причины уязвимости

Изучите внутреннее устройство MD5 и атаки на коллизии, из-за которых от него отказались

«MD5: история, применение и причины уязвимости» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.

Добро пожаловать

MD5 когда-то была самой широко используемой хеш-функцией. Сегодня для целей безопасности она полностью взломана. Давайте разберёмся почему и что пошло не так.

Обзор MD5

MD5 (Message Digest 5) разработал Рон Ривест в 1991 году. Она создаёт 128-битный (16-байтный) хеш. Пример результата: MD5('hello') = 5d41402abc4b2a76b9719d911017c592

Структура алгоритма MD5

MD5 использует конструкцию Меркла—Дамгорда с блоками по 512 бит. Каждый блок проходит через четыре раунда по 16 операций в каждом. В операциях используются побитовые AND, OR, XOR, NOT, сложение и сдвиги влево с вращением.

MD5 в Python

import hashlib hash = hashlib.md5(b'hello').hexdigest() print(hash) # 5d41402abc4b2a76b9719d911017c592 print(len(hash)) # 32 hex chars = 128 bits

Исторические применения

MD5 использовалась для проверки целостности файлов, хранения паролей, сертификатов SSL, цифровых подписей и подписывания кода. Её высокая скорость сделала её популярной.

Первые трещины: дифференциальные атаки 1996 года

В 1996 году Ханс Доббертин обнаружил коллизии в функции сжатия MD5. Это было тревожным признаком, однако MD5 ещё много лет широко использовался.

Полная коллизия: Ван и др., 2004 год

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

Вредоносная программа Flame, 2012 год

Вредоносная программа Flame использовала коллизии MD5 для подделки сертификата подписи кода Microsoft. Из-за этого вредоносное программное обеспечение выглядело так, будто оно было легитимно подписано Microsoft.

MD5 для задач, не связанных с безопасностью

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

Ненадёжное хранение паролей

Пароли, хешированные с помощью MD5, взламываются элементарно: существуют огромные радужные таблицы хешей MD5. Несолёный MD5('password') всегда даёт один и тот же хеш. CrackStation может проверять миллиарды вариантов в секунду.

Переход с MD5

Заменяйте MD5 на SHA-256 (для общей проверки целостности), SHA-3 (в новых разработках), bcrypt или Argon2 (для паролей) либо HMAC-SHA256 (для аутентификации сообщений). Без исключений.

Быстрая проверка

Почему MD5 перестали использовать в задачах безопасности?

Итоги

Для обеспечения безопасности MD5 непригоден. Далее мы изучим SHA-1 и семейство SHA-2, чтобы понять, какие улучшения появились вслед за ним.

Часто задаваемые вопросы

Урок «MD5: история, применение и причины уязвимости» бесплатный?

Да — полный текст урока «MD5: история, применение и причины уязвимости» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.

Чему я научусь в уроке «MD5: история, применение и причины уязвимости»?

Изучите внутреннее устройство MD5 и атаки на коллизии, из-за которых от него отказались Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cryptology Academy?

Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «MD5: история, применение и причины уязвимости»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cryptology Academy?

Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Что делает хеш-функцию хорошей
  2. MD5: история, применение и причины уязвимости
  3. Семейство SHA-1 и SHA-2
  4. Применение хешей: контрольные суммы, HMAC и Git
← Назад к Cryptology Academy