Логотип

Как использовать GPG для шифрования и дешифрования файлов в Linux

Как использовать GPG для шифрования и дешифрования файлов в Linux

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

В вычислительной технике шифрование — популярный и наиболее часто рекомендуемый метод сокрытия информации в секретном формате. GnuPG — один из полезных инструментов для шифрования информации (файлов) в системах Linux.

GnuPG (также известный как GNU Privacy Guard или просто GPG) — это инструмент GNU, используемый для шифрования данных и создания цифровых подписей, которые способствуют повышению общей информационной безопасности. Это полноценная и бесплатная реализация интернет-стандарта OpenPGP, предоставляющая расширенное решение для управления ключами.

Доступно две версии GPG:

  1. gpg — автономная версия, которая больше подходит для серверов и встроенных платформ.
  2. gpg2 — версия для настольных компьютеров, для работы которой требуется установка нескольких других модулей.

 

В некоторых популярных дистрибутивах Linux, таких как Debian и Ubuntu, пакет gnupg2 является фиктивным переходным пакетом, который содержит символические ссылки с gpg2 на gpg. То есть, устанавливая gnupg2, вы фактически получаете современную унифицированную версию GPG.

 

Понимание сценария

Это демонстрирует обмен информацией между двумя сторонами:

  • Alex (alex@gmail.com) в командной строке alex@andreyex.
  • Тестовый администратор (testadmin@andreyex.com) в командной строке root@server.

 

Файл, которым обмениваются две стороны, называется secret.txt. В нем содержится очень важный пароль, которым тестовый администратор хочет поделиться с пользователем Alex.

Вы можете просмотреть содержимое файла secret.txt, содержащего пароль и другие данные для удаленного доступа, с помощью следующей команды cat, как показано на рисунке. Файл находится на сервере Test Admin:

cat secret.txt

 

Установите GnuPG (GNU Privacy Guard) в Linux

Чтобы установить пакет GnuPG, выполните соответствующую команду для вашего дистрибутива Linux, как показано ниже. Обратите внимание, что пакет gnupg должен быть установлен в обеих системах, обменивающихся данными.

Читать  Примеры команды tail в Linux

Однако в большинстве современных дистрибутивов Linux GPG предустановлен, поэтому вы можете проверить, установлен ли он, выполнив команду gpg --version перед установкой.

sudo apt install gnupg [в Debian, Ubuntu и Mint]
sudo yum install gnupg [в RHEL/CentOS/Fedora и Rocky/AlmaLinux]
sudo emerge -a app-crypt/gnupg [в Gentoo Linux]
sudo apk add gnupg [в Alpine Linux]
sudo pacman -S gnupg [в Arch Linux]
sudo zypper install gnupg [в OpenSUSE] 

 

Создание новых пар ключей GPG в Linux

Чтобы создать новые пары ключей (открытый и закрытый), выполните команду gpg с флагом --full-generate-key в обеих системах и следуйте инструкциям, чтобы указать тип ключа, его размер, срок действия ключа, идентификатор пользователя для ключа и надежную парольную фразу для ключа, как показано на скриншоте ниже.

gpg --full-generate-key

 

В процессе создания ключа вам будет предложено:

  • Выберите тип ключа (RSA и RSA рекомендуются).
  • Выберите размер ключа (4096 бит рекомендуется для максимальной безопасности).
  • Установите срок действия (можно сделать так, чтобы ключ не устаревал, или выбрать конкретный срок).
  • Введите свое имя и адрес электронной почты.
  • Придумайте надежную парольную фразу (она должна быть сложной и легко запоминающейся).

 

Список пар ключей GPG в Linux

Чтобы вывести список только что созданного открытого ключа GPG вместе с другими существующими ключами, выполните команду gpg с флагом --list-public-keys. Для вывода длинного списка добавьте флаг --keyid-format=long.

gpg --list-public-keys

 

или

gpg --list-public-keys --keyid-format=long

 

Чтобы вывести список только что созданного секретного ключа GPG вместе с другими существующими ключами, выполните команду gpg с флагом --list-secret-keys. Для вывода длинного списка добавьте флаг --keyid-format=long.

gpg --list-secret-keys

 

или

gpg --list-secret-keys --keyid-format=long

 

Экспорт ключей с помощью GPG в Linux

После того как обе стороны сгенерируют пары ключей GPG, они могут экспортировать свои открытые ключи в файл и отправить их друг другу по электронной почте или другим способом.

