8.9 KiB
title | date | draft | tags | |||
---|---|---|---|---|---|---|
🔐 GnuPG | 2023-04-05T12:05:35+03:00 | false |
|
GnuPG
GnuPG — полная и свободная реализация OpenPGP стандарта, определенного в RFC4880 (также известного, как PGP). GnuPG позволяет вам шифровать и подписывать данные и сообщения. Он оснащен универсальной системой управления ключами, а также модулями доступа для всех типов открытых ключей. GnuPG, также известный как GPG, это инструмент командной строки с возможностью легкой интеграции с другими приложениями. Доступен богатый выбор пользовательских приложений и библиотек. Также 2 версия GnuPG поддерживает S/MIME и Secure Shell (ssh).
Расположение каталогов
$GNUPGHOME
используется GnuPG для определения каталога,
в котором хранятся конфигурационные файлы.
По умолчанию $GNUPGHOME
не назначена и вместо этого используется $HOME
;
таким образом, вы найдете каталог ~/.gnupg
сразу после установки.
Чтобы изменить стандартное расположение, выполните gpg --homedir путь/к/файлу
или установите переменную окружения GNUPGHOME
.
Файлы конфигурации
Файлы конфигурации по умолчанию ~/.gnupg/gpg.conf
.
По умолчанию разрешения доступа каталога gnupg установлены в 700
,
а файлов, которые он содержит - 600
.
Только владелец каталога имеет разрешение на просмотр содержимого,
радактирование и доступ к файлам. В целях безопасности,
эти разрешения не должны быть изменены.
В случае, если этот каталог или любые файлы внутри не следуют данной мере безопасности,
вы получите предупреждение о наличии небезопасных файлов и разрешений домашнего каталога.
Создание пары ключей
Чтобы создать пару ключей, необходимо ввести команду:
gpg --full-gen-key
ℹ️ Используйте опцию --expert
, чтобы выбрать другие шифры,
такие как ECC.
ℹ️ Более простая опция --gen-key
использует параметры по умолчанию для шифра,
размера и срока действия ключа и запрашивает только имя и адрес электронной почты.
Экспорт открытого ключа
Основное назначение GnuPG — обеспечение конфиденциальности обмена сообщениями с помощью криптографии с открытым ключом. С его помощью каждый пользователь распространяет открытый ключ своей связки ключей, который может быть использован другими пользователями для шифрования сообщений пользователю. Закрытый ключ всегда должен оставаться в тайне, иначе конфиденциальность будет нарушена.
Таким образом, чтобы другие могли отправлять вам зашифрованные сообщения, им нужен ваш открытый ключ.
Чтобы сгенерировать ASCII-версию открытого ключа пользователя в файл public.key
(например, для отправки по электронной почте):
gpg --export --armor --output public.key user-id
Импорт открытого ключа
Чтобы зашифровать сообщения другим людям, а также проверить их подписи, вам нужен их открытый ключ. Чтобы импортировать открытый ключ из файла public.key в свой список открытых ключей, выполните команду:
gpg --import public.key
Резервное копирование закрытого ключа
Чтобы создать резервную копию вашего закрытого ключа, выполните:
gpg --export-secret-keys --armor --output privkey.asc user-id
Обратите внимание, что вышеуказанная команда требует ввода пароля от ключа. В противном случае любой, кто получит доступ к экспортированному файлу, сможет шифровать и подписывать документы, как если бы он был вами, без необходимости знать пароль.
⚠️ Важно: Пароль — обычно самое слабое звено в защите закрытого ключа. Поместите закрытый ключ в безопасное место на другой системе или на другом устройстве, например, в заблокированный контейнер или на зашифрованный диск. Это единственное средство защиты, которое поможет вам восстановить контроль над списком ваших ключей в случае, например, поломки диска, кражи или ещё чего-нибудь похуже. Этот способ резервного копирования ключей имеет некоторые ограничения по безопасности. Более безопасный способ резервного копирования и импорта ключей с помощью gpg описан здесь.
Импорт закрытого ключа из резервной копии:
gpg --import privkey.asc
ℹ️ Совет: Paperkey позволяет экспортировать ключ в виде простого текста или машиночитаемого штрих-кода, которые можно отпечатать на бумаге.
Резервное копирование сертификата отзыва
Сертификаты отзыва автоматически генерируются для вновь создаваемых ключей.
По умолчанию они находятся в ~/.gnupg/openpgp-revocs.d/
.
Имя файла сертификата — это отпечаток ключа, который он отзывает.
Сертификаты отзыва также можно сгенерированы вручную с помощью следующей команды:
gpg --gen-revoke --armor --output revcert.asc user-id
Этот сертификат используется, чтобы выполнить отзыв ключа в случае, если он оказался потерян или скомпрометирован. Резервная копия будет полезна, если у вас больше нет доступа к закрытому ключу, из-за чего вы не можете сгенерировать новый сертификат отзыва с помощью приведённой выше команды. Он достаточно короткий, чтобы его можно было распечатать и набрать от руки при необходимости.
⚠️ Важно: Любой человек, имеющий доступ к сертификату отзыва, может публично отозвать ключ, и это действие нельзя отменить. Защищайте свой сертификат отзыва так же, как вы защищаете свой закрытый ключ.