Шифрование файлов и папок в Linux

В современном мире каждый аспект нашей личной жизни записывается на компьютеры. Один из способов защиты наиболее важной информации – шифрование файлов и каталогов. Во время шифрования содержимое файлов перемешивается с избыточными данными в соответствии с установленным алгоритмом, таким образом, что расшифровать его можно только имея специальный пароль или ключ.

В операционной системе Linux есть замечательный инструмент с открытым исходным кодом для шифрования файлов – GNU Privacy Guard или просто GPG, который может быть использован для шифрования любого файла из командной строки или в графическом режиме. О нем и пойдет речь в сегодняшней статье.

Утилита GPG

Перед тем как перейти к использованию утилиты, давайте рассмотрим ее синтаксис:

$ gpg опции файл параметры

Опции указывает что необходимо сделать с файлом, как это сделать и какие возможности использовать. Давайте рассмотрим самые основные опции, которые мы будем использовать в этой статье:

  • -h – вывести справку по утилите;
  • -s, –sign – создать цифровую подпись, эта опция используется вместе с другими опциями для шифрования;
  • –clearsign – подписать незашифрованный текст;
  • -e, –encrypt – зашифровать данные, с помощью ключа;
  • -с, –symmetric – зашифровать данные, с помощью пароля;
  • -d, –decrypt – расшифровать данные, зашифрованные с помощью ключа или пароля;
  • –verify – проверить подпись;
  • -k, –list-keys – вывести доступные ключи;
  • –list-sigs – вывести доступные подписи;
  • –fingerprint – вывести все ключи вместе с их отпечатками;
  • –delete-key – удалить ключ;
  • –delete-secret-key – удалить секретный ключ;
  • –export – экспортировать все ключи;
  • –export-secret-keys – экспортировать все секретные ключи;
  • –import – импортировать ключи;
  • –send-keys – отправить ключи на сервер, должен быть указан сервер ключей;
  • –recv-keys – получить ключи от сервера ключей;
  • –keyserver – указать сервер ключей;
  • –fetch-keys – скачать ключи;
  • –gen-key – создать ключ;
  • –sign-key – подписать ключ;
  • –passwd – изменить пароль для ключа.

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

Шифрование файлов с помощью пароля

Симметричный шифр – самый простой и в то же время надежный способ шифрования файлов linux. Расшифровать файл сможет любой у кого есть пароль. Для использования просто запустите терминал и выполните команду gpg с параметром -c:

gpg -c имя файла

Шифрование файлов и папок в Linux

Утилита создаст файл с расширением gpg. Для расшифровки используйте:

Шифрование файлов и папок в Linux

Шифрование с использованием ключей

Асимметричный шифр более надежный так как для шифрования используется два ключа – публичный, собственно для шифрования, которым может воспользоваться любой, и приватный – для расшифровки. Причем файл можно расшифровать только с помощью приватного ключа, даже если вы зашифровали файл, без приватного ключа вы его не расшифруете.

Сначала необходимо настроить gpg, создать пару ключей, для этого наберите:

Программа задаст ряд вопросов для настройки ключа:

Шифрование файлов и папок в Linux

Выберите требуемый тип ключа.

Шифрование файлов и папок в Linux

Выберите нужный размер для ключа, обычно 2048 будет достаточно.

Шифрование файлов и папок в Linux

Выберите строк действия для ключа.

Шифрование файлов и папок в Linux

Проверьте все ли правильно.

Шифрование файлов и папок в Linux

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

Шифрование файлов и папок в Linux

Введите ваш email адрес.

Шифрование файлов и папок в Linux

Описание ключа, если нужно.

Шифрование файлов и папок в Linux

Финальная проверка, затем нажмите O для завершения.

Шифрование файлов и папок в Linux

Процесс генерации может занять некоторое время. Когда все будет готово в каталоге

./gnupg появятся два файла. В файле pubring.gpg публичный ключ, а в secring.gpg приватный.

Шифрование файлов и папок в Linux

Также вы можете посмотреть список доступных ключей:

Шифрование файлов и папок в Linux

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

gpg -a -o gpgkey.asc –export имя_ключа

Шифрование файлов и папок в Linux

Затем передаем файл на целевое устройство и импортируем ключ:

gpg –import gpgkey.asc

После импорта ключа уровень доверия к нему по умолчанию будет неизвестным поэтому при каждом шифровании gpg будет спрашивать действительно ли вы доверяете этому ключу. Чтобы этого избежать нужно указать уровень доверия. Для этого воспользуйтесь редактором ключей:

gpg –edit-key Username

Шифрование файлов и папок в Linux

Для выбора уровня доверия введите команду trust:

Для своих ключей можно использовать пункт абсолютно доверяю с номером 5, вы же знаете что это именно ваш ключ.

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

gpg -e -r ид_пользователя имя_файла

Шифрование файлов и папок в Linux

Ид пользователя нужно указывать тот что вы использовали при создании ключа. Для расшифровки используйте:

gpg -d имя_файла.gpg

Шифрование файлов и папок в Linux

Для каталогов действия аналогичны только сначала нужно создать архив с помощью tar:

tar -cf – каталог | gpg -e -r ид_пользователя

А для расшифровки:

gpg -d каталог.gpg | tar -xvf

Подписи и шифрование

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

Вы можете подписать файл с помощью опции –sign:

gpg –sign имя_файла

Шифрование файлов и папок в Linux

Если вы не хотите изменить исходный файл, то можно создать подпись в отдельном файле:

gpg -b имя_файла

Шифрование файлов и папок в Linux

Тогда в каталоге, рядом с файлом появиться файл .sig с подписью. Дальше, чтобы проверить достаточно использовать команду verify:

gpg –verify textfile.sig textfile

Шифрование файлов и папок в Linux

Если файл был изменен, то вы увидите, что подпись не сходиться.

Выводы

В этой статье мы рассмотрели как выполняется шифрование файла linux, а также настройка утилиты gpg. Шифрование gpg linux используется людьми для хранения важных данных, а механизм подписей популярен среди разработчиков дистрибутивов. Если у вас остались вопросы, спрашивайте в комментариях!

На завершение отличное видео о том, как работает асимметричный алгоритм шифрования: