В некоторых случаях хочется быть уверенным в том, что важные данные никто больше не прочитает, даже самые подготовленные специалисты или спецслужбы. Для этого достаточно зашифровать файлы с помощью утилиты GnuPG в Linux. Для более высокой надежности лучше всего использовать AES-256.
Если вы хотите более подробно ознакомиться с утилитой GnuPG , то здесь отличный мануал от разработчиков. А в этой статье мы рассмотрим простое симметричное шифрование файлов. В этом случае для того, чтобы зашифровать или расшифровать файл нужно вводить пароль.
Проверим установлена ли GnuGP
Почти во всех популярных дистрибутивах Linux утилита GnuPG установлена по-умолчанию, поэтому достаточно открыть терминал и ввести нужные команды. Для того, чтобы проверить установлена ли утилита на ваш дистрибутив, откройте терминал и введите:
gpg --version Если утилита установлена, то вы получите вот такой вывод, в котором будет указана версия и поддерживаемые алгоритмы шифрования.
Шифрование
Зашифруем файл
Подготовим среду для того, чтобы было безопасно «поковырять» утилиту и не задеть важные файлы:
# Создадим папку test-gpg mkdir test-gpg # Перейдем в нее cd test-gpg # Создадим внутри файл test.txt с текстом "my secret" echo "my secret" > file.txt # Проверим наличие файла в папке ls # Проверим содержимое файла cat file.txt Если вы все сделали правильно, то у вас все должно быть примерно так:
А теперь зашифруем наш тестовый файл алгоритмом по-умолчанию:
gpg -c file.txt После ввода команды, нужно задать пароль два раза в поле Passphrase. В Debian 9 это выглядит так, в других дистрибутивах это поле ввода может выглядеть иначе.
После ввода пароля рядом с тестовым файлом file.txt должна появиться его зашифрованная версия file.txt.gpg
Чтобы увидеть какой алгоритм используется по умолчанию, то нужно добавить опцию -vv перед файлом.
gpg -c -vv file.txt И после двукратного ввода пароля мы увидим алгоритм по дефолту. В данном случае об этом говорит строка: gpg: using cipher AES256
Если требуется указать алгоритм шифрования 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/ Если все идет по плану, то у вас должно быть вот так:
Теперь поместим папку в архив с помощью утилиты tar .
tar -cvf folder.tar folder/ Проверим наличие архива folder.tar с помощью команды ls
И так, архив с секретной папкой внутри создан. Теперь осталось зашифровать его как обычный файл.
gpg -c folder.tar И в результате должна появиться зашифрованная версия файла folder.tar , под именем folder.tar.gpg :
Теперь можно смело закидывать шифрованные файлы с расширением .gpg на облако, не боясь, что кто-то кроме вас прочитает эти файлы. Но перед этим было бы неплохо убедиться, что вы можете их расшифровать в будущем.
Дешифрование
Расшифруем файл
Есть два способа, по которым можно расшифровать наш gpg файл. Один максимально короткий, при котором мы надеемся, что GnuPG «поймет» что нам от нее нужно:
gpg file.txt.gpg В этом случае скорее всего вы увидите похожий результат после ввода пароля:
Это значит, что файл расшифрован и сохранен под именем 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 Теперь расшифруем архивный файл folder.tar.gpg
gpg folder.tar.gpg Рядом с folder.tar.gpg должна появиться его расшифрованная версия folder.tar
Распакуем расшифрованный архив folder.tar:
tar -xvf folder.tar После этого среди всех файлов должна появиться папка folder, которую мы зашифровали в конце прошлого раздела.
Итог
Шифровать файлы в Linux очень просто, при этом не требуется установки каких-то дополнительных программ. Достаточно воспользоваться утилитами по дефолту и они будут не менее надежными. Очевидно, что нужно использовать сложный пароль, который будет содержать цифры, большие и маленькие символы, а также специальные символы (#, %, & и тд).
Здесь вы можете почитать об остальных опциях GnuPG.
Здесь более подробный мануал от разработчиков.