В Linux есть несколько инструментов шифрования, которые позволяют нам защитить наши файлы. В этом руководстве мы узнаем, как защитить паролем файл tar в Linux, используя некоторые из этих инструментов шифрования.
Использование gpg
NU Privacy Guard, также известный как GPG, - это инструмент командной строки для шифрования и цифровой подписи. Он основан на стандарте OpenPGP.
Мы можем использовать команду gpg с различными опциями, чтобы указать тип операций. Например, --encrypt указывает на шифрование файлов. Для шифрования данных симметричным шифром используется опция symmetric. По умолчанию в gpg используется симметричный шифр CAST5. Однако мы можем выбрать другой алгоритм шифрования с помощью опции --cipher-algo.
Чтобы узнать о поддерживаемых алгоритмах шифрования, мы можем использовать опцию --version.
1 | gpg --version |
В качестве примера возьмем один tar-файл и зашифруем его с помощью gpg:
1 | gpg --symmetric --cipher-algo aes256 archive_file.tar |
При выполнении приведенной выше команды нам предлагается ввести кодовую фразу (в данном случае через всплывающее окно графического интерфейса). После ввода снова появляется запрос на подтверждение. При успешном выполнении команды будет создан архивный файл с расширением '.gpg'. Этот выходной файл будет зашифрован и защищен вашей парольной фразой.
Для того чтобы получить tar-файл из зашифрованного файла, мы можем использовать опцию --decrypt:
1 | gpg --output archive_file.tar --decrypt archive_file.tar.gpg |
Здесь мы можем использовать опцию --output, чтобы указать конкретное имя выходного файла. Та же парольная фраза должна быть введена при запросе на расшифровку файла.
Если нам необходимо зашифровать файлы или директории, без запроса пароля, в bash скрипте, то необходимо использовать следующую конструкцию.
1 | tar zcfP - [путь] | gpg --batch --passphrase "[Пароль]" -c > [путь до архива] |
где
- [путь] - директория которую мы хотим упаковать, к примеру /home/user/secret_dir
- [Пароль] - пароль на архив
- [путь до архива] - путь до файла архива, к примеру /tmp/archive_file.tar.gz
Использование ccrypt
ccrypt - это инструмент командной строки для шифрования и расшифровки файлов и потоков. Он основан на блочном шифре Rijndael или Advanced Encryption Standard (AES).
Encrypt (--encrypt или -e) - это режим по умолчанию. Этот режим шифрует заданный файл и добавляет к нему расширение '.cpt'. В качестве альтернативы мы можем напрямую использовать команду ccencrypt с именем файла для его шифрования. Это эквивалентно команде 'ccrypt -e'.
для установки, используем команду
1 | apt install ccrypt |
Например, когда мы выполняем команду ccrypt, она запрашивает ключ шифрования для шифрования нашего tar-файла:
1 | ccrypt archive_file.tar |
В процессе расшифровки файла .cpt для получения исходного файла нам необходимо выполнить команду ccrypt с опцией --decrypt. При выполнении этой комбинации запрашивается ключ расшифровки. Для расшифровки нам нужно ввести тот же ключ, который мы использовали для шифрования.
1 | ccrypt --decrypt archive_file.tar |
Заключение
В этой статье мы рассмотрели два инструмента командной строки, gpg и ccrypt. С их помощью мы можем зашифровать наш tar-файл с помощью парольной фразы. Более того, используя те же инструменты, мы можем получить оригинальный tar-файл, расшифровав его с помощью той же парольной фразы.