GNU Privacy Guard, также известная как GPG, — популярное программное обеспечение с открытым исходным кодом для безопасного общения.
В этой статье я объясню ключи GPG, как они работают и как их можно использовать.
Что такое GPG?
GPG — это реализация OpenPGP, стандарта для аутентификации или шифрования данных с использованием криптографии с открытым ключом.
У пользователя будет открытый ключ, которым он может поделиться с кем угодно, и закрытый ключ, который должен быть секретным. Вы можете использовать закрытый ключ для подписи или расшифровки сообщений, в то время как другие будут использовать ваш открытый ключ для проверки вашей подписи или шифрования сообщений.
Чтобы отправить вам конфиденциальное сообщение, любой может использовать ваш открытый ключ, зашифровать сообщение и отправить его вам. Вы можете прочитать его после расшифровки с помощью своего закрытого ключа.
Установка GPG
Вы можете загрузить и установить GPG с Официального сайта если он еще не установлен.
Чтобы проверить, правильно ли он установлен, запустите:
|
|
Генерация новой пары ключей GPG
Вы можете создать новую пару ключей, запустив:
|
|
Вам несколько раз будет предложено настроить ключи:
- Вид: RSA и RSA (по умолчанию)
- Размер: >
4096
(для подписи коммитов) - Срок действия: может составлять дни, недели, месяцы или годы. Например, «1y» установит его равным одному году.
- Имя, адрес электронной почты и комментарий: этот адрес электронной почты и имя будут связаны с вашей подписью.
- Пароль: Безопасная парольная фраза для разблокировки закрытого ключа. Сделайте его сильным. По возможности используйте генератор паролей.
Как только вы выполните все подсказки, gpg
сгенерирует пару ключей.
Совет: Поскольку
gpg
использует энтропию для генерации пары ключей, это будет зависеть от того, насколько активна ваша система. Чтобы генерировать больше энтропии, вы можете использовать что-то вроде rng-tools.
Чтобы проверить, была ли создана пара ключей, вы можете запустить:
|
|
Создание сертификата отзыва
Сертификат отзыва может сделать ваш открытый ключ недействительным, если вы забудете свою парольную фразу или скомпрометируете свой закрытый ключ.
Вы должны сгенерировать его, как только создадите пару ключей и сохраните ее в отдельном месте.
Чтобы сгенерировать сертификат отзыва, запустите:
|
|
Когда вы отзываете открытый ключ, люди больше не могут использовать его для отправки вам зашифрованных сообщений. Но он по-прежнему может проверять ваши прошлые подписи и расшифровывать прошлые сообщения.
Экспорт вашего открытого ключа
Чтобы использовать ключи GPG, вы должны экспортировать свой открытый ключ. Я расскажу, как вы можете поделиться экспортированным ключом с другими на общедоступном сервере ключей.
Чтобы экспортировать ключ, запустите:
|
|
Вы также можете экспортировать его в файл, запустив:
|
|
Подписание коммитов с помощью вашей пары ключей GPG
Все мои проекты и проекты, в которых я участвую, находятся на Gitea. Если вы используете другие платформы, такие как GitLab, вы можете следить за их официальная документация.
Примечание. Адрес электронной почты, связанный с вашим ключом GPG, должен совпадать с проверенным адресом электронной почты, настроенным в вашей учетной записи GitHub.
На GitHub перейдите в «Настройки» > «Доступ» > «Ключи SSH и GPG» > «Новый ключ GPG».
В поле «Ключ» вставьте открытый ключ, из которого вы экспортировали -----BEGIN PGP PUBLIC KEY BLOCK-----
в -----END PGP PUBLIC KEY BLOCK-----
включая оба.
Нажмите «Добавить ключ GPG» и введите свой пароль для подтверждения.
Затем вам нужно настроить Git для использования созданного закрытого ключа GPG для подписи ваших коммитов.
Сначала найдите полную форму идентификатора ключа, запустив:
|
|
|
|
В этом примере идентификатор ключа 3AA5C34371567BD2
.
Теперь используйте этот идентификатор ключа для настройки Git:
|
|
Совет: чтобы подписать все коммиты по умолчанию, запустите:
1
git config --global commit.gpgsign true
Теперь, когда вы делаете коммит, используйте флаг -S
. Вы также должны иметь возможность настроить свою IDE, чтобы она делала это автоматически для каждого коммита.
Если вы отправите эти коммиты на GitHub, вы увидите, что они проверены с помощью вашего открытого ключа.
Отправка зашифрованных сообщений с помощью вашей пары ключей GPG
Шифрование сообщений
Любой может использовать ваш открытый ключ для отправки вам зашифрованных сообщений. Но сначала вы должны сделать свой публичный ключ, ну, публичным.
Вы можете скопировать свой открытый ключ и поделиться им с людьми, которые хотят отправлять вам зашифрованные сообщения. Я поделился своим открытым ключом на своем веб-сайте, и люди могут копировать его и использовать для шифрования сообщений.
Вы также можете загрузить свой ключ на сервер открытых ключей, например pgp.mit.edu
:
|
|
Примечание:
3AA5C34371567BD2
является идентификатором ключа. Замените его идентификатором вашего ключа.
Теперь любой желающий сможет запросить ваш публичный ключ с сервера ключей с помощью команды:
|
|
Чтобы зашифровать сообщения, получите открытый ключ человека, которому вы отправляете сообщение. Не забудьте добавить себя в качестве получателя, если вы хотите расшифровать сообщение в будущем:
|
|
Это создаст файл .asc
, содержащий ваше зашифрованное сообщение.
Расшифровка сообщений
Чтобы расшифровать сообщение, вы можете запустить gpg
, и он предложит вам при необходимости:
|
|
Это создаст новый файл с расшифрованным сообщением.
Вы также можете настроить свои почтовые клиенты или другие приложения для использования этой пары ключей для зашифрованной связи. Я использую почтовый клиент Thunderbird, и его документация объясняет, как вы можете настроить свой ключ GPG.