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

Как шифровать и расшифровывать файлы и каталоги с помощью OpenSSL и Linux


Безопасное шифрование и расшифровка файлов и каталогов имеет важное значение для защиты конфиденциальных данных. OpenSSL, мощный инструмент с открытым исходным кодом, обеспечивает надежные возможности шифрования и дешифрования, которые могут работать с файлами любого размера, от небольших текстовых файлов до больших двоичных файлов и даже целых каталогов. Это руководство проведет вас через процесс шифрования и расшифровки файлов и каталогов с помощью OpenSSL в системах Linux, таких как Redhat, Ubuntu, Debian, CentOS и Fedora.

В этом уроке вы узнаете:

  • Как создать образец файла или каталога
  • Как создать пару открытого и закрытого ключей RSA
  • Как зашифровать файл или каталог с помощью OpenSSL
  • Как расшифровать зашифрованный файл или каталог обратно в исходное состояние

Создание примера файла или каталога и генерация ключей RSA

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

  1. Создание образца файла или каталога: Вы можете создать файл или каталог в зависимости от того, что вы хотите зашифровать. Вот команды для обоих:Для файла:

    fallocate -l 100M sample_file.img

    Эта команда создает файл с именем sample_file.img размером 100 МБ.

    Для каталога:

    mkdir sample_directory
    touch sample_directory/file1.txt sample_directory/file2.txt
  2. При этом создается каталог с именем sample_directory, содержащий два текстовых файла.

  3. Создание пары открытого и закрытого ключей RSA: Теперь сгенерируйте пару открытого и закрытого ключей с помощью команды OpenSSL:

    openssl req -x509 -nodes -newkey rsa:2048 -keyout private-key.pem -out public-key.pem

    Эта команда создает 2048-битную пару ключей RSA. Закрытый ключ хранится в файле private-key.pem, а открытый ключ — в файле public-key.pem. Во время этого процесса вам будет предложено ввести данные сертификата, но вы можете пропустить их, нажав клавишу ENTER.

    ls -l *.pem

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

Шифрование файла или каталога с помощью OpenSSL

Теперь, когда у нас есть ключи и пример файла или каталога, давайте продолжим шифрование.

  1. Шифрование файла или каталога: В зависимости от того, шифруете ли вы файл или каталог, процесс немного отличается.Для файла:

    openssl smime -encrypt -binary -aes-256-cbc -in sample_file.img -out sample_file.img.enc -outform DER public-key.pem

    Эта команда шифрует sample_file.img с помощью AES-256-CBC и сохраняет зашифрованный вывод как sample_file.img.enc.

    Для каталога:
    Во-первых, сожмите каталог в архив:

    tar -czf sample_directory.tar.gz sample_directory/

    Затем зашифруйте tar-архив:

    openssl smime -encrypt -binary -aes-256-cbc -in sample_directory.tar.gz -out sample_directory.tar.gz.enc -outform DER public-key.pem
  2. Эта команда шифрует sample_directory.tar.gz и сохраняет зашифрованный вывод как sample_directory.tar.gz.enc.

  3. Проверьте шифрование: Чтобы убедиться в успешности процесса шифрования, сгенерируйте контрольную сумму MD5 как исходных, так и зашифрованных файлов или каталогов для сравнения.Для файла:

    md5sum sample_file.img*

    Для каталога:

    md5sum sample_directory.tar.gz*

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

Расшифровка файла или каталога с помощью OpenSSL

После того, как ваш файл или каталог будут зашифрованы, вам нужно будет знать, как их расшифровать.

  1. Расшифровка зашифрованного файла или каталога: В зависимости от того, расшифровываете ли вы файл или каталог, используйте следующие команды.Для файла:

    openssl smime -decrypt -in sample_file.img.enc -binary -inform DER -inkey private-key.pem -out decrypted_sample_file.img

    Эта команда расшифровывает sample_file.img.enc и сохраняет результат как decrypted_sample_file.img.

    Для каталога:
    Для начала расшифруем архив:

    openssl smime -decrypt -in sample_directory.tar.gz.enc -binary -inform DER -inkey private-key.pem -out decrypted_sample_directory.tar.gz

    Затем извлеките директорию:

    tar -xzf decrypted_sample_directory.tar.gz
  2. Эта команда восстанавливает исходный sample_directory.

  3. Проверьте расшифровку: Чтобы убедиться в успешности расшифровки, сгенерируйте контрольную сумму MD5 расшифрованного файла или каталога и сравните ее с контрольной суммой исходного файла или каталога.Для файла:

    md5sum decrypted_sample_file.img sample_file.img

    Для каталога:

    md5sum decrypted_sample_directory.tar.gz sample_directory.tar.gz

    Контрольные суммы исходных и расшифрованных файлов или каталогов должны совпадать, что указывает на то, что расшифровка прошла успешно.

Заключение

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

Статьи по данной тематике: