Хеширование
Задачи
Часть 1. Создание хешей с помощью OpenSSL
Часть 2. Проверка хешей
Необходимые ресурсы
Виртуальная машина рабочей станции CyberOps
Доступ к Интернету
I wish you all the best. (Желаю тебе всего наилучшего.) Love, (С любовью,)
Your cookie-eater grandchild. (твой внук, который очень любит печенье.)
d. По-прежнему из окна терминала введите приведенную ниже команду для хеширования текстового
файла. Команда будет использовать MD5 в качестве алгоритма хеширования для создания хеша
текстового файла. Рассчитанный с помощью OpenSSL хеш будет выведен на экран.
[analyst@secOps lab.support.files]$ openssl md5 letter_to_grandma.txt
Лабораторная работа. Хеширование
MD5(letter_to_grandma.txt)= 8a82289f681041f5e44fa8fbeeb3afb6
Обратите внимание на формат выходных данных. OpenSSL показывает использованный алгоритм
хеширования MD5, а затем имя файла, используемого в качестве входных данных. Собственно
хеш MD5 отображается после знака равно (=).
e. Хеш-функции полезны для проверки целостности данных, будь то изображение, песня или просто
текстовый файл. Самое малое изменение приводит к совершенно другому хешу. Хеш можно
рассчитать до и после передачи, а затем сравнить. Если хеши не совпадают, данные были
изменены во время передачи.
Давайте изменим текстовый файл letter_to_grandma.txt и пересчитаем хеш MD5. Выполните
приведенную ниже команду, чтобы открыть nano, текстовый редактор, запускаемый из командной
строки.
[analyst@secOps lab.support.files]$ nano letter_to_grandma.txt
С помощью nano измените первое предложение с Hi Grandma на Hi Grandpa. Обратите
внимание, что изменяется только один символ: m на p. После внесения изменения нажмите
клавиши <CONTROL+X>, чтобы сохранить измененный файл. Нажмите Y, чтобы подтвердить имя
и сохранить файл. Нажмите клавишу <Enter>, чтобы выйти из nano и перейти к следующему шагу.
f. Теперь, когда файл изменен и сохранен, запустите ту же команда повторно, чтобы создать хеш
MD5 файла.
[analyst@secOps lab.support.files]$ openssl md5 letter_to_grandma.txt
MD5(letter_to_grandma.txt) = dca1cf6470f0363afb7a65a4148fb442
Отличается ли новый хеш от рассчитанного в пункте (d)? Насколько отличается?
___1._MD5(letter_to_grandma.txt)=
8a82289f681041f5e44fa8fbeeb3afb6_________________________
__2._ MD5(letter_to_grandma.txt)=
dca1cf6470f0363afb7a65a4148fb442________________________
_ т.к. хеш, — это математический алгоритм, преобразовывающий произвольный
массив данных в состоящую из букв и цифр строку фиксированной длины. Причем
при условии использования того же типа хеша длина эта будет оставаться
неизменной, вне зависимости от объема вводных данных, что мы и наблюдаем в
данном примере. НО меняется набор и порядок/чередование букв и цифр
g. Хеши MD5 считаются слабыми и уязвимыми для атак. К более надежным алгоритмам
хеширования относятся SHA-1 и SHA-2. Для создания хеша SHA-1 файла letter_to_grandma.txt
используйте приведенную ниже команду.
[analyst@secOps lab.support.files]$ openssl sha1 letter_to_grandma.txt
SHA1(letter_to_grandma.txt) = 08a835c7bcd21ff57d1236726510c79a0867e861
[analyst@secOps lab.support.files]$
Примечание. Существуют и другие средства для создания хешей. В частности, md5sum, sha1sum
и sha256sum могут быть использованы для получения хешей MD5, SHA-1 и SHA-2-256
соответственно.
h. Используйте md5sum и sha1sum для создания хеша MD5 и SHA-1 файла hash
letter_to_grandma.txt.
[analyst@secOps lab.support.files]$ md5sum letter_to_grandma.txt
dca1cf6470f0363afb7a65a4148fb442 letter_to_grandma.txt
Лабораторная работа. Хеширование
c56c4724c26eb0157963c0d62b76422116be31804a39c82fd44ddf0ca5013e6a____________________
_______________________________________________________________
sha256sum sample.img
c56c4724c26eb0157963c0d62b76422116be31804a39c82fd44ddf0ca5013e6a sample.img__________
_______да, файл загружен правильно.
__________________________________________
Примечание. Сравнение хеш-сумм ― это относительно надежный метод обнаружения ошибок при
передаче данных, но существуют лучшие способы убедиться, что содержимое файла не искажено.
Такие средства, как gpg, предлагают намного более эффективный метод проверки того, что
загруженный файл не был изменен третьими сторонами и что он действительно является файлом,
предназначенным издателем для публикации.