     [file defs.ru.inc not included]

Сетевая служба ключей
*********************

В GnuPG есть средства поддержки и доступа сетевого каталога ключей.

gpg-wks-client.ru.1

Отправка запросов по сетевой службе ключей
==========================================

ВЫЗОВ

ОПИСАНИЕ
gpg-wks-client применяется для отправки запросов оператору сетевой службы ключей. Обычно это делается, чтобы записать ключ в сетевой каталог ключей.

Командой --supported вызывающий может проверить, поддерживает ли сайт сетевую службу ключей. Аргумент — произвольный адрес в домене, который проверяется. Например, foo@example.net. Команда возвращает признак успешного завершения, если сетевая служба ключей поддерживается. Операция ничего не выводит; чтобы получить диагностические сообщения, воспользуйтесь параметром --verbose.

Командой --check вызывающий может проверить, существует ли ключ для переданного адреса почты. Команда возвращает признак успешного завершения, если ключ доступен.

Команда --create применяется для запроса на публикацию в сетевом каталоге ключей. Аргументы — идентификатор пользователя и отпечаток ключа, которые нужно опубликовать. Вывод команды — должным образом отформатированное почтовое сообщение со всеми стандартными заголовками. Это сообщение можно направить на sendmail(8) или любое другое средство для пересылки почты. Если sendmail(8) установлена, параметр --send можно использовать, чтобы напрямую отправить созданный запрос. Если оператор запрашивает идентификатор пользователя, состоящий только из адреса почты, а такого идентификатора не найдено, gpg-wks-client попробует создать новый идентификатор пользователя.

Команды --receive и --read служат для обработки подтверждающих сообщений, отправляемых оператором службы. Первая ожидает зашифрованные сообщения MIME, вторая — уже расшифрованное сообщение MIME. Результат этих команд — другое почтовое сообщение, которое можно отправить так же, как сообщение, созданное --create.

Программа gpg-wks-client обычно не запускается напрямую, поэтому она не устанавливается в каталог bin. Вот пример, как ее можно запускать вручную, чтобы проверить запись сетевого каталога ключей для foo@example.org:

     $(gpgconf --list-dirs libexecdir)/gpg-wks-client --check foo@example.net

ПАРАМЕТРЫ

gpg-wks-client распознает параметры:

--send
     Напрямую отправлять созданные сообщения по почте командой sendmail. Требует, чтобы эта программа была установлена.

--output ФАЙЛ
-o
     Записать созданное сообщение в ФАЙЛ вместо стандартного потока вывода. Если аргумент равен -, сообщение выводится в стандартный поток вывода.

--status-fd N
     Записывать специальные строки состояния в файловый дескриптор N. Эта программа возвращает только строки состояния SUCCESS и FAILURE, полезные, когда вызывающий применяет подход двойного fork и получение кода завершения процесса затруднительно.

--verbose
     Включить вывод дополнительной информации.

--quiet
     Отключить вывод почти всей информации.

--version
     Вывести версию программы и завершиться.

--help
     Вывести краткую справку и завершиться.

СМ. ТАКЖЕ

gpg-wks-server.ru.1

Обеспечение сетевой службы ключей
=================================

ВЫЗОВ

ОПИСАНИЕ
gpg-wks-server — реализация сервера сетевой службы ключей. Программа получает запросы на публикацию, отправляет запросы на подтверждение, получает подтверждения и публикует ключ. В ней есть также средства облегчения настройки и ведения сетевого каталога ключей.

При запуске с командой --receive, обрабатывается отдельное сообщение сетевой службы ключей. Обычно эта команда применяется с параметром --send, чтобы напрямую отправлять ответные сообщения. Пример установки см. ниже.

Команда --cron служит для регламентных работ. Например, неподтвержденные просроченные запросы удаляются. Эту команду рекомендуется выполнять раз в день из cron.

Команда --list-domains выводит все настроенные домены. Далее, она создает недостающие каталоги настроек, выводя предупреждения о проблемах в настройках.

Команда --check-key (или просто --check) проверяет, записан ли ключ с данным идентификатором пользователя в каталоге. В этом случае процесс возвращает код успешного завершения; чтобы дополнительно выводить диагностику, воспользуйтесь параметром -v. Если ключ не записан, выводится диагностическое сообщение, а процесс завершается с кодом ошибки; чтобы подавить диагностическое сообщение, воспользуйтесь параметром -q. Можно задавать более одного идентификатора пользователя; см. также параметр --with-file.

Команда --install-key записывает ключ в сетевой каталог вручную. Аргументы — файл с блоком ключа и идентификатор пользователя, который нужно записать. Если первый аргумент похож на отпечаток, ключ извлекается из текущей связки ключей; чтобы избежать этого, приписывайте к первому аргументу «./».

Команда --remove-key удаляет ключ из сетевого каталога. В этом случае процесс возвращает код успешного завершения; чтобы дополнительно выводить диагностику, воспользуйтесь параметром -v. Если ключ не записан, выводится диагностическое сообщение, а процесс завершается с кодом ошибки; чтобы подавить диагностическое сообщение, воспользуйтесь параметром -q.

Команда --revoke-key пока не функционирует.

ПАРАМЕТРЫ

gpg-wks-server распознает параметры:

--from АДРЕС ПОЧТЫ
     Принять АДРЕС ПОЧТЫ как основной адрес отправителя.

--header ИМЯ=ЗНАЧЕНИЕ
     Добавлять заголовок «ИМЯ: ЗНАЧЕНИЕ» ко всем исходящим сообщениям.

--send
     Напрямую отправлять созданные сообщения по почте командой sendmail. Требует, чтобы эта программа была установлена.

--output ФАЙЛ
-o
     Записать созданный файл также в ФАЙЛ. Если в качестве параметра задано -, запись будет производиться в стандартный поток вывода.

--with-dir
     Выводить также имя каталога для каждого домена, перечисляемого командой --list-domains.

--with-file
     При работе команды --check-key выводить для каждого идентификатора пользователя адрес, «i», если ключ записан или «n», если нет, а также имя файла.

--verbose
     Включить вывод дополнительной информации.

--quiet
     Отключить вывод почти всей информации.

--version
     Вывести версию программы и завершиться.

--help
     Вывести краткую справку и завершиться.

ПРИМЕРЫ

Примеры
*******

Для сетевой службы ключей нужен рабочий каталог, где она хранит ключи, ожидающие публикации. Создайте рабочий каталог из-под учетной записи суперпользователя:

       # mkdir /var/lib/gnupg/wks
       # chown webkey:webkey /var/lib/gnupg/wks
       # chmod 2750 /var/lib/gnupg/wks

Затем из-под учетной записи webkey создайте каталоги для всех своих доменов. Здесь это делается для example.net:

       $ mkdir /var/lib/gnupg/wks/example.net

Наконец, запустите

       $ gpg-wks-server --list-domains

для создания требуемых подкаталогов с правильными атрибутами доступа. Для каждого домена нужно задать служебный адрес для запросов. Все сообщения службы будут направляться на этот адрес. Этот адрес может быть единым для всех настроенных доменов, например:

       $ cd /var/lib/gnupg/wks/example.net
       $ echo key-submission@example.net >submission-address

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

       $ gpg --batch --passphrase '' --quick-gen-key key-submission@example.net
       $ gpg -K key-submission@example.net

Вывод последней команды выглядит так:

       sec   rsa2048 2016-08-30 [SC]
             C0FCF8642D830C53246211400346653590B3795B
       uid           [ultimate] key-submission@example.net
       ssb   rsa2048 2016-08-30 [E]

Скопируйте отпечаток из этого вывода и опубликуйте ключ вручную:

       $ gpg-wks-server --install-key C0FCF8642D830C53246211400346653590B3795B \
       >                key-submission@example.net

Наконец, этот служебный адрес нужно перенаправить на сценарий, запускающий gpg-wks-server. Для этого можно воспользоваться командой procmail: перенаправить служебный адрес на пользователя «webkey» и записать в его .procmailrc:

     :0
     * !^From: webkey@example.net
     * !^X-WKS-Loop: webkey.example.net
     |gpg-wks-server -v --receive \
          --header X-WKS-Loop=webkey.example.net \
          --from webkey@example.net --send

СМ. ТАКЖЕ