Для чего проверяются хэш-суммы файлов и как это сделать?
Для проверки целостности файлов применяются хэш-суммы, позволяющие путем сравнения отследить изменения или повреждения в файле.
Что такое контрольная сумма (Checksum) и что с ней делать?

Обзоры

Вы собираетесь нажать кнопку загрузки и замечаете рядом с ней странный код. Кажется, не имеет никакого отношения к тому, насколько велик файл или на что вы должны обратить внимание. Так что вперед, получите файл и беда! Это не похоже на то, что вы ожидали.
Если бы только был быстрый способ узнать, совпадает ли только что загруженный вами элемент с файлом, который был на веб-сайте. Что ж, есть. Добро пожаловать в мир контрольных сумм!
Как проверить контрольную сумму файла в Windows 10
Раньше загрузка файла была риском. Это все еще может быть рискованно, и вы все равно можете столкнуться с вредоносным ПО в вашей системе, но сейчас существуют более надежные средства защиты. И ваш браузер, и ваша ОС сканируют элементы, чтобы убедиться, что их запускать безопасно. Еще один способ убедиться, что вы скачали безопасный файл, — это проверить контрольную сумму файла.
Что значит ошибка контрольной суммы
При распаковке какого-либо файла пользователь может столкнуться с ошибкой распаковки, и соответствующим сообщением «Unarc.dll вернул код ошибки: -12». Обычно это связано с некорректно созданным репаком какой-либо программы, но бывают случаи, что причиной данной проблемы становятся архиватор и проблемы с «железом» пользовательского ПК. В данном материале я расскажу, каковы причины данной дисфункции, а также поясню, что делать в ситуации, когда вы столкнулись с сообщением «Произошла ошибка при распаковке не совпадает контрольная сумма 12» на вашем компьютере.
Скриншот ошибки «Произошла ошибка при распаковке не совпадает контрольная сумма 12»
Легкий способ подделки контрольной суммы и ЭЦП с помощью коллизий
В современном IT-мире контрольную сумму файла или любых других важных данных принято считать фундаментом для подтверждения неизменности исходной информации. Но если ты вспомнишь историю с руткитом Stuxnet, то поймешь, что уязвимости в популярных алгоритмах для расчета таких сумм могут привести к большим катастрофам. Давай проверим это.
Разбираемся с причинами ошибки
Обычно указанная проблема возникает в ситуации, когда заявленная контрольная сумма архива не совпадает с реальной суммой, полученной архиватором при распаковке. Важным элементом данного процесса является CRC — алгоритм нахождения контрольной суммы, необходимый для проверки целостности архивных данных.
Конкретные причины, ведущие к несовпадению заявленной и фактической контрольных сумм архива могут быть следующими:
- Некорректно упакованный архив (репак);
- Битый архив, с ошибками загруженный с внешнего источника;
- Недостаток свободного места на жёстком диске;
- Злокачественная деятельность вирусных программ;
- Блокировка корректной распаковки архива антивирусными программами;
- Проблемы в работе планок памяти;
- Некорректно работающий архиватор (WinRAR, 7-ZIP и др.);
- Наличие в пути распаковки кириллических символов;
- Чрезмерно длинный путь распаковки, чрезмерно большие названия директорий;
- В системе деактивирован файл подкачки.
Решаем проблему с Unarc.dll
WARNING
Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.
Проверка контрольной суммы файла
Если вам нужно проверить контрольную сумму файла (например, образа диска или программы), то вам понадобится специальная программа, которая умеет высчитывать контрольные суммы. Самой популярной программой такого рода является HashTab.
После установки данной программы в свойствах файла появится новая вкладка «Хеш-суммы файлов», в которой будет отображаться хеш-сумма выбранного вами файла.

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

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

Также HashTab позволяет сравнивать файлы. Для этого нужно нажать на кнопку «Сравнить файл» и выбрать другой файл.

Программа HashTab является бесплатной для личного пользования, некоммерческих организаций и студентов. Скачать программу можно на официальном сайте http://implbits.com/products/hashtab/.
- Чем открыть MDF файл в Windows 7 или Windows 10
- Чем открыть mkv
- Чем открыть fb2
- Как отправить файл большого размера
- Массовое переименование файлов
Создатель сайта comp-security.net, автор более 2000 статей о ремонте компьютеров, работе с программами, настройке операционных систем.
Задайте вопрос в комментариях под статьей или на странице «Задать вопрос» и вы обязательно получите ответ.
Проверка хешей в Linux
Здесь так же можно воспользоваться консолью. В случае алгоритма MD5 достаточно выполнив команду.
Для хеш-сумм по алгоритму SHA-1 команда выглядит немного иначе.
В случае необходимости рассчитать циклическую контрольную сумму (CRC) используется команда
Кто не хочет связываться с консолью, может поставить программу Gtkhash с графическим интерфейсом и проверять целостность файлов в ней. Для установки программы выполнить в консоли:
Напоследок расскажем о том, как можно убедиться, что скачанный с торрента или доставшейся из другого ненадежного источника дистрибутив Windows оригинальный и его не изменял кто-либо. Для этого идем на сайт Майкрософт где подписчики MSDN могут скачивать ее продукты. Находим нужный нам образ, обращая внимание на версию, дату, разрядность и язык. Когда нужный продукт будет найден, нажимаем на «Сведения» рядом с ним.

В нижней части раскрывшейся области будет указана хеш сумма рассчитанная по алгоритму SHA1. Не смотрите на название вашего файла, его могли переименовать, главное это содержимое. Кроме того не стоит тратить время на проверки контрольных сумм образа, если это сборка, репак и подобное народное творчество, а не образ MSDN.
Проверить значение контрольной суммы
Microsoft предоставляет инструмент под названием File Checksum Integrity Verifier, который можно использовать для проверки значения контрольной суммы файла.
Скачать и извлеките его. Вам нужно будет использовать его из командной строки. Откройте командную строку и используйте команду cd, чтобы перейти в папку, в которую вы извлекли инструмент.
Переместите файл, для которого нужно проверить значение контрольной суммы, в тот же каталог, в который вы извлекли утилиту проверки целостности контрольной суммы файла, а затем выполните следующую команду, чтобы запустить проверку.
Синтаксис
Пример
Это отобразит значения контрольной суммы MD5 и SHA. Вы можете сравнить их вручную, использовать инструмент для работы с электронными таблицами или простой инструмент проверки различий.

Контрольная сумма не совпадает
Если файл, который вы загрузили и выполнили проверку, генерирует контрольную сумму, отличную от той, которую предоставил разработчик, возможно, вы имеете дело с вредоносным или поврежденным файлом.
Если файл поврежден, скорее всего, он загрузился некорректно. Попробуйте скачать его еще раз. Если проблема не устранена, вполне возможно, что доступный файл был изменен, и в этом случае вы не должны использовать / запускать его. Несовпадение значения контрольной суммы также может указывать на файл, который был изменен. Это обычно происходит с бесплатными приложениями или приложениями с открытым исходным кодом, которые люди пытаются распространять. Они добавляют дополнительный код, который наносит вред вашей системе, и объединяют его в надежное приложение.
Единственный способ оставаться в безопасности — всегда загружать приложения из официальных источников.
Как исправить ошибку «Произошла ошибка при распаковке не совпадает контрольная сумма 12»
Чтобы избавиться от ошибки «Unarc.dll код ошибки: -12» рекомендую выполнить следующее:
- Перекачайте репак. Он мог быть скачан пользователем некорректно;
- Используйте репак другого автора. Если вы используете пиратский, рекомендую поискать и скачать альтернативный репак данной программы;
- Освободите место на жёстком диске. Ряд специалистов рекомендуют иметь свободного места на диске не менее 17,5 гигабайт. Проверьте количество свободного места на винчестере, при необходимости удалите ненужный софт;
- Проверьте ваш ПК на наличие вирусных программ (помогут Dr.Web CureIt!, Trojan Remover, Malwarebytes Anti-Malware и другие альтернативные программы);
Используйте Dr.Web CureIt! для борьбы с злокачественными программами
Используйте утилиту Memtest86+ для проверки памяти вашего ПК
В открывшемся окне параметров быстродействия вновь выберите вкладку «Дополнительно», и нажмите там на кнопку «Изменить».
Измените размер файла подкачки
Активируйте опцию «Указать размер» и введите объём файла подкачки, равный объёму оперативной памяти вашего ПК.

Бывает качаешь целый час большой архив с какого-нибудь сайта, пытаешься открыть его в WinRAR и получаешь сообщение: «ошибка контрольной суммы» или «ошибка CRC сжатых данных». Что делать и почему такое происходит?
Данная ошибка возникает, если во время загрузки архива были потери пакетов, то есть он скачался вроде бы полностью, но несколько байтов информации в нем не хватает или они отличаются от того, что должно быть. Потеря пакетов – частое явление при нестабильном интернет-соединении. Чем больше размер загружаемого архива и дольше происходит его скачивание – тем больше вероятность возникновения подобной ошибки.
Алгоритмы (стандарты) расчёта хеш-суммы файла
Их довольно много существует на данный момент времени…
- Adler-32
- BTIH (BitTorrent Info Hash)
- CRC32
- eDonkey2000
- GOST (ГОСТ Р 34.11-94)
- MD5, MD4, MD2
- RIPEMD-128, RIPEMD-256, RIPEMD-320
- SHA-1
- SHA-2 (SHA-256, SHA-384, SHA-512)
- SHA-3 (SHA3-224, SHA3-256, SHA3-384, SHA3-512)
- TTH (Tiger Tree Hash)
- Tiger
- Whirlpool
- …
…но самыми распространёнными и популярными являются…
- SHA-1
- MD5
- CRC
Хеш-суммы одного файла созданные по разным стандартам будут отличаться друг от друга очень заметно (не совместимы для сверки)…
Как создавать (задавать) хеш-сумму файла мы сегодня обсуждать и учиться не будем — это тема следующей статьи будет.
Введение
Всегда ли ты проверяешь контрольную сумму скачанных из сети файлов? Думаю, нет. Хотя, конечно, для большинства юниксоидов это привычное дело, ведь целостность и достоверность скачанных образов и исходников порой играет важную роль. Достаточно вспомнить недавний взлом kernel.org: тогда лишь самые опытные администраторы заметили подвох, сравнив контрольную сумму скачанных исходников с контрольной суммой, представленной на сайте.
Ты наверняка знаешь, что контрольная сумма файла зачастую представляет собой криптографические хэш-функции, самыми известными из которых являются MD4, MD5 и SHA-1. Однако с недавних пор встала огромная проблема подтверждения целостности исходной информации при помощи более криптостойких алгоритмов хэширования (контрольных сумм). Имя этой проблемы — коллизии криптографических хэш-функций. Так, например, если хэш-функция используется для создания цифрового ключа, то умение строить для нее коллизии равносильно умению подделывать цифровой ключ! Именно поэтому в идеале не должно существовать способа поиска коллизий для криптографических хэш-функций более быстрого, чем полный перебор (брутфорс). Если для некоторой хэш-функции находится более быстрый способ, то эта хэш-функция перестает считаться криптостойкой, а также использоваться для передачи и хранения секретной информации. Но всегда ли это так? Оказывается, далеко не всегда.

Таблица хэш-функций, для которых были найдены коллизии
Другие статьи в выпуске: 
Хакер #159. Подделка контрольной суммы и ЭЦП с помощью коллизий
Как можно проверить целостность файла?
Для проверки контрольных сумм файлов можно воспользоваться специальными программами. Можно проверить целостность файла онлайн или прибегнуть к использованию встроенного инструмента в командной строке Windows, который называется CertUtil.
Чтобы выполнить проверку по алгоритму MD5, нужно ввести в командную строку следующее:
после чего указать путь к файлу, который необходимо проверить. После этого останется запустить выполнение команды с помощью клавиши Enter.
Как проверить хеш-сумму файла — HashTab
Очень и очень просто. Сейчас вмонтируем в Проводник Windows специальный инструмент для вычисления и проверки этой контрольной суммы файла.
Нам поможет абсолютно бесплатная, для личного использования, компьютерная программа под названием HashTab.
Устанавливаем её в свою операционную систему (ссылка на скачивание инсталлятора чуть ниже)…

…и получаем в свойствах любого файла дополнительную вкладку…


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

Зелёная галка в появившемся разделе «Сравнение хеша» означает, что всё хорошо и файл телепортировался в целости и сохранности (никто его по пути не перехватывал и не внедрял в него вирус).
Можно просто узнать сумму файла или сравнить её с первоисточником (например, с сайта производителя какой-либо скачанной программы). Для этого просто вставляете его в строку и жмёте кнопочку «Сравнить файл…».
Настройки HashTab очень просты и сводятся к активации (отображению) дополнительных стандартов в окошке свойств файла…

В чем разница между хешами MD5, SHA-1 и SHA-256
Контрольные суммы — это полезный способ убедиться, что в файле нет ошибок. Если ошибка возникает из-за проблем с загрузкой или проблем с жестким диском, результирующая контрольная сумма будет другой, даже если это небольшая ошибка.
Однако эти криптографические хеш-функции несовершенны. Исследователи безопасности обнаружили «коллизии» с функциями MD5 и SHA-1. Другими словами, они обнаружили два разных файла, которые производят один и тот же хэш MD5 или SHA-1.
Это вряд ли произойдет случайно, но злоумышленник может использовать эту технику, чтобы замаскировать вредоносный файл. Вот почему не следует полагаться на суммы MD5 или SHA-1 для проверки подлинности файла — только для проверки на наличие повреждений.
Сообщений о конфликте SHA-256 пока не поступало, поэтому приложения теперь создают суммы SHA-256 вместо сумм MD5 и SHA-1. SHA-256 — более сильный и безопасный алгоритм.
Различные алгоритмы контрольной суммы дают разные результаты. Файл будет иметь разные контрольные суммы MD5, SHA-1 и SHA–256. Если Вам известна только сумма MD5 исходного файла, Вы должны вычислить сумму MD5 своей копии, чтобы проверить, совпадает ли она.

Так что же делать с контрольной суммой (Checksum)?
Контрольная сумма позволяет легко проверить целостность данных, составляющих файл.
Представьте себе такой сценарий: вам нужно загрузить важный файл, который имеет решающее значение для работы компьютера. Действительно критично, настолько, что вы не хотите, чтобы в нем были какие-либо ошибки или сбои. У вас также медленное и нестабильное интернет-соединение, и вы беспокоитесь, что это может повлиять на скачивание файла.
Хост файла знает все это, поэтому он запускает алгоритм контрольной суммы для файла и помещает ответ на веб-страницу загрузки. Получив его, вы можете запустить тот же процесс и сравнить значения — если они совпадают, вы будете знать, что с файлом, который вы скачали, все в порядке.

И это основное использование контрольной суммы: проверка целостности данных, составляющих файл. Это можно сделать вручную, как мы вскоре увидим, или это может быть часть автоматизированной операции. Valve использует контрольные суммы на платформе Steam как часть процесса проверки файлов.
Как решить проблему?
Есть 2 способа, с помощью которых можно исправить ошибку контрольной суммы.
Способ 1
Самое элементарное – скачать архив заново. Для скачивания лучше использовать специальную программу, загрузчик файлов, например, Download Master.
Способ 2
Можно попытаться восстановить архив с помощью встроенной функции WinRAR. В архиве может содержаться информация для восстановления, которая будет использована архиватором для «оживления» поврежденного архива.
Запустите WinRAR и через его интерфейс найдите проблемный архив. Щелкните на нем правой кнопкой мыши и выберите «восстановить архив(ы)».

В некоторых случаях может появиться окно, предлагающее указать, какой формат у архива, который вы хотите восстановить. Укажите правильный формат файла (его расширение) и нажмите «ОК».

Если повезет, архив будет восстановлен.
*если ошибка CRC у вас возникает постоянно при открытии любых архивов на вашем компьютере, рекомендуем проверить оперативную память и жесткие диски на предмет потери данных, с помощью такой программы, как AIDA или обратившись к специалистам.
Старые версии WinRAR при вводе неправильного пароля перед распаковкой зашифрованных архивов не предлагали пользователям ввести его заново, и начинали извлечение файлов. Само собой, процесс заканчивался с ошибкой контрольной суммы, из которой было не ясно в чем дело – в неверно введенном пароле или в повреждении самого архива.

В последней версии WinRAR такой проблемы нет – установите ее и попробуйте распаковать проблемный архив снова. Если теперь прежний пароль не подходит, и разархивация не начинается, значит с архивом все в порядке. Осталось только вспомнить правильный пароль.
Если же распаковка вновь заканчивается диагностическим сообщением об ошибке контрольной суммы, значит часть или все файлы в архиве уже повреждены или повреждаются в процессе извлечения и сохранения на диск.
Протестируйте оперативную память и жесткие диски компьютера на потерю байтов информации, попробуйте извлечь файлы на другой носитель (другой HDD или флешку).
Если с «железом» проблем не обнаружится, откройте WinRAR, выберите поврежденный архив и нажмите кнопку «Исправить» на верхней панели.
Скачать HashTab
| Предназначение: | Бесплатная программа для проверки целостности и подлинности файлов посредством вычисления контрольной хеш-суммы |
| Название программы: | HashTab |
| Производитель (автор): | Implbits® |
| Статус: | Бесплатно |
| Категория: | Безопасность |
| Размер инсталлятора (архива): | 1.1 Мб |
| Поддержка ОС: | Windows XP,7,8,10 |
| Язык интерфейса: | Английский, Русский… |
| Безопасность: | Вирусов нет |
| Похожие программы: | — |
| Ссылка на инсталлятор/сайт: | Скачать/Перейти |
Вот такое простое средство для дополнительной защиты от вирусов. Теперь знаете, что такое хеш-сумма файла, зачем и как её замерять. До новых полезных компьютерных программ и интересных приложений на Андроид.
Stuxnet и поддельные сертификаты
Надеюсь, ты не забыл историю с руткитом Stuxnet, когда троян-дроппер прогружал и запускал в системе свои драйверы, спокойно обходя всяческие системы предотвращения вторжений и антивирусы? Тогда при реверс-инжиниринге сэмплов выяснилось, что драйверы руткита были подписаны «настоящими» сертификатами крупных производителей контроллеров и чипов JMicron и Realtek. Было много шума, все кинулись обвинять эти компании в некомпетентности. Аналогичная история повторилась и с «братом» Stuxnet — червем Duqu. На этот раз обвинили компанию C-Media Electronics, сертификаты которой также были якобы украдены. Все вроде бы верно, но никаких краж возможно и не было! Я думаю, ты уже понял, о чем идет речь. Поддельные сертификаты были сгенерированы при помощи фундаментального бага — коллизий. Антивирусы, проверяя контрольную сумму файлов, не заметили никакого подвоха, а ведь все держалось именно на них :). Как бы парадоксально это не было, но существует ряд доказательств, подтверждающих мои слова. Во-первых, на одном закрытом форуме, где тусовались разработчики этих нашумевших руткитов (хотелось бы особо отметить человека под ником orr, статьи которого присутствуют на ряде авторитетных паблик-ресурсов, посвященных ИБ и реверс-инжинирингу: woodman и openrce), существовал топик о возможности кражи доверенных сертификатов. В нем приводился пример с Duqu, сертификат (c закрытым ключом) которого был сгенерирован с помощью коллизии. Во-вторых, если сравнить два сертификата (настоящий и тот, что был сгенерирован для Duqu) по размеру, то окажется, что существует хоть и малая, но все же разница в 15 байт! Таким образом, файлы получались разные по размеру, но одинаковые по контрольной сумме. История с украденными сертификатами осталась бы практически незамеченной, если бы не работа независимых ИБ-исследователей.

Оригинальный сертификат
Как проверить хэш-сумму MD5 с помощью программы Solid Explorer?
Данная программа предназначена для удобного управления файлами. Этот файловый менеджер имеет расширенный функционал, позволяющий выполнять различные действия с файлами. С его помощью можно обеспечить защиту файлов на основе надежного шифрования с помощью пароля и отпечатка пальца.

Данное приложение поддерживает основные сетевые протоколы и подключение к облачным хранилищам. Также можно получить Root-права для доступа к корневому каталогу. Есть функции группировки файлов по папкам и индексированный поиск.
Процесс установки на Android выглядит следующим образом:
- Зайти в Play Market и вписать в поиск название приложения.
- Запустить загрузку путем нажатия на кнопку « Установить ».
- Приступить к настройкам приложения и управлению хранилищем.
Методы получения профита
Перед тем как начать практическую часть, мы должны добить теорию. Дело в том, что так называемые коллизии мы можем использовать в качестве ключа/пароля для аутентификации в различном ПО и на веб-ресурсах. Это значит, что даже без знания пароля, имея на руках только лишь его хэш, мы можем сгенерировать правдоподобный пассворд с помощью коллизии, причем за вполне приемлемое время. Однако на данный момент существуют и повсеместно используются лишь несколько видов «взлома» хэшей MD4/5, то есть подбора сообщения с заданным хэшем.
- Перебор по заданному словарю: никаких гарантий удачного результата нет, из плюсов можно отметить лишь малое время, затраченное на перебор.
- Брутфорс: банальный перебор случайных или последовательных комбинаций, большим минусом которого является значительное количество затраченного времени и ресурсов компьютера.
- RainbowCrack: атака по радужным таблицам является самым эффективным методом «взлома»; плюс заключается в быстром переборе, минусы — в гигантском размере радужных таблиц и большом количестве времени, затраченном на их генерацию.
Для полного перебора или перебора по словарю можно использовать, к примеру, следующие программы: PasswordsPro, MD5BFCPF, John the Ripper. Теперь же я предлагаю тебе познакомиться с новым методом атаки на хэши — методом коллизий.

Коллизия в действии
Есть ли другие подобные решения
Если требуется быстро проверить целостность файла, но нет доступа к специализированному программному обеспечению, можно открыть вкладку « Свойства » двух сверяемых файлов и провести сравнение величины их размера в байтах. Если величины совпадают, то файл, скорее всего, не подвергался внесению каких-либо изменений.
Также можно инсталлировать бесплатную программу Hashtab с официального сайта разработчика. Для этого необходимо выполнить следующие действия:
- Перейти по ссылке и нажать на кнопку Download для начала процесса установки.
- В контекстном меню проводника Windows появится новая вкладка под названием « Хэш-суммы файлов ».
- Открыв ее, можно будет посчитать контрольные суммы для выбранного файла.
- В настройках можно будет указать требуемые алгоритмы для проверки целостности файла.

Еще одним способом проверки совпадения хэш-суммы является использование языков веб-программирования для написания специализированного скрипта.
Заключение
Хотя подобные Steam обрабатывают этот процесс автоматически, мы полагаемся на файловые хосты, обеспечивающие точные контрольные суммы для данных, которые они предоставляют. В случае загрузок TechSpot, например, мы явно не предоставляем контрольную сумму, но инструменты, которые мы используем для подтверждения того, что загрузки являются чистыми, такие как VirusTotal, используют контрольную сумму для проверки целостности файлов и агрегирования данных, когда несколько сторон сканируют файлы. тот же файл с течением времени.
Некоторые веб-сайты предоставляют контрольные суммы для каждого файла, тогда как другие делают это только для важных или очень больших элементов (например, Microsoft в своих разделах безопасной загрузки), но это становится все более редким явлением. Для этого есть различные возможные причины, например, люди, просто не подозревающие о них.
Но если хосты предлагают это, то, по крайней мере, теперь вы знаете, как использовать хеш — любая дополнительная вещь, которая дает вам немного больше уверенности, всегда хорошо.
Немного истории
- 1996: Ганс Доббертин нашел псевдоколлизии в MD5, используя определенные инициализирующие векторы, отличные от стандартных.
- 2004: Китайские исследователи Ван Сяоюнь (Wang Xiaoyun), Фен Дэнгуо (Feng Dengguo), Лай Сюэцзя (Lai Xuejia) и Юй Хунбо (Yu Hongbo) объявили об обнаруженной ими уязвимости в алгоритме, позволяющей находить коллизии за крайне малое время (1 час на кластере IBM p690).
- 2005: Те же самые Ван Сяоюнь и Юй Хунбо опубликовали алгоритм, позволяющий найти две различные последовательности в 128 байт, которые дают одинаковый MD5-хэш.
- 2006: Чешский исследователь Властимил Клима опубликовал алгоритм, дающий возможность находить коллизии на обычном компьютере с любым начальным вектором (A,B,C,D) при помощи метода, названного им «туннелирование».
- 2007: Эдуардо Диаз по специально разработанной схеме создал два различных архива с двумя разными программами, но абсолютно идентичными MD5-хэшами.
- 2009: Дидье Стивенс использовал библиотеку evilize для создания двух разных программ с одинаковым кодом цифровой сигнатуры (Authenticode digital signature), authenticode используется Microsoft для подписи своих библиотек и исполняемых файлов.
От теории к практике
Ну что же, теперь перейдем к долгожданной практике. Среди профессиональных криптоаналитиков есть вполне определенная классификация типов устойчивости алгоритмов хэширования, их всего три.
- CR2-KK — свободный от коллизий, устойчивый к коллизиям.
- CR1-KK — универсальный односторонний.
- CR0 — универсальный.
Также существуют три вида соответствующих атак для нахождения коллизий:
- CR2-KK — найти коллизии для конкретной функции.
- CR1-KK — подобрать к заданному значению пару, образующую коллизию для конкретной функции.
- СК0 — найти коллизию для семейства функций.
Сегодня я продемонстрирую тебе два первых вида атак на практике. Для начала приведу два блока данных в HEX (пара коллизий из научной работы китайского ИБ-исследователя Ван Сяоюня), их нужно вбить в hex-редакторе и сохранить в виде двух файлов:
Если сравнить размер и контрольную сумму в MD5 у полученных файлов, то мы не заметим никакой разницы! Теперь давай найдем еще несколько коллизий к этим файлам. Программа MD5 Collision Generator от Патрика Стэча поможет нам разобраться в атаке CR2-KK. Смело компилируй ее и запускай на исполнение. Первая коллизия на моем самом слабом компьютере была получена менее чем за 15 минут, а вторая — примерно через два с половиной часа! Не так уж и плохо, согласись.
Теперь перейдем к реальной атаке, для этого будем использовать эксплойт-библиотеку evilize (снова обрати внимание на ссылки). После компиляции данной библиотеки в текущей директории должны появиться три файла: evilize, md5coll и объектный файл goodevil.o. В качестве подопытной программы будем использовать пример hello-erase.c, идущий в комплекте с исходниками. Итак, компилируем нашу программу и линкуем ее с объектным файлом goodevil.o:
Смотрим контрольную сумму подопытного файла:
Разбиваем на блоки нашу полученную контрольную сумму, и запускаем на исполнение генератор MD5-коллизий:
Далее запускаем evilize для создания двух различных исполняемых файлов с одинаковым размером и MD5-хэшем. Смотрим на контрольную сумму и размер, а затем запускаем полученные бинарники:
Как видишь, одна программа выводит известную всем безобидную фразу «Hello, world!», а вторая якобы стирает данные на диске. Мы можем переделать наш hello-erase.c так, чтобы вместо шуточного стирания данных произошло реальное, и тогда будет не до шуток. Но все это цветочки по сравнению со следующей атакой, которую я провел при своих исследованиях CR1-KK.

Генерируем коллизии
Советы и выводы
Подводя итоги можно сказать, что проверка хэш-сумм позволяет максимально достоверно определить отсутствие модификаций в проверяемых файлах. Для ее проведения можно прибегнуть к использованию стандартных средств операционной системы Windows или установить стороннюю специализированную программу.
Дайте знать, что вы думаете по этой теме материала в комментариях. За комментарии, дизлайки, отклики, лайки, подписки огромное вам спасибо!
Пожалуйста, оставьте ваши мнения по текущей теме материала. За комментарии, дизлайки, отклики, лайки, подписки огромное вам спасибо!
Взлом CR1-KK
В качестве «жертвы» для исследований я выбрал цифровые ключи компании Unicon, являющейся в Узбекистане монополистом в области ЭЦП (электронно-цифровой подписи) и сертификации. Основываясь на трудах Властимила Климы, я написал программу CR1-KK-collision keygen для подбора пары к значению, образующей коллизию для конкретной функции при генерации электронно-цифровых ключей. Изначально было несколько данных, которые я и использовал в качестве входных параметров. Очень облегчил задачу тот факт, что пароль для закрытой ЭЦП у всех сертификатов один и тот же: 000000. Это была фатальная ошибка — самая грубая из встреченных мной за весь опыт работы в области ИБ. Имея на руках только контрольные суммы файлов и открытые ключи, мне удалось сгенерировать примерный оригинальный закрытый ключ для подписи различного рода документов, ключей и идентификации пользователя в нескольких CRM-системах (к примеру, E-hujjat от того же монополиста). Проделанную работу ты сможешь увидеть воочию на соответствующих скриншотах, в консоли же все это выглядело примерно так:
Как видишь, у сертификатов cer.cer и cer(faked by collision).cer одинаковая контрольная сумма.
-
; ; ; ; ; Властимила Климы «О MD5-коллизиях»; ; Марка Стивенса о коллизиях.
ли со статьей или есть что добавить?