Инструменты пользователя

Инструменты сайта


gpg:basics

Это старая версия документа!


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

Часть 1. Основы.

Что такое GPG

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

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

Таким образом, если вы хотите отправить секретное сообщение или зашифрованный файл определённому лицу, то вы берёте публичный ключ этого лица (который может быть в свободном доступе), зашифровываете информацию и отправляете ему эту зашифрованную информацию — кроме владельца соответствующего приватного ключа её уже никто не сможет узнать.

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

  • вы шифруете свои сообщения публичным ключом вашего собеседника и отправляете ему
  • он с помощью своего приватного ключа читает эти сообщения
  • ваш собеседник шифрует свои сообщения вашим публичным ключом и отправляет вам
  • вы с помощью своего приватного ключа читаете свои сообщения
  • и так далее

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

Предупреждение по использованию GPG

Используйте хороший пароль для вашего пользовательского аккаунта и хорошую парольную фразу для защиты вашего секретного ключа. Эта парольная фраза является самой слабой частью всей системы. Касательно GPG, вам нужно защитить от постороннего доступа папку «~/.gnupg/».

Для использования в скриптах, у gpg есть хорошо документированная реализация API, чтобы активировать этот интерфейс используйте опции --with-colons и --status-fd. Также для определённых операций может пригодиться опция --command-fd.

Каким публичным GPG ключам можно доверять?

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

Конфигурационные файлы GPG

Имеется несколько конфигурационных файлов для контроля определённых аспектов операций gpg. Если не сказано другое, ожидается что они размещены в домашней директории текущего пользователя.

Файл Назначение
gpg.conf Стандартный конфигурационный файл, который gpg считывает при запуске. Он может содержать любое количество валидных длинных опций; можно не вводить начальные две чёрточки, нельзя использовать короткую запись опции. В командной строке можно изменить значение по умолчанию. Следует делать резервную копию этого файла.
~/.gnupg Это домашняя папка по умолчанию, которая используется если не установлено другое в переменной окружения GNUPGHOME или опцией --homedir.
~/.gnupg/pubring.gpg Публичный киринг (public keyring). Следует иметь резервную копию этого файла
~/.gnupg/pubring.gpg.lock Файл блокировки для публичного киринга.
~/.gnupg/pubring.kbx Публичный киринг использует различные форматы. Этот файл поделён с gpgsm. Следует иметь резервную копию этого файла. Фактически, это база данных, где хранятся все ключи. Структуру этого файла можно посмотреть командой: kbxutil ~/.gnupg/pubring.kbx
~/.gnupg/pubring.kbx.lock Файл блокировки для ‘pubring.kbx’.
~/.gnupg/secring.gpg Секретный киринг используемой GnuPG версией до 2.1. Он не используется GnuPG 2.1 и более поздними.
~/.gnupg/secring.gpg.lock Файл блокировки для секретного киринга.
~/.gnupg/.gpg-v21-migrated Файл, показывающий, что сделан переход на GnuPG 2.1.
~/.gnupg/trustdb.gpg Доверенная база данных. Нет нужды делать резервную копию этого файла; лучше делать резервную копию значений ownertrust, смотрите опцию --export-ownertrust.
~/.gnupg/trustdb.gpg.lock Файл блокировки для доверенной базы данных.
~/.gnupg/random_seed Файл, используемый для сохранения состояния внутреннего пула случайных чисел.
~/.gnupg/openpgp-revocs.d/ Директория, где хранятся предварительно сгенерированные сертификаты отзыва. Имя файла соответствует отпечатку OpenPGP ключа, для которого этот сертификат. У каждого, у кого есть доступ к этим файлам, может отозвать ваши ключи. Поэтому эти файлы нужно хранить в секрете и иметь их резервные копии.
/var/www/html/dokuwiki/data/attic/gpg/basics.1788259232.txt.gz · Последнее изменение: — so_v_a