Теоретическое руководство




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

Это осуществляется с помощью односторонней хэш-функции. “Односторонняя” означает, что очень трудно (практически невозможно) получить первоначальные данные.

Типичный пример хэш-функции — md5(), которая очень популярна в разных языках программирования.

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

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

$ openssl dgst -<алгоритм> <параметры>

$ openssl <алгоритм> <параметры>

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

Среди алгоритмов хеширования могут применяться следующие:

- md2 (128 бит);

- md4 (128 бит);

- md5 (128 бит);

- mdc2 (128 бит);

- sha (160 бит);

- sha1 (160 бит);

- ripemd160 (160 бит).

В качестве параметров используются следующие ключи (дефисы перед ключами обязательны):

-c - вывести результат с разделяющими байты двоеточиями;

- hex - вывести результат без разделителей;

- binary - вывести результат как строку символов (не все символы являются печатаемыми);

- out <имя_файла> - вывести результат в указанный файл;

- sign <имя_файла> - подписать результат указанным закрытым ключом (поддерживаются только ключи в формате PEM);

- passin <источник_пароля> - указание на источник парольной фразы для ключа;

- verify <имя_файла> - проверить значение, используя открытый ключ в указанном файле;

- prverify <имя_файла> - проверить значение, используя закрытый ключ в указанном файле;

- signature <имя_файла> - файл с подписью, которую необходимо проверить;

- hmac <ключ> - создать хешированный код аутентификации сообщения, используя указанный ключ;

- rand <имя_файла> - использовать указанный файл как источник энтропии для создания зерна ГПСЧ;

- <имя_файла> - выполнить заданную операцию над указанным файлом (указывается последним параметром).

В качестве алгоритма может использоваться одно из следующих значений, выдаваемых командой list-message-digest-commands.

Практическая часть

1. Изучите теоретическое руководство.

2. Подготовьте (создайте или выберите) текстовый файл с семантически понятным содержимым. Дайте ему имя dok.txt.

3. С помощью OpenSSL вычислите значение хэш-функции MD5 от подготовленного текста. Измерьте время хеширования и запомните (запишите) его.

- openssl> dgst -md5 dok.txt

4. Выполните действие 3 для алгоритма SHA1.

- $ openssl> dgst –sha1 dok.txt

5. Сравните время хеширования с применением двух алгоритмов.

6. Измените содержимое исходного файла.

7. Посчитайте хеш-суммы MD5 и SHA1 от измененного файла. Убедитесь, что значения сумм от исходного и измененного файлов не совпадают.

8. Получите аутентификатор выбранного файла с применением алгоритма DES-CBC с помощью OpenSSL и вручную.

9. Выполните операции с хэш-функцией, используя закрытый и открытый ключ

1) Сгенерировать закрытый ключ длиной 2048 бит без парольной фразы для алгоритма RSA и записать их в файл keys.rsa:

- $ openssl> genpkey -out [путь] keys.rsa -algorithm RSA -pkeyopt rsa_keygen_bits:2048

2) Вывести информацию о закрытом ключе:

- $ openssl> rsa -in [путь]keys.rsa -text –noout

 

3) Извлечь открытый ключ в формате РЕМ из закрытого ключа:

- $ openssl> rsa -in [путь]keys.rsa -pubout -out [путь]pubkey.rsa -outform PEM

Откройте папку и убедитесь, что ключ pubkey.rsa создан.

 

4) Подписать хэш-сумму sha512 от файла file закрытым ключом алгоритма RSA, записать подпись в файл file.sig:

- $ openssl> dgst -sha512 -sign [путь]keys.rsa -out [путь]file.sig [путь]file

 

5) Проверить подпись хэш-суммы sha512 из файла file.sig для файла file по алгоритму RSA:

$ openssl >dgst -sha512 -verify [путь]pubrsa.pem -signature [путь]file.sig [путь]file

 

 

Данная команда выводит «Verification OK» при правильной подписи или «Verification Failure» в любом другом случае.

6) Снять защиту ключа парольной фразой:

$ openssl> rsa -in [путь]keys.rsa -passin pass:1234 -out keys_nopass.rsa

 

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

Тема: Создание цифровых сертификатов Х.509 и преобразование их форматов с применением пакета OpenSSL

Цель работы: получить навык применения программного продукта OpenSSL для создания сертификатов X.509 и их преобразования, изучить структуру сертификата X.509 и форматы DER и PEM.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-04-03 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: