Шифрование с помощью OpenSSL




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

Тема: Установка и запуск программы OpenSSL в ОС Windows. Основы работы в OpenSSL

Цель работы: получить начальные навыки работы в программе OpenSSL

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

OpenSSL - это система защиты и сертификации данных, название SSL переводится, как система безопасных сокетов (secure socket layer). OpenSSL используется практически всеми сетевыми серверами для защиты передаваемой информацией. Существует программное API SSL (SSLEAY), позволяющее создавать безопасные сокеты с шифрацией передаваемых данных в собственных разработках. Кроме того, OpenSSL это криптографический пакет с открытым исходным кодом для работы с SSL/TLS. Позволяет создавать ключи RSA, DH, DSA и сертификаты X.509, подписывать их, формировать CSR и CRT. Также имеется возможность шифрования данных и тестирования SSL/TLS соединений. (по версии Wikipedia). TLS – это так называемый «транспорт» или от английского — Transport Layer Security — криптографический протокол, обеспечивающий защищённую передачу данных между узлами в сети Интернет. SSL от английского Secure Sockets Layer — уровень защищённых сокетов — криптографический протокол, который обеспечивает установление безопасного соединения между клиентом и сервером, именно так нам объясняет Wikipedia понятия TLS & SSL и это верно.

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

OpenSSL основана на SSLeay, написанной Эриком Янгом (Eric A. Young) и Тимом Хадсоном (Tim Hudson), которые неофициально закончили работать над ней в декабре 1998 года, когда они начали работать в проекте RSA Security.

Шифрование с помощью OpenSSL

Т.к. OpenSSL поддерживает очень много различных стандартов сертификации, шифрования, хеширования, то использование данной команды достаточно сложно. Внутри OpenSSL существуют отдельные компоненты, отвечающие за то или иное действие, для получения списка доступных компонентов можно вызвать openssl с параметрами list-standart-commands. Можно также получить список доступных алгоритмов хеширования (list-message-digest-commands) и алгоритмов шифрования (list-cipher-commands).

Применение OpenSSL:

- Создание RSA, DH и DSA ключей

- Создание сертификатов X.509, CSR и CRL

- Шифрование и дешифрование с помощью алгоритмов

- SSL/TLS клиент и сервер тесты

-Обработка, дешифровка и шифровка электронной почты

OpenSSL поддерживает разные алгоритмы шифрования и хеширования:

Симметричные: Blowfish, Camellia, DES, RC2, RC4, RC5, IDEA, AES, ГОСТ 28147-89

Хеш-функции: MD5, MD2, SHA, MDC-2, ГОСТ Р 34.11-94

Асимметричные: RSA, DSA, Diffie-Hellman key exchange, ГОСТ Р 34.10-2001 (34.10-94)

Поддержка алгоритмов ГОСТ появилась в версии 1.0.0, выпущенной 29 марта 2010 года, и была реализована сотрудниками фирмы «Криптоком»

OpenSSL может использоваться во множестве случаев и умеет выполнять следующие задачи:

- создавать и управлять ключами RSA и DSA - команды rsa, dsa, dsaparam;

- создавать сертификаты формата x509, запросы на сертификацию, восстановление - команды x509, req, verify, ca, crl, pks12, pks7;

- зашифровывать данные с помощью симметрического или асимметрического шифрования - команды enc, rsautl;

- высчитывать хеши различных типов - команда dgst;

- работать с S/MIME - команда s/mime;

- проверять работу серверов и клиентов ssl - команды s_client, s_server.

Синтаксис OpenSSL следующий:

$ openssl <команда> [<опции команды>] [<параметры команды>]

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

Имеются следующие команды:

• псевдокоманда list-standard-commands - выводит перечень поддерживаемых команд;

• псевдокоманда list-message-digest-commands - выводит перечень команд для применения алгоритмов хеширования;

• псевдокоманда list-cipher-commands - выводит перечень команд для применения алгоритмов шифрования и кодирования;

• ca - управление центром сертификации;

• crl - управление списками отзыва сертификатов;

• dgst - вычисление хэш-функций;

• dsa - управление ключами алгоритма DSA;

• ec - обработка ключей алгоритмов на основе эллиптических кривых;

• ecparam - генерация и обработка файлов с параметрами эллиптических кривых;

• enc - применение алгоритмов симметричного шифрования;

• genpkey - генерация закрытых ключей;

• ocsp - управление протоколом OCSP;

• pkcs12 - управление контейнерами PKCS12;

• pkcs7 - управление контейнерами PKCS7;

• pkey - обработка открытых и закрытых ключей для асимметричных алгоритмов шифрования;

• pkeyparam - просмотр параметров ключей;

• pkeyutl - выполнение операций с применением асимметричных алгоритмов шифрования;

• rand - генерация псевдослучайных последовательностей;

• req - управление запросами на подпись (CSR);

• rsa - обработка ключей RSA;

• speed - вычисление скорости алгоритмов;

• verify - проверка сертификатов X.509;

• version - информация о версии OpenSSL;

• x509 - операции над сертификатами X.509.

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



Поделиться:




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

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


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