Как использовать GnuPG для шифрования в Linux
Были ли у вас когда-нибудь конфиденциальная информация, такая как пароли или данные для входа на сервер, которые вам нужны, чтобы отправить кому-то по электронной почте, но вы не знаете, как безопасно отправить ее, чтобы избежать попадания информации в чужие руки?
Здесь вы узнаете, как безопасно передавать сообщения и файлы, зашифрованные с помощью PGP, с помощью популярного инструмента gnupg. Давайте погрузимся прямо в дело и узнаем, как защитить наши коммуникации!
Установить gnupg
Если вы никогда раньше не слышали о PGP, ознакомьтесь с отличным учебником по PGP и объяснением , содержащим различные подробности, которые мы не будем здесь вдаваться для краткости. Сначала проверьте, установлен ли уже gnupg. В терминале запустите команду:
gnupg --version
Если отображается текущая версия gnupg (должна быть v2 +), то все готово и можно перейти к следующему разделу. В противном случае вы можете установить gnupg, запустив:
sudo apt-get install gnupg2
После завершения убедитесь, что он установлен:
gnupg -- version
Предполагая, что gnupg был установлен правильно, отобразится номер версии.
Создать ключ PGP
Используя асимметричное шифрование , вы сначала создадите пару ключей PGP, которая состоит из открытого и закрытого ключей. Открытый ключ можно свободно распространять среди всех, от кого вы хотите получать зашифрованные сообщения, а закрытый ключ хранится в безопасном месте.
Затем люди могут зашифровать сообщения открытым ключом и отправить зашифрованное сообщение, которое затем можно расшифровать с помощью закрытого ключа. Чтобы сгенерировать запуск пары ключей:
gpg --generate-key
Это начнется с запроса вашего имени и адреса электронной почты, которые не обязательно должны быть вашим настоящим именем и адресом электронной почты. Однако это то, что другие увидят при выборе того, кому шифровать сообщения, поэтому убедитесь, что это то, по чему другие могут легко вас идентифицировать.
Затем введите букву O, чтобы подтвердить имя и адрес электронной почты, и вам будет предложено ввести желаемый пароль, который может быть любым, каким вы хотите. Вам нужно будет вводить этот пароль каждый раз, когда вы захотите расшифровать отправленное вам сообщение.
После того, как вы подтвердите пароль, он начнет генерировать вашу новую пару ключей PGP, что может занять несколько минут, чтобы собрать достаточно энтропийных / случайных данных с вашего компьютера. Не стесняйтесь уходить от терминала на пару минут и делать что-нибудь еще, пока не увидите сообщение о том, что ваш ключ был успешно сгенерирован.
Экспорт вашего открытого ключа
Теперь, когда ваша пара ключей создана, вам нужно экспортировать открытый ключ для распространения среди других. В терминале запустите команду:
gpg -a --export -e '[email protected]` > mykey.asc
Не забудьте заменить [email protected] на адрес электронной почты, который вы указали при генерации ключа PGP. Теперь вы увидите новый файл в текущем каталоге с именем mykey.asc . Отправьте этот файл всем, кто хочет отправлять вам зашифрованные сообщения.
Импортировать открытые ключи
Так же, как вы теперь можете делиться своим открытым ключом с другими, люди также будут делиться своими открытыми ключами с вами. Когда вы получите чей-то открытый ключ PGP, сохраните файл в каталог и, получив доступ к терминалу из того же каталога, запустите:
gpg --import key.asc
Это позволит импортировать открытый ключ PGP человека в gnupg, что позволит вам начать отправлять ему зашифрованные сообщения. В любое время вы можете просмотреть список всех ключей PGP, доступных в настоящее время в gnupg:
gpg --list-keys
Вы увидите несколько записей, похожих на показанные ниже, по одной для каждого ключа, доступного в gnupg:
pub rsa3072 2020-01-30 [SC] [expires: 2022-01-29]
8978168C4E79A08553E5789CD42A4A4EC1468CFE
uid [ unknown] Matt Dizak <[email protected]>
Единственная информация, на которую вам нужно обратить внимание, – это имя и адрес электронной почты записи, в которой указан владелец этого ключа. При шифровании сообщений вам понадобится только адрес электронной почты получателя.
Шифрование сообщений через PGP
Например, вам может потребоваться отправить некоторую конфиденциальную информацию своему веб-дизайнеру, ключ PGP которого вы уже импортировали по адресу электронной почты [email protected]. Введите желаемое сообщение и сохраните его в текстовый файл, например message.txt . В терминале и внутри каталога, в котором находится message.txt, выполните команду:
gpg -e -a -r '[email protected]' message.txt
Давайте быстро разберем приведенную выше команду:
- -e указывает, что мы шифруем данные
- -a указывает, что нам нужен вывод в формате ASCII или обычном текстовом формате
- -r обозначает получателя, поэтому за ним следует адрес электронной почты нашего дизайнера.
- Наконец идет файл сообщения, который мы хотим зашифровать.
Скорее всего, вам будет предложено подтвердить, что вы действительно хотите зашифровать этот открытый ключ, и вы можете просто нажать клавишу Y, чтобы согласиться. Будет создан новый файл message.txt.asc , и если вы откроете файл в текстовом редакторе, вы увидите что-то похожее на:
-----BEGIN PGP MESSAGE-----
hQGMAzCBDnMltq9zAQv/ZHQ3tJq+feazdLa3thzQE2bhPx+7WaPZcX7SdkoyuKvw
9faS7h9OwBjQ4vUyDKespSq3ZNf1pRgNoXijjs3MGEi5IsYxDgNWo1ZJv2qQqp36
.....
-----END PGP MESSAGE-----
Это вновь созданная зашифрованная форма нашего сообщения. Вы можете прикрепить этот файл к электронному письму или просто скопировать и вставить содержимое этого файла в тело сообщения электронной почты.
После этого получатель сможет расшифровать сообщение на своей стороне, используя свой закрытый ключ, гарантируя, что любой, кто увидит это сообщение во время передачи, не сможет просмотреть текстовую версию.
Шифрование двоичных файлов
Вышеупомянутый раздел объяснил, как зашифровать текстовые сообщения, но как насчет двоичных файлов? Он работает почти так же, и, например, чтобы зашифровать файл с именем images.zip , в терминале выполните команду:
gpg -e -r '[email protected]' images.zip
Единственное отличие в том, что параметр -a удален вместе с именем выходного файла. Затем, как и раньше, если будет предложено подтвердить использование открытого ключа, просто нажмите клавишу Y, чтобы согласиться.
Будет создан новый файл с именем images.zip.gpg , который представляет собой зашифрованную версию нашего zip-файла, который мы можем отправить нашему дизайнеру по электронной почте в качестве вложения. Затем они могут расшифровать ZIP-файл, используя свой закрытый ключ.
Расшифровка сообщений
Вам также нужен способ расшифровки отправляемых вам сообщений. Помните, что для того, чтобы кто-то мог отправить вам зашифрованное сообщение, вы должны сначала поделиться с ним своим открытым ключом PGP. Вы получите зашифрованный блок текста, который выглядит так же, как зашифрованное сообщение, например:
-----BEGIN PGP MESSAGE-----
hQGMAzCBDnMltq9zAQv/ZHQ3tJq+feazdLa3thzQE2bhPx+7WaPZcX7SdkoyuKvw
9faS7h9OwBjQ4vUyDKespSq3ZNf1pRgNoXijjs3MGEi5IsYxDgNWo1ZJv2qQqp36
.....
-----END PGP MESSAGE-----
Сохраните этот блок текста в файл, например message.asc , и в терминале выполните команду:
gpg -d message.asc > message.txt
Вам будет предложено ввести пароль, который является тем же самым паролем, который вы указали при первоначальном создании пары ключей PGP. После успешного ввода вашего пароля будет создан файл message.txt, содержащий расшифрованную версию сообщения в виде обычного текста. Вот и все!
Поздравляем, теперь ваше общение безопасно!
Благодаря этому руководству вы узнали все необходимое для надлежащей защиты ваших сообщений с помощью шифрования PGP. Вы узнали, как сгенерировать пару ключей PGP, экспортировать свой открытый ключ для передачи другим, импортировать открытые ключи других, а также как зашифровать и расшифровать сообщения.
В следующий раз, когда вам понадобится отправить конфиденциальную информацию по электронной почте, теперь вы можете быть уверены, что только предполагаемый получатель сможет увидеть содержимое сообщения, уберегая его от нежелательных гостей. Удачного шифрования!