Вы находитесь на странице: 1из 3

Лабораторная работа.

Хеширование
Задачи
Часть 1. Создание хешей с помощью OpenSSL
Часть 2. Проверка хешей

Общие сведения и сценарий


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

Необходимые ресурсы
• Виртуальная машина рабочей станции CyberOps
• Доступ к Интернету

Часть 1: Создание хешей с помощью OpenSSL


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

Шаг 1: Хеширование текстового файла


a. В виртуальной машине рабочей станции CyberOps откройте окно терминала.
b. Хеш текстового файла находится в каталоге /home/analyst/lab.support.files/, поэтому перейдите
в этот каталог.
[analyst@secOps ~]$ cd /home/analyst/lab.support.files/
c. Введите приведенную ниже команду для отображения содержимого текстового файла
letter_to_grandma.txt на экране.
[analyst@secOps lab.support.files]$ cat letter_to_grandma.txt
Hi Grandma, (Привет, бабушка!)
I am writing this letter to thank you for the chocolate chip cookies you sent me. (Я
пишу это письмо, чтобы поблагодарить тебя за шоколадное печенье, которое ты мне
прислала.) I got them this morning and I have already eaten half of the box! (Я
получил их утром и уже съел половину коробки!) They are absolutely delicious! (Они
очень вкусные!)

I wish you all the best. (Желаю тебе всего наилучшего.) Love, (С любовью,)
Your cookie-eater grandchild. (твой внук, который очень любит печенье.)

Стр. 1 из 3
Лабораторная работа. Хеширование

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)? Насколько отличается?
____________________________________________________________________________________
почему-то у меня он совсем не отличается, хотя при повторном использование команды нано
введенные изменения присутствуют
____________________________________________________________________________________
____________________________________________________________________________________
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

[analyst@secOps lab.support.files]$ sha1sum letter_to_grandma.txt


08a835c7bcd21ff57d1236726510c79a0867e861 letter_to_grandma.txt
[analyst@secOps lab.support.files]$

Стр. 2 из 3
Лабораторная работа. Хеширование

Совпадают ли хеши, созданные с помощью md5sum и sha1sum, с образами, созданными в пунктах


(g) и (h) соответственно? Дайте пояснение.
отличаются. с использованием sha1sum хеш длиннее, чем в мд5
____________________________________________________________________________________
да,
____________________________________________________________________________________
____________________________________________________________________________________
Примечание. SHA-1 пока практически неуязвим, но компьютеры становятся все более и более
мощными. Предполагается, что в результате естественного развития злоумышленникам в скором
времени удастся взломать SHA-1. В качестве предупредительной меры в настоящее время
рекомендуется по умолчанию использовать для хеширования SHA-2. Следует также отметить, что
SHA-2 в действительности представляет собой семейство алгоритмов хеширования. Семейство
SHA-2 состоит из шести хеш-функций, а именно: SHA-224, SHA-256, SHA-384, SHA-512, SHA-
512/224, SHA-512/256. Эти функции создают хеш-значения длиной 224, 256, 384 и 512 бит
соответственно.
Примечание. ВМ CyberOPS поддерживает только SHA-2-224, SHA-2-256 и SHA-2-512 (sha224sum,
sha256sum и sha512sum соответственно).

Часть 2: Проверка хешей


Как было отмечено, обычно хеши используются для проверки целостности файлов. Выполните
следующие действия, используя хеши SHA-2-256, чтобы проверить целостность файла sample.img,
загруженного из Интернета.
a. Вместе с sample.img также был загружен файл sample.img_SHA256.sig. Файл
sample.img_SHA256.sig содержит SHA-2-256, вычисленный на веб-сайте. Во-первых, используйте
команду cat для показа содержимого файла sample.img_SHA256.sig.
[analyst@secOps lab.support.files]$ cat sample.img_SHA256.sig
c56c4724c26eb0157963c0d62b76422116be31804a39c82fd44ddf0ca5013e6a
b. Используйте SHA256sum для расчета хеша SHA-2-256 файла sample.img.
[analyst@secOps lab.support.files]$ sha256sum sample.img
c56c4724c26eb0157963c0d62b76422116be31804a39c82fd44ddf0ca5013e6a sample.img
Файл sample.img загружен правильно? Дайте пояснение.
____________________________________________________________________________________
да, он загруден правильно.
____________________________________________________________________________________
____________________________________________________________________________________
Примечание. Сравнение хеш-сумм ― это относительно надежный метод обнаружения ошибок при
передаче данных, но существуют лучшие способы убедиться, что содержимое файла не искажено.
Такие средства, как gpg, предлагают намного более эффективный метод проверки того, что
загруженный файл не был изменен третьими сторонами и что он действительно является файлом,
предназначенным издателем для публикации.

Стр. 3 из 3

Вам также может понравиться