Что такое хэш файла

Для чего проверяются хэш-суммы файлов и как это сделать?

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

Что такое целостность файла?

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

Зачем проверять целостность файла?

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

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

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

Как можно проверить целостность файла?

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

Чтобы выполнить проверку по алгоритму MD5, нужно ввести в командную строку следующее:

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

Что такое хэш суммы md5?

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

Как проверить хэш-сумму MD5 с помощью программы Solid Explorer?

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

Что такое хэш файла. Смотреть фото Что такое хэш файла. Смотреть картинку Что такое хэш файла. Картинка про Что такое хэш файла. Фото Что такое хэш файла

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

Процесс установки на Android выглядит следующим образом:

Есть ли другие подобные решения

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

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

Что такое хэш файла. Смотреть фото Что такое хэш файла. Смотреть картинку Что такое хэш файла. Картинка про Что такое хэш файла. Фото Что такое хэш файла

Еще одним способом проверки совпадения хэш-суммы является использование языков веб-программирования для написания специализированного скрипта.

Советы и выводы

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

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

Пожалуйста, оставьте ваши мнения по текущей теме материала. За комментарии, дизлайки, отклики, лайки, подписки огромное вам спасибо!

Источник

Что такое хеш-сумма файла и как её замерять

Нет, примерно конечно имел представление, но полностью в вопрос не вникал просто. Пришло время разобраться подробно самому в этом деле и рассказать все нюансы, как всегда — простым и понятным языком, с картинками.

Что такое хеш-сумма файла

Что такое хэш файла. Смотреть фото Что такое хэш файла. Смотреть картинку Что такое хэш файла. Картинка про Что такое хэш файла. Фото Что такое хэш файла

Всё очень и очень просто с этим самым хешем — давайте возьмём два файла, с первого взгляда, совершенно одинаковых…

Что такое хэш файла. Смотреть фото Что такое хэш файла. Смотреть картинку Что такое хэш файла. Картинка про Что такое хэш файла. Фото Что такое хэш файла

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

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

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

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

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

Ещё одна ситуация — выбрали и начали скачивание какой-либо программы, файла или архива через торрент? В таком случае, подсунуть маленький бездомный вирус ещё проще, ведь файл закачивается в компьютер крохотными частями, от огромного количества человек и собирается в кучу только у конечного пользователя.

Читайте также на сайте:

Как же проверить подлинность любого файла, как его идентифицировать со 100% гарантии? Сравнить его хеш-сумму (контрольную сумму)!

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

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

Что такое хэш файла. Смотреть фото Что такое хэш файла. Смотреть картинку Что такое хэш файла. Картинка про Что такое хэш файла. Фото Что такое хэш файла

Файлы с одинаковым хешем являются абсолютно идентичными, даже если у них разное название или расширение.

Алгоритмы (стандарты) расчёта хеш-суммы файла

Их довольно много существует на данный момент времени…

…но самыми распространёнными и популярными являются…

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

Как создавать (задавать) хеш-сумму файла мы сегодня обсуждать и учиться не будем — это тема следующей статьи будет.

Как проверить хеш-сумму файла — HashTab

Очень и очень просто. Сейчас вмонтируем в Проводник Windows специальный инструмент для вычисления и проверки этой контрольной суммы файла.

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

Устанавливаем её в свою операционную систему (ссылка на скачивание инсталлятора чуть ниже)…

Что такое хэш файла. Смотреть фото Что такое хэш файла. Смотреть картинку Что такое хэш файла. Картинка про Что такое хэш файла. Фото Что такое хэш файла

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

Что такое хэш файла. Смотреть фото Что такое хэш файла. Смотреть картинку Что такое хэш файла. Картинка про Что такое хэш файла. Фото Что такое хэш файла

Что такое хэш файла. Смотреть фото Что такое хэш файла. Смотреть картинку Что такое хэш файла. Картинка про Что такое хэш файла. Фото Что такое хэш файла

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

Что такое хэш файла. Смотреть фото Что такое хэш файла. Смотреть картинку Что такое хэш файла. Картинка про Что такое хэш файла. Фото Что такое хэш файла

Зелёная галка в появившемся разделе «Сравнение хеша» означает, что всё хорошо и файл телепортировался в целости и сохранности (никто его по пути не перехватывал и не внедрял в него вирус).

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

