Главная страница
Навигация по странице:

  • Два, функция openssl

  • Команда шифрования

  • Асимметричный алгоритм шифрования

  • практическая-работа__№1. Практическая работа 1 Тема Зашифрование данные с помощью алгоритма rsa с использованием библиотеки Openssl. Введение в ssl


    Скачать 1.83 Mb.
    НазваниеПрактическая работа 1 Тема Зашифрование данные с помощью алгоритма rsa с использованием библиотеки Openssl. Введение в ssl
    Анкорprakticheskayarabota
    Дата16.05.2022
    Размер1.83 Mb.
    Формат файлаdocx
    Имя файлапрактическая-работа__№1.docx
    ТипПрактическая работа
    #531550

    Практическая работа №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

     


    написать администратору сайта