Легкий способ подделки контрольной суммы и ЭЦП с помощью коллизий

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

Программа является расширением для Проводника Windows. HashTab позволит определить контрольную сумму (хеш или хэш) файла для проверки подлинности и целостности проверяемого файла.

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

Для чего нужно проверять файлы на подлинность

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

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

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

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

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

Для проверки контрольной суммы (хэша) можно использовать бесплатную программу HashTab.

HashTab скачать

Получение контрольной суммы файла средствами Windows

Для начала потребуется запустить Windows PowerShell: проще всего использовать поиск в панели задач Windows 10 или меню Пуск Windows 7 для этого.

Команда, позволяющая вычислить хэш для файла в PowerShell — Get-FileHash, а чтобы использовать ее для вычисления контрольной суммы достаточно ввести ее со следующими параметрами (в примере вычисляется хэш для образа ISO Windows 10 из папки VM на диске C):

Get-FileHash C:VMWin10_1607_Russian_x64.iso| Format-List

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

Get-FileHash C:VMWin10_1607_Russian_x64.iso -Algorithm MD5 | Format-List

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

  • SHA256 (по умолчанию)
  • MD5
  • SHA1
  • SHA384
  • SHA512
  • MACTripleDES
  • RIPEMD160

Подробное описание синтаксиса команды Get-FileHash доступно также на официальном сайте https://technet.microsoft.com/en-us/library/dn520872(v=wps.650).aspx

Как пользоваться HashTab

При установке программа HashTab интегрируется в окно свойств Проводника. После установки программы HashTab на ваш компьютер, вы можете проверять хэш-суммы файлов. Для этого кликните по какому-нибудь файлу правой кнопкой мыши.

В контекстном меню выберите пункт «Свойства». После открытия окна, в окне «Свойства» вы увидите новую вкладку «Хеш-суммы файлов».

При нажатии на вкладку «Хеш-суммы файлов» появляется окно со значениями контрольных сумм этого файла.

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

Для проверки файлов будет достаточно выбрать главные алгоритмы проверки: CRC32, MD5, SHA-1. После выбора алгоритмов проверки нажимаете на кнопку «OK».

Для сравнения хеш-сумм файлов нужно будет перетянуть файл в поле «Сравнение хеша». Если значения хэша файлов совпадают, то появится зеленый флажок.

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

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

Вам также может быть интересно:

  • HDD Scanner — как узнать размер папок и файлов
  • WinDirStat для анализа и очистки дискового пространства

Кликнув правой кнопкой мыши по соответствующей контрольной сумме, вы можете скопировать эту сумму или все контрольные суммы, а также перейти к настройкам программы, если выберете в контекстном меню соответствующий пункт.

Можно также одновременно проверить два файла поодиночке и сравнить результат в двух окнах. На этом изображении видно, что контрольные суммы двух файлов совпадают.

Пример

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

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

Далее будут описаны утилиты, отлично справляющиеся с вычислением и проверкой контрольных сумм данных.

Как узнать хэш файла при помощи утилиты HashTab

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

После загрузки программы HashTab и установки, в свойствах файлов создается новая вкладка, которая носит название “Хэш-суммы файлов”. В этом вкладке можно видеть расчет контрольной суммы для файла в различных алгоритмах.

Многие пользователи компьютеров со временем, при более детальном знакомстве, задаются вопросом по поводу хеш-сумм. Их еще называют контрольными суммами. Что же это такое? Для чего нужно? Каким образом вычисляются эти самые суммы?

Программа MD5 File Checker

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

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

Что за «зверь» такой это хеширование?

Чтобы в головах читателей не образовался «винегрет», начнем со значения терминологий применительно к цифровым технологиям:

  • хэш-функция («свертка») – математическое уравнение или алгоритм, предназначенный и позволяющий превратить входящий информационный поток неограниченного объема в лаконичную строчку с заданным количеством парных символов (число зависит от протокола);
  • хеширование – процесс, описанный в предыдущем пункте;
  • хэш (хэш-код, хэш-сумма) – та самая лаконичная строчка (блок) из нескольких десятков «случайно» подобранных символов или, другими словами, результат хеширования;
  • коллизия – один и тот же хэш для разных наборов данных.

Исходя из пояснений, делаем вывод: хеширование – процесс сжатия входящего потока информации любого объема (хоть все труды Уильяма Шекспира) до короткой «аннотации» в виде набора случайных символов и цифр фиксированной длины.

Коллизии

Коллизии хэш-функций подразумевает появление общего хэш-кода на два различных массива информации. Неприятная ситуация возникает по причине сравнительно небольшого количества символов в хэш. Другими совами, чем меньше знаков использует конечная формула, тем больше вероятность итерации (повтора) одного и того же хэш-кода на разные наборы данных. Чтобы снизить риск появления коллизии, применяют двойное хеширование строк, образующее открытый и закрытый ключ – то есть, используется 2 протокола, как, например, в Bitcoin. Специалисты, вообще, рекомендуют обойтись без хеширования при осуществлении каких-либо ответственных проектов, если, конечно же, это возможно. Если без криптографической хэш-функции не обойтись, протокол обязательно нужно протестировать на совместимость с ключами.

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

Технические параметры

Основополагающие характеристики протоколов хеширования выглядят следующим образом:

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

    Требования

    К эффективной во всех отношениях хэш-функции выдвигаются следующие требования:

    • протокол должен обладать чувствительностью к изменениям, происходящим во входящих документах – то есть, алгоритм обязан распознавать перегруппировку абзацев, переносы, другие элементы текстовых данных (смысл текста не меняется, просто происходит его коррекция);
    • технология обязана так преобразовывать поток информации, чтобы невозможно на практике осуществить обратную процедуру – восстановить из значения хэш первоначальные данные;
    • протокол должен использовать такие математические уравнения, которые исключили или значительно снизили факт появления коллизии.

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

    Добавить комментарий