Как шифровать и расшифровывать файлы и каталоги с помощью OpenSSL и Linux
Безопасное шифрование и расшифровка файлов и каталогов имеет важное значение для защиты конфиденциальных данных. OpenSSL, мощный инструмент с открытым исходным кодом, обеспечивает надежные возможности шифрования и дешифрования, которые могут работать с файлами любого размера, от небольших текстовых файлов до больших двоичных файлов и даже целых каталогов. Это руководство проведет вас через процесс шифрования и расшифровки файлов и каталогов с помощью OpenSSL в системах Linux, таких как Redhat, Ubuntu, Debian, CentOS и Fedora.
В этом уроке вы узнаете:
- Как создать образец файла или каталога
- Как создать пару открытого и закрытого ключей RSA
- Как зашифровать файл или каталог с помощью OpenSSL
- Как расшифровать зашифрованный файл или каталог обратно в исходное состояние
Создание примера файла или каталога и генерация ключей RSA
Для начала вам понадобится файл или каталог, который вы хотите зашифровать. В демонстрационных целях давайте создадим пример файла или каталога и сгенерируем пару ключей RSA.
Создание образца файла или каталога: Вы можете создать файл или каталог в зависимости от того, что вы хотите зашифровать. Вот команды для обоих:Для файла:
fallocate -l 100M sample_file.img
Эта команда создает файл с именем
sample_file.img
размером 100 МБ.Для каталога:
mkdir sample_directory touch sample_directory/file1.txt sample_directory/file2.txt
Создание пары открытого и закрытого ключей 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
Убедитесь, что закрытый ключ хранится в безопасности, так как его потеря не позволит вам расшифровать свои файлы или каталоги.
При этом создается каталог с именем sample_directory
, содержащий два текстовых файла.
Шифрование файла или каталога с помощью OpenSSL
Теперь, когда у нас есть ключи и пример файла или каталога, давайте продолжим шифрование.
Шифрование файла или каталога: В зависимости от того, шифруете ли вы файл или каталог, процесс немного отличается.Для файла:
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
Проверьте шифрование: Чтобы убедиться в успешности процесса шифрования, сгенерируйте контрольную сумму MD5 как исходных, так и зашифрованных файлов или каталогов для сравнения.Для файла:
md5sum sample_file.img*
Для каталога:
md5sum sample_directory.tar.gz*
Контрольные суммы должны быть другими, подтверждающими, что файл или каталог был зашифрован.
Эта команда шифрует sample_directory.tar.gz
и сохраняет зашифрованный вывод как sample_directory.tar.gz.enc
.
Расшифровка файла или каталога с помощью OpenSSL
После того, как ваш файл или каталог будут зашифрованы, вам нужно будет знать, как их расшифровать.
Расшифровка зашифрованного файла или каталога: В зависимости от того, расшифровываете ли вы файл или каталог, используйте следующие команды.Для файла:
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
Проверьте расшифровку: Чтобы убедиться в успешности расшифровки, сгенерируйте контрольную сумму MD5 расшифрованного файла или каталога и сравните ее с контрольной суммой исходного файла или каталога.Для файла:
md5sum decrypted_sample_file.img sample_file.img
Для каталога:
md5sum decrypted_sample_directory.tar.gz sample_directory.tar.gz
Контрольные суммы исходных и расшифрованных файлов или каталогов должны совпадать, что указывает на то, что расшифровка прошла успешно.
Эта команда восстанавливает исходный sample_directory
.
Заключение
Следуя шагам, описанным в этом руководстве, вы сможете легко шифровать и расшифровывать файлы и каталоги с помощью OpenSSL в Linux. Независимо от того, работаете ли вы с маленькими файлами, большими файлами или целыми каталогами, OpenSSL предоставляет надежный и эффективный метод защиты ваших данных. Всегда помните о надежности своего закрытого ключа, так как он необходим для расшифровки ваших файлов или каталогов.