Настройки HashTab очень просты и сводятся к активации (отображению) дополнительных стандартов в окошке свойств файла…

Что такое хэш файла. Смотреть фото Что такое хэш файла. Смотреть картинку Что такое хэш файла. Картинка про Что такое хэш файла. Фото Что такое хэш файла

Скачать HashTab

Предназначение:Бесплатная программа для проверки целостности и подлинности файлов посредством вычисления контрольной хеш-суммы
Название программы:HashTab
Производитель (автор):Implbits®
Статус:Бесплатно
Категория:Безопасность
Размер инсталлятора (архива):1.1 Мб
Поддержка ОС:Windows XP,7,8,10
Язык интерфейса:Английский, Русский…
Безопасность:Вирусов нет
Похожие программы:
Ссылка на инсталлятор/сайт:Скачать/Перейти

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

ПОЛЕЗНОЕ ВИДЕО

Источник

Что такое хэш и хэш-функция: практическое применение, обзор популярных алгоритмов

Цифровые технологии широко применяют хеширование, несмотря на то, что изобретению более 50 лет: аутентификация, осуществление проверки целостности информации, защита файлов, включая, в некоторых случаях, определение вредоносного программного обеспечения и многие другие функции. Например, множество задач в области информационных технологий требовательны к объему поступающих данных. Согласитесь, проще и быстрее сравнить 2 файла весом 1 Кб, чем такое же количество документов, но, к примеру, по 10 Гб каждый. Именно по этой причине алгоритмы, способные оперировать лаконичными значениями, весьма востребованы в современном мире цифровых технологий. Хеширование – как раз решает эту проблему. Разберемся подробно, что такое хэш и хэш-функция.

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

Что такое хэш файла. Смотреть фото Что такое хэш файла. Смотреть картинку Что такое хэш файла. Картинка про Что такое хэш файла. Фото Что такое хэш файла

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

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

Коллизии

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

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

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

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

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

Требования

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

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

Практическое применение

Процедура хеширования относительно своего функционала может быть нескольких типов:

Разберемся детальней в сфере применения протоколов хеширования.

Скачивание файлов из Всемирной Паутины

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

Важно! Установив на ПК пакет утилит, прогоняем через него файлы. Затем сравниваем полученный результат. Совпадение символов говорит о правильной копии – соответствующей оригиналу. Обнаруженные различия подразумевают повторное скачивание файла.

Алгоритм и электронно-цифровая подпись (ЭЦП)

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

Ревизия паролей

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

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

Как появилось понятие хэш?

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

Дата (год)Хронология событий
1953Известный математик и программист Дональд Кнут авторитетно считает, что именно в этот промежуток времени сотрудник IBM Ханс Питер Лун впервые предложил идею хеширования.
1956Арнольд Думи явил миру такой принцип хеширования, какой знают его подавляющее большинство современных программистов. Именно эта «светлая голова» предложила считать хэш-кодом остаток деления на любое простое число. Кроме этого, исследователь видел идеальное хеширование инструментов для позитивной реализации «Проблемы словаря».
1957Статья Уэсли Питерсона, опубликованная в «Journal of Research and Development», впервые серьезно затронула поиск информации в больших файлах, определив открытую адресацию и ухудшение производительности при ликвидации.
1963Опубликован труд Вернера Бухгольца, где было представлено доскональное исследование хэш-функции.
1967В труде «Принципы цифровых вычислительных систем» авторства Херберта Хеллермана впервые упомянута современная модель хеширования.
1968Внушительный обзор Роберта Морриса, опубликованный в «Communications of the ACM», считается точкой отсчета появления в научном мире понятия хеширования и термина «хэш».

Интересно! Еще в 1956 году советский программист Андрей Ершов называл процесс хеширования расстановкой, а коллизии хэш-функций – конфликтом. К сожалению, ни один из этих терминов не прижился.

Стандарты хеширования: популярные варианты

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

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

Источник

HackWare.ru

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

Хеши: определение типа, подсчёт контрольных сумм, нестандартные и итерированные хеши

Что такое хеши и как они используются

Хеш-сумма (хеш, хеш-код) — результат обработки неких данных хеш-функцией (хеширования).

Хеширование, реже хэширование (англ. hashing) — преобразование массива входных данных произвольной длины в (выходную) битовую строку фиксированной длины, выполняемое определённым алгоритмом. Функция, реализующая алгоритм и выполняющая преобразование, называется «хеш-функцией» или «функцией свёртки». Исходные данные называются входным массивом, «ключом» или «сообщением». Результат преобразования (выходные данные) называется «хешем», «хеш-кодом», «хеш-суммой», «сводкой сообщения».

Это свойство хеш-функций позволяет применять их в следующих случаях:

Одним из применений хешов является хранение паролей. Идея в следующем: когда вы придумываете пароль (для веб-сайта или операционной системы) сохраняется не сам пароль, а его хеш (результат обработки пароля хеш-функцией). Этим достигается то, что если система хранения паролей будет скомпрометирована (будет взломан веб-сайт и злоумышленник получит доступ к базе данных паролей), то он не сможет узнать пароли пользователей, поскольку они сохранены в виде хешей. Т.е. даже взломав базу данных паролей он не сможет зайти на сайт под учётными данными пользователей. Когда нужно проверить пароль пользователя, то для введённого значения также рассчитывается хеш и система сравнивает два хеша, а не сами пароли.

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

Как определить тип хеша

Существует большое количество хешей. Некоторые из них являются универсальными и применяются различными приложениями, например, MD5, SHA1, CRC8 и другие. Некоторые хеши применяются только в определённых приложениях (MySQL, vBulletin) и протоколами.

Кроме популярных хешей, разработчики могут использовать различные сочетания универсальных хешей (например, посчитать хеш с помощью MD5, а затем для полученной строки получить хеш SHA1), либо итерированные (с повторением) хеши (например, для пароля рассчитывается MD5 хеш, затем для полученной строки вновь рассчитывается MD5 хеш, затем для полученной строки вновь считается MD5 – и так тысячу раз).

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

Обычно пентестеру известен источник хеша и он знает его тип. Но бывают исключения. В этой ситуации необходимо «угадать» какой хеш перед нами.

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

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

hashID

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

hashID – это инструмент, написанный на Python 3, который поддерживает идентификацию более 220 уникальных типов хешей используя регулярные выражения.

Использование программы очень простое:

Пара важных замечаний:

Хеш режимы Hashcat – это условное обозначение типа хеша, которое необходимо указать с опцией -m, —hash-type.

Информацию о других опциях hashID вы найдёте здесь: https://kali.tools/?p=2772

Что такое хэш файла. Смотреть фото Что такое хэш файла. Смотреть картинку Что такое хэш файла. Картинка про Что такое хэш файла. Фото Что такое хэш файла

Как можно увидеть по скриншоту, это Drupal > v7.x в Hashcat для взлома данного хеша необходимо указать режим 7900.

Получаем сразу несколько вариантов:

Что такое хэш файла. Смотреть фото Что такое хэш файла. Смотреть картинку Что такое хэш файла. Картинка про Что такое хэш файла. Фото Что такое хэш файла

MD5cryp – это алгоритм, который вызывает тысячу раз стандартный MD5, для усложнения процесса.

Для справки: MD5 использовался для хеширования паролей. В системе UNIX каждый пользователь имеет свой пароль и его знает только пользователь. Для защиты паролей используется хеширование. Предполагалось, что получить настоящий пароль можно только полным перебором. При появлении UNIX единственным способом хеширования был DES (Data Encryption Standard), но им могли пользоваться только жители США, потому что исходные коды DES нельзя было вывозить из страны. Во FreeBSD решили эту проблему. Пользователи США могли использовать библиотеку DES, а остальные пользователи имеют метод, разрешённый для экспорта. Поэтому в FreeBSD стали использовать MD5 по умолчанию. Некоторые Linux-системы также используют MD5 для хранения паролей.

Что такое хэш файла. Смотреть фото Что такое хэш файла. Смотреть картинку Что такое хэш файла. Картинка про Что такое хэш файла. Фото Что такое хэш файла

Программа говорит, что это SHA-512 Crypt – т.е. SHA512 (Unix).

HashTag

HashTag – это инструмент на python, который разбирает и идентифицирует различные хеши паролей на основе их типа. HashTag поддерживает определение более 250 типов хешей и сопоставляет их с более чем 110 режимами hashcat. HashTag способен идентифицировать единичный хеш, разобрать единичный файл и определить хеши внутри него или обойти директорию и все поддиректории в поисках потенциальных файлов хешей и идентифицировать все найденные хеши.

Т.е. это аналогичная предыдущей программа.

По умолчанию в Kali Linux она отсутствует, поэтому требуется её скачать:

Хеш для HashTag также нужно помещать в одинарные кавычки. Хеш нужно писать после опции -sh. Зато сразу, без дополнительных опций выводятся режимы. Информацию о других опциях HashTag вы найдёте здесь: https://kali.tools/?p=2777

Идентифицируем те же самые хеши:

Что такое хэш файла. Смотреть фото Что такое хэш файла. Смотреть картинку Что такое хэш файла. Картинка про Что такое хэш файла. Фото Что такое хэш файла

Что такое хэш файла. Смотреть фото Что такое хэш файла. Смотреть картинку Что такое хэш файла. Картинка про Что такое хэш файла. Фото Что такое хэш файла

Что такое хэш файла. Смотреть фото Что такое хэш файла. Смотреть картинку Что такое хэш файла. Картинка про Что такое хэш файла. Фото Что такое хэш файла

Как видим, результаты аналогичны.

Примеры хешей

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

На той странице вы можете:

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

К примеру, меня интересует хеш c73d08de890479518ed60cf670d17faa26a4a71f995c1dcc978165399401a6c4:53743528:

Что такое хэш файла. Смотреть фото Что такое хэш файла. Смотреть картинку Что такое хэш файла. Картинка про Что такое хэш файла. Фото Что такое хэш файла

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

Получаем более правильный результат:

Что такое хэш файла. Смотреть фото Что такое хэш файла. Смотреть картинку Что такое хэш файла. Картинка про Что такое хэш файла. Фото Что такое хэш файла

В действительности это sha256($pass.$salt).

Как рассчитать хеш (контрольную сумму)

В Linux имеются программы для расчёта и сверки популярных хешей:

Информация о SHA-2 (безопасный алгоритм хеширования, версия 2) – семействе криптографических алгоритмов (SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/256 и SHA-512/224.): https://ru.wikipedia.org/wiki/SHA-2

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

Применение всех этих программ похожее – нужно указать имя файла, либо передать по стандартному вводу строку.

Если для расчёта хеша строки вы используете echo, то крайне важно указывать опцию -n, которая предотвращает добавление символа новой строки – иначе каждый хеш для строки будет неверным!

Пример подсчёта хеша SHA1 для строки test:

Ещё один способ передачи строки без добавления конечного символа newline

Этот же результат можно получить следующей конструкцией:

Программы для вычисления различных хешей

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

Список некоторых популярных программ для вычисления хешей:

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

Последовательное хеширование с использованием трубы (|)

К примеру, нам нужно рассчитать sha256 хеш для строки ‘HackWare’; а затем для полученной строки (хеша), рассчитать хеш md5. Задача кажется очень тривиальной:

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

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

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

мы получим совсем не тот результат, который ожидаем. Мы предполагаем посчитать sha256 хеш строки ‘HackWare’, а затем для полученной строки (хеша) рассчитать новый хеш md5. На самом деле, md5sum рассчитывает хеш строки, к которой прибавлено « ». Т.е. получается совершенно другой результат.

Выше уже рассмотрено, как из вывода удалять « », кажется, теперь всё должно быть в порядке:

Давайте разобьём это действие на отдельные команды:

Второй этап хеширования:

Это и есть правильный ответ.

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

Используя printf можно вывести результат без конечного символа новой строки:

Результат вновь правильный:

С printf не все дружат и проблематично использовать рассмотренную конструкцию если нужно хешировать более трёх раз, поэтому лучше использовать tr:

Вновь правильный результат:

Или даже сделаем ещё лучше – с программой awk будем использовать printf вместо print (это самый удобный и короткий вариант):

Как посчитать итерированные хеши

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

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

Пример кода, который подсчитывает MD5 хеш с 1000 итераций:

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *