практическая-работа__№1. Практическая работа 1 Тема Зашифрование данные с помощью алгоритма rsa с использованием библиотеки Openssl. Введение в ssl
Скачать 1.83 Mb.
|
Практическая работа №1 Тема Зашифрование данные с помощью алгоритма RSA с использованием библиотеки OpenSSL. Введение в SSL Чтобы сделать сетевое общение более безопасным, требуются аутентификация и шифрование. Аутентификация означает, что вы являетесь тем человеком, которого ищете, а шифрование означает шифрование сообщений. По этой причине кто-то разработал SSL, уровень безопасности на сокете, который представляет собой безопасный уровень связи поверх TCP. HTTP на SSL - это HTTP. Аутентификация решается с помощью алгоритма сертификат + асимметричное шифрование, см. в частности: процесс взаимодействия Процесс взаимодействия SSL по-прежнему очень сложен, включая асимметричное шифрование и симметричное шифрование, а также сложные процессы взаимодействия. По этой причине кто-то написал библиотеку openssl. Эта библиотека очень широко используется. В этой статье объясняется, как установить и в основном использовать ее. библиотека. С помощью этой библиотеки openssl вы можете напрямую писать код, взаимодействующий с HTTPS. Два, функция openssl OpenSSL может реализовать: управление сертификатами ключей, симметричное шифрование и асимметричное шифрование. Команда шифрованияИнструменты: openssl enc, gpg Алгоритм: 3des, aes, blowfish, twofish, 3des и т. Д. Общие варианты: -in имя_файла: указать путь к хранилищу файла, который нужно зашифровать. -out имя файла: указать путь хранения зашифрованного файла -salt: автоматически вставлять случайное число в качестве шифрования содержимого файла, вариант по умолчанию добавляет немного соли :) -e: шифрование; -d: Расшифровка, алгоритм также может быть указан при расшифровке, если не указан, будет использоваться алгоритм по умолчанию, но он должен соответствовать алгоритму шифрования -a / -base64: при выполнении шифрования и дешифрования он выполняет только операции с данными, а иногда требует преобразования base64, устанавливая После этой опции зашифрованный результат кодируется в кодировке base64, а перед расшифровкой кодируется base64. Алгоритмы шифрования и дешифрования можно разработать самостоятельно.Любой алгоритм можно использовать для просмотра зашифрованного содержимого с помощью openssl help enc. команда enc: Помощь: man enc Шифрование: openssl enc -e -des3 -a -salt -in testfile -out testfile.cipher Расшифровать: openssl enc -d -des3 -a -salt –in testfile.cipher -out testfile openssl ? Симметричный алгоритм шифрования OpenSSL предоставляет всего 8 алгоритмов симметричного шифрования, 7 из которых являются алгоритмами блочного шифрования, а единственный алгоритм шифрования потока - RC4. 7 алгоритмов блочного шифрования: AES, DES, Blowfish, CAST, IDEA, RC2, RC5, и все они поддерживают режим электронной кодовой книги (ECB), режим зашифрованной блочной связи (CBC), режим зашифрованной обратной связи (CFB) и режим обратной связи по выходу (OFB). ) Четыре обычно используемых режима шифрования блочного шифра. Среди них режим обратной связи с шифрованием (CFB) и режим обратной связи по выходу (OFB), используемые AES, имеют длину пакета 128 бит, а другие алгоритмы используют 64 бита. Фактически, алгоритм DES является не только обычно используемым алгоритмом DES, но также поддерживает три ключа и два ключевых алгоритма 3DES. Асимметричный алгоритм шифрования В OpenSSL реализовано 4 алгоритма асимметричного шифрования, включая алгоритм DH, алгоритм RSA, алгоритм DSA и алгоритм эллиптической кривой (EC). Общий обмен ключами пользователя по алгоритму DH. Алгоритм RSA может использоваться как для обмена ключами, так и для цифровой подписи.Конечно, если вы терпите его медленную скорость, его также можно использовать для шифрования данных. Алгоритм DSA обычно используется только для цифровых подписей. Сводная командаopenssl dgst Общие варианты: [-md5 | -md4 | -md2 | -sha1 | -sha | -mdc2 | -ripemd160 | -dss1]: укажите алгоритм дайджеста -out имя_файла: сохранить содержимое сводки в указанный файл команда dgst: Справка: man dgst openssl dgst -md5 [-hex шестнадцатеричный по умолчанию] / ПУТЬ / НЕКОТОРЫЕ openssl dgst -md5 testfile md5sum /PATH/TO/SOMEFILE MAC: код аутентификации сообщения, расширенное приложение одностороннего шифрования, используемое для реализации сетевой связи Механизм обеспечения целостности передаваемых данных в письме CBC-MAC HMAC: используйте алгоритм md5 или sha1 Простой пример, чтобы найти сводку md5 файла 1: Сгенерируйте пароль, base64 и т. Д.Стандартная команда, необходимая для генерации пароля, - passwd, используется следующее: openssl passwd [-crypt] [-1] [-apr1] [-salt string] [-in file] [-stdin] [-noverify] [-quiet] [-table] {password} Общие варианты: -1: использовать алгоритм шифрования md5 -salt строка: добавить случайные числа, до 8 случайных чисел -in file: зашифровать содержимое входного файла -stdion: зашифровать содержимое стандартного ввода Генерация случайных чиселВо время SSL-взаимодействия необходимо сгенерировать случайные числа. Стандартная команда, используемая для генерации случайных чисел, - rand, используется следующее: openssl rand [-out file] [-rand file(s)] [-base64] [-hex] num Общие варианты: -out файл: сохранить сгенерированное случайное число в указанный файл -base64: использовать формат кодирования base64 -hex: использовать шестнадцатеричный формат кодирования Создайте пару ключейСначала вам нужно использовать стандартную команду genrsa для генерации закрытого ключа, а затем использовать стандартную команду rsa для извлечения открытого ключа из закрытого ключа. Genrsa используется следующим образом: openssl genrsa [-out filename] [-passout arg] [-des] [-des3] [-idea] [-f4] [-3] [-rand file(s)] [-engine id] [numbits] Общие варианты: -out filename: сохранить сгенерированный закрытый ключ в указанный файл -des | -des3 | -idea: разные алгоритмы шифрования numbits: укажите размер сгенерированного закрытого ключа, по умолчанию 2048 В нормальных условиях права доступа к файлу секретного ключа должны хорошо контролироваться и могут быть прочитаны и записаны только вами. Поэтому вы можете использовать команду umask для установки разрешений сгенерированного закрытого ключа. Примеры следующие: Использование ras заключается в следующем: openssl rsa [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-passin arg] [-out filename] [-passout arg] [-sgckey] [-des] [-des3] [-idea] [-text] [-noout] [-modulus] [-check] [-pubin] [-pubout] [-engine id] Общие варианты: -in filename: указать файл закрытого ключа -out filename: указать, чтобы сохранить извлеченный открытый ключ в указанный файл -pubout: извлечь открытый ключ на основе закрытого ключа Создать сертификатПри использовании инструмента openssl для создания сертификата CA и подачи заявки на сертификат вам необходимо сначала проверить файл конфигурации, потому что файл конфигурации определяет имя и место хранения сертификата и другую связанную информацию. Шаг 1. Создайте необходимые каталоги и файлы для CA ![i(http://upload-images.jianshu.io/upload_images/1737506-a44da07298662473.png!web?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) Шаг 2. Укажите начальный номер сертификата ]# echo 01 >> serial Шаг 3: Создайте закрытый ключ Имя файла и место хранения закрытого ключа должны соответствовать настройкам в файле конфигурации; Шаг 4. Создайте самозаверяющий сертификат. Место хранения самозаверяющего сертификата также должно соответствовать настройкам в файле конфигурации. При создании сертификата необходимо ввести соответствующую информацию; Объяснение опций, используемых в команде: -new: означает создание нового запроса на подпись сертификата. -x509: выделено CA для создания самозаверяющего сертификата, если это не самозаверяющий сертификат, этот элемент не требуется -key: файл закрытого ключа, используемый при создании запроса. -out: путь для сохранения сертификата -days: срок действия сертификата, единица измерения - день (день), по умолчанию 365 дней. (2) Выдача справок Чтобы сгенерировать запрос сертификата на хосте, который должен использовать сертификат, возьмите в качестве примера службу httpd, шаги следующие: Шаг 1. Создайте закрытый ключ на узле, который должен использовать сертификат. Местоположение файла закрытого ключа можно определить по желанию. Шаг 2. Создайте запрос на подпись сертификата. Шаг 3. Отправьте запрос на узел CA надежным способом Шаг 4. Сервер CA выдает сертификат после получения файла запроса на подпись сертификата. Этот шаг выполняется на сервере CA Команда для просмотра информации о сертификате: (3) Аннулирование сертификата Действия по аннулированию сертификата также выполняются на сервере CA. На примере вновь созданного сертификата httpd.crt можно отозвать следующие шаги: Шаг 1. Получите серийный номер и информацию о субъекте сертификата, который нужно отозвать на клиенте. Шаг 2. В соответствии с серийной и предметной информацией, предоставленной клиентом, сравните, согласован ли index.txt, хранящийся в других локальных базах данных. Шаг 3. Выполните отзыв Шаг 4: Создайте номер отзыва сертификата отзыва (выполняется, когда сертификат отзывается в первый раз). # echo 01 > /etc/pki/CA/crlnumber Шаг 5. Обновите список отзыва сертификатов # openssl ca -gencrl -out /etc/pki/CA/crl/ca.crl Просмотреть команду crl файла: # openssl crl -in /etc/pki/CA/crl/ca.crl -noout -text |