Как зашифровать файлы в Linux

Программы

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

Если вы хотите более подробно ознакомиться с утилитой GnuPG, то здесь отличный мануал от разработчиков. А в этой статье мы рассмотрим простое симметричное шифрование файлов. В этом случае для того, чтобы зашифровать или расшифровать файл нужно вводить пароль.

Проверим установлена ли GnuGP

Почти во всех популярных дистрибутивах Linux утилита GnuPG установлена по-умолчанию, поэтому достаточно открыть терминал и ввести нужные команды. Для того, чтобы проверить установлена ли утилита на ваш дистрибутив, откройте терминал и введите:

gpg --version

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

Проверка наличия установленной GnuPG


Шифрование

Зашифруем файл

Подготовим среду для того, чтобы было безопасно «поковырять» утилиту и не задеть важные файлы:

# Создадим папку test-gpg
mkdir test-gpg

# Перейдем в нее
cd test-gpg

# Создадим внутри файл test.txt с текстом "my secret"
echo "my secret" > file.txt

# Проверим наличие файла в папке
ls

# Проверим содержимое файла
cat file.txt

Если вы все сделали правильно, то у вас все должно быть примерно так:

GnuPG: Создание тестовой среды на Debian 9

А теперь зашифруем наш тестовый файл алгоритмом по-умолчанию:

gpg -c file.txt

После ввода команды, нужно задать пароль два раза в поле Passphrase. В Debian 9 это выглядит так, в других дистрибутивах это поле ввода может выглядеть иначе.

GnuPG: Ввод пароля для шифрования файла. Debian 9

После ввода пароля рядом с тестовым файлом file.txt должна появиться его зашифрованная версия file.txt.gpg

GnuPG: Шифрование файла алгоритмом по умолчанию

Чтобы увидеть какой алгоритм используется по умолчанию, то нужно добавить опцию -vv перед файлом.

gpg -c -vv file.txt

И после двукратного ввода пароля мы увидим алгоритм по дефолту. В данном случае об этом говорит строка: gpg: using cipher AES256

GnuPG: Шифрование файла с логированием операций

Если требуется указать алгоритм шифрования AES256 явно, нужно добавить опцию --cipher-algo AES256 перед файлом:

gpg -c --cipher-algo AES256 file.txt

Как видите, зашифровать файлы в Linux не так уж и сложно. Вероятно это даже проще, чем в Windows.

Зашифруем папку

Что делать, если нужно зашифровать папку в Linux? Тут тоже есть довольно простое решение: перед шифрованием поместить папку в архив. Для этого мы будем использовать архиватор tar, который так же есть по-умолчанию почти во всех дистрибутивах.

Подготовим тестовую папку для шифрования:

# Создадим внутри папки gpg-test еще одну тестовую папку
mkdir folder

# Переместим туда файл file.txt
mv file.txt folder/

# Проверим содержимое папки folder
ls folder/

Если все идет по плану, то у вас должно быть вот так:

GnuPG: Создание тестовой папки перед ее шифрованием

Теперь поместим папку в архив с помощью утилиты tar.

tar -cvf folder.tar folder/

Проверим наличие архива folder.tar с помощью команды ls

GnuPG: Архивация папки перед ее шифрованием

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

gpg -c folder.tar

И в результате должна появиться зашифрованная версия файла folder.tar, под именем folder.tar.gpg:

GnuPG: Шифрование архивированной папки

Теперь можно смело закидывать шифрованные файлы с расширением .gpg на облако, не боясь, что кто-то кроме вас прочитает эти файлы. Но перед этим было бы неплохо убедиться, что вы можете их расшифровать в будущем.

Дешифрование

Расшифруем файл

Есть два способа, по которым можно расшифровать наш gpg файл. Один максимально короткий, при котором мы надеемся, что GnuPG «поймет» что нам от нее нужно:

gpg file.txt.gpg

В этом случае скорее всего вы увидите похожий результат после ввода пароля:

GnuPG: дешифровка файла упрощенной командой

Это значит, что файл расшифрован и сохранен под именем file.txt. Ниже мы проверили наличие файла командой ls и его содержимое командой cat.

Если укороченной версией расшифровать не получилось, тогда следует прописать все параметры явно:

gpg -o file.txt -d file.txt.gpg

В данном случае опция -o указывает как должен называться расшифрованный файл, а опция -d указывает какой файл надо расшифровать.

Расшифруем папку

И так, файл расшифрован, но что делать с ранее зашифрованной папкой в архиве? Тут тоже ничего сложного, сначала расшифруем архив как обычный файл, а потом достаем папку из архива. Перед этим, для чистоты эксперимента лучше удалить ранее созданную оригинальную папку folder и архив folder.tar, чтобы убедиться в том, что мы точно расшифровали и достали из архива то, что нужно.

# Удалим тестовую папку
rm -r folder/

# Удалим архив с тестовой папкой
rm folder.tar

# Проверим, что осталась только зашифрованная версия folder
ls
GnuPG: Удаление оригинальных файлов перед расшифровкой

Теперь расшифруем архивный файл folder.tar.gpg

gpg folder.tar.gpg

Рядом с folder.tar.gpg должна появиться его расшифрованная версия folder.tar

GnuPG: расшифрование архивированной папки

Распакуем расшифрованный архив folder.tar:

tar -xvf folder.tar

После этого среди всех файлов должна появиться папка folder, которую мы зашифровали в конце прошлого раздела.

GnuPG: распаковывание архива с папкой после дешифровки


Итог

Шифровать файлы в Linux очень просто, при этом не требуется установки каких-то дополнительных программ. Достаточно воспользоваться утилитами по дефолту и они будут не менее надежными. Очевидно, что нужно использовать сложный пароль, который будет содержать цифры, большие и маленькие символы, а также специальные символы (#, %, & и тд).

Здесь вы можете почитать об остальных опциях GnuPG.
Здесь более подробный мануал от разработчиков.

LINUXINSIDER.RU
Добавить комментарий