Шифрование файлов с помощью OpenSSL
Иногда бывает нужно зашифровать какой-то архив или отдельный файл, обезопасив таким образом доступ к нему посторонним. Несколько лет назад, я уже рассказывал о хранении шифрованных данных в облаке Яндекс.Диск, тогда рассматривалось создание шифрованного образа диска средствами Mac OS X.
Сегодня, будем шифровать данные с помощью библиотеки OpenSSL, входящей в состав любого *NIX дистрибутива. К сожалению, самый распространённый архиватор tar, не умеет самостоятельно шифровать данные, но мы ему в этом поможем.
OpenSSL — это криптографический пакет с открытым исходным кодом для работы с SSL/TLS, имеется возможность шифрования данных и тестирования SSL/TLS соединений. OpenSSL поддерживает множество алгоритмов шифрования: Blowfish, Camellia ,DES, RC2, RC4, RC5, IDEA, AES, ГОСТ 28147-89, RSA, DSA, Diffie-Hellman key exchange и это еще не полный список. Вообще, все они делятся на два типа - симметричные и асимметричные, но углубляться в данную тематику не будем, так как сам, разбираюсь в ней довольно поверхностно, чтобы давать какие-то советы и уж тем более писать статьи.
У нас задача проще, используя уже имеющиеся инструменты, обезопасить свои данные. Для начала, создадим обычный tar архив и упакуем его архиватором gzip:
# tar cvzf arhive.tar.gz /path/to/arhiv
ключи архиватора:
- с - (create) создать архив.
- x - (eXtract) извлечь файлы из архива.
- v - отображение процесса архивации (на экран будут выведены все найденные в архиве файлы)
- f - обязательный ключ для создания файла архива.
- z - использовать для сжатия архиватор gzip (.tar.gz)
- j - использовать для сжатия архиватор bzip2 (.tar.bz2)
- t - (test) просмотреть содержимое архива.
Для распаковки архива, соотвественно следует заменить параметр -с на -x:
# tar xfvz archive.tar.gz
С помощью ключа -С можно указать путь, куда следует распаковывать архив:
# tar xfvz archive.tar.gz -C /var/www
Шифрование архива с помощью OpenSSL
Для примера зашифруем полученный архив, используя алгоритм des3:
# openssl des3 -in arhive.tar.gz -out arhive.tar.gz.des3
Будет предложено ввести пароль на архив и подтвердить его
enter des-ede3-cbc encryption password: Verifying - enter des-ede3-cbc encryption password:
Расшифруем полученный файл:
# openssl des3 -d -in arhive.tar.gz.des3 -out arhive.tar.gz
Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.