--------- На сервере Alex --------- 
gpg --list-public-keys
gpg --export -o aaronsec.key 15B4814FB0F21208FB5076E7A937C15009BAC996

--------- На тестовом сервере администратора ---------
gpg --list-public-keys
gpg --export -o tadminsec.key BC39679E5FF48D4A6AEF6F3437211F0B4D6D8A61

 

Читать  Bash для начинающих. Передача аргументов в сценарии Bash

Идентификатор ключа (длинная буквенно-цифровая строка) можно найти в выводе команды --list-public-keys . Вы можете использовать либо полный отпечаток, либо последние 8–16 символов идентификатора ключа.

 

Импортируйте ключи с помощью GPG в Linux

Затем обменяйтесь открытыми ключами по электронной почте или с помощью других безопасных способов, например с помощью команды scp, как показано ниже:

scp aaronsec.key root@192.168.0.189:/root/
scp root@192.168.0.189:/root/tadminsec.key ./

 

Затем импортируйте открытый ключ с другого устройства в локальную систему, добавив флаг --import как показано на рисунке.

gpg --import aaronsec.key
gpg --import tadminsec.key

 

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

gpg --list-public-keys

 

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

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

Чтобы зашифровать текстовый файл с помощью только что созданной пары ключей GPG, выполните следующую команду. Флаг -e или --encrypt включает шифрование, флаг -r или --recipient используется для указания идентификатора получателя, а secret.txt — это текстовый файл, который нужно зашифровать.

Следующая команда шифрует файл secret.txt с помощью открытого ключа получателя alex@gmail.com:

gpg -e -r alex@gmail.com secret.txt

 

или

gpg --encrypt --recipient alex@gmail.com secret.txt

 

Если предыдущая команда выполнится успешно, в текущем каталоге будет создан новый файл (исходное имя файла с расширением .gpg):

ls secret.txt.gpg

 

Чтобы сохранить зашифрованную информацию в другом файле, используйте параметр -o или --output с указанием имени файла. В этом примере предпочтительным является имя node_configs:

gpg -e -r alex@gmail.com -o node_configs secret.txt

 

или

gpg --encrypt --recipient alex@gmail.com --output node_configs secret.txt

 

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

 

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

 

Читать  5 Лучших инструментов архивирования с помощью командной строки для Linux – Часть 1

Расшифровка файлов с помощью GPG в Linux

Чтобы расшифровать файл, зашифрованный с помощью gpg, добавьте флаг -d или --decrypt и укажите зашифрованное имя файла. По умолчанию расшифрованная информация будет выводиться в стандартный поток вывода. Вы можете сохранить ее в файл, используя флаг -o, как показано на рисунке.

gpg -d -o secrets.txt secrets.txt.gpg
ls secrets.txt

 

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

 

Дополнительные рекомендации по обеспечению безопасности с помощью GPG

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

  • Используйте надежные парольные фразы: безопасность вашего закрытого ключа зависит от надежности парольной фразы, поэтому используйте комбинацию прописных и строчных букв, цифр и специальных символов.
  • Делайте резервные копии ключей: храните резервную копию закрытого ключа в надежном месте. Если вы его потеряете, то не сможете расшифровать файлы.
  • Установите срок действия ключа: подумайте о том, чтобы установить срок действия ключей, чтобы минимизировать ущерб в случае их компрометации.
  • Проверка цифровых отпечатков ключей: прежде чем импортировать чей-либо открытый ключ, проверьте его цифровой отпечаток по защищенному каналу, чтобы предотвратить атаки типа «злоумышленник в середине».
  • Отзыв скомпрометированных ключей: Если вы подозреваете, что ваш закрытый ключ был скомпрометирован, сгенерируйте сертификат отзыва и немедленно распространите его.

 

Дополнительную информацию можно найти на странице руководства gpg/gpg2, как показано на рисунке.

man gpg

 

или

man gpg2

 

Заключение

На этом мы заканчиваем наше руководство. GPG — это широко используемый инструмент для шифрования и дешифрования информации или файлов в Linux. Он обеспечивает шифрование военного уровня, которому доверяют специалисты по безопасности по всему миру.

 

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

Редактор: AndreyEx

Рейтинг: 5 (2 голоса)
Если статья понравилась, то поделитесь ей в социальных сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Загрузка...

Спасибо!

Теперь редакторы в курсе.

Прокрутить страницу до начала