Пользование Охраной приватности GNU

Эмблема GnuPG

Следующий:   [Содержание][Указатель]

Это Руководство по Охране приватности GNU (версия 2.1.22-beta59, июнь 2017).

© 2002, 2004, 2005, 2006, 2007, 2010 Free Software Foundation, Inc.
© 2013, 2014, 2015 Werner Koch.
© 2015 g10 Code GmbH.
© 2017 Ineiev (Russian translation)

Разрешается копировать, распространять и модифицировать этот документ на условиях Стандартной общественной лицензии GNU в том виде, в каком она опубликована Фондом свободного программного обеспечения; либо версии 3 этой лицензии, либо (по вашему выбору) любой более поздней версии. Текст лицензии находится в разделе, озаглавленном «Copying».

В этом руководстве описывается пользование системой Охраны приватности GNU (GNU Privacy Guard, GnuPG), а также ее администрирование и архитектура.

Краткое оглавление

Оглавление


Следующий: , Вверх: Верх   [Содержание][Указатель]

1 Краткая инструкция по установке

К сожалению, инструкция по установке не была написана в срок. Вместо того чтобы еще дальше отложить выпуск GnuPG 2.0, я решил выпустить его без этой инструкции. В главах о gpg-agent и gpgsm краткие сведения по общей установке есть. Следите, пожалуйста, за обновлением документации на сайте GnuPG. Между тем можно искать в архивах списка рассылки или обращаться в список рассылки gnupg-users за советами по решению проблем или по установке и настройке всего этого.

** Сборка программ

Сборка программ описана в файле INSTALL. Считая, что вы уже читали эту документацию, мы можем дать только несколько дополнительных наставлений.

В соответствии с правилами систем GNU вам следует настроить сборку gnupg командой:

./configure --sysconfdir=/etc --localstatedir=/var

Таким образом, общесистемные файлы находятся в каталоге /etc, а временные данные в каталоге /var; по умолчанию они устанавливались бы в /usr/local, где устанавливаются и исполняемые файлы. Если бы вы выбрали --prefix=/, вам, очевидно, эти параметры не понадобились бы, потому что они тогда бы подразумевались.

** Заметки по объявлению корневого ключа удостоверяющего центра доверенным

X.509 основан на иерархической инфраструктуре ключей. В корне дерева должна быть доверенная точка (корневой сертификат). Обычно проверить этот корневой сертификат можно, только заглянув в список. GnuPG использует файл (trustlist.txt), чтобы отслеживать все известные корневые сертификаты. Сертификаты в этот список можно поместить тремя способами:


Следующий: , Пред: , Вверх: Верх   [Содержание][Указатель]

2 Вызов GPG-AGENT

gpg-agent — демон (программа фонового режима) для управления секретными ключами независимо от протокола. Он применяется как служебная программа для gpg и gpgsm, а также пары других утилит.

Программа автоматически запускается по мере необходимости программами gpg, gpgsm, gpgconf или gpg-connect-agent. Таким образом, запускать ее вручную не нужно. Если вы хотите пользоваться агентом SSH в составе этой программы, вы можете запустить ее командой:

gpg-connect-agent /bye

Если вам нужно вручную остановить работающий агент, это можно безопасно сделать командой:

gpgconf --kill gpg-agent

У вас в файле инициализации командного интерпретатора (таком, как .bashrc) всегда должны быть команды:

GPG_TTY=$(tty)
export GPG_TTY

Важно, чтобы эти переменные среды всегда отражали вывод команды tty. Для систем W32 это не требуется.

Позаботьтесь о том, чтобы подходящая программа ввода пароля была установлена в файле с принятым в данной системе именем, или воспользуйтесь параметром pinentry-program для указания полного имени этой программы. Нередко бывает полезно завести символическую ссылку от настоящей программы ввода пароля (напр., /usr/local/bin/pinentry-gtk) к ожидаемой (напр., /usr/local/bin/pinentry).

Указатель параметров содержит список команд и параметров GPG-AGENT.


Следующий: , Вверх: Вызов GPG-AGENT   [Содержание][Указатель]

2.1 Команды

Команды отличаются от параметров только тем, что в вызове допустима только одна команда (если в описании команды не указано иное).

--version

Вывести версию программы и лицензионные сведения. Эту команду нельзя сокращать (напр., как --versio).

--help
-h

Вывести подсказку по наиболее полезным параметрам командной строки. Эту команду нельзя сокращать (напр., как --hel).

--dump-options

Вывести список всех имеющихся параметров и команд. Эту команду нельзя сокращать (напр., как --dump-option).

--server

Работать в серверном режиме и ожидать команд из стандартного потока ввода. В исходном режиме создается сокет, из которого принимаются команды.

--daemon [командная строка]

Запустить gpg-agent в виде демона, т.е. отвязать его от консоли и выполнять в фоновом режиме.

В качестве альтернативы можно создавать новый процесс как дочерний процесс gpg-agent: gpg-agent --daemon /bin/sh. Таким образом вы получаете новый командный интерпретатор с настроенной должным образом средой; после выхода из этого командного интерпретатора gpg-agent завершается в пределах нескольких секунд.

--supervised

Работать на переднем плане, отправляя протокол работы по умолчанию в стандартный поток ошибок и прослушивая заданные файловые дескрипторы, которые должны уже быть привязаны к действующим сокетам. Эта команда полезна при работе из systemd и тому подобных механизмов контроля процессов. Этот параметр не поддерживается под Windows.

В режиме --supervised можно задавать разные файловые дескрипторы для сокетов разных типов (напр., ssh, extra), когда они идентифицируются переменными среды LISTEN_FDNAMES (подробнее см. sd_listen_fds(3) в некоторых дистрибутивах GNU/Linux).


Следующий: , Пред: , Вверх: Вызов GPG-AGENT   [Содержание][Указатель]

2.2 Сводка параметров

--options файл

Считывать настройки из указанного файла вместо исходного файла настроек пользователя. Исходный файл настроек называется gpg-agent.conf и находится в каталоге .gnupg непосредственно в домашнем каталоге пользователя.

--homedir каталог

Задать домашний каталог. Если этот параметр не используется, за домашний каталог принимается ~/.gnupg. Параметр учитывается только в командной строке. Он отменяет также любой домашний каталог, указанный в переменной среды GNUPGHOME или (в системах Windows) в пункте реестра HKCU\Software\GNU\GnuPG:HomeDir.

В системах Windows GnuPG можно установить как переносное приложение. В этом случае рассматривается только этот параметр командной строки, все другие способы задания домашнего каталога отключаются.

Для установки GnuPG в качестве переносного приложения под Windows создайте пустой файл под названием gpgconf.ctl в одном каталоге с gpgconf.exe. Тогда верхним каталогом установки будет этот каталог; или, если gpgconf.exe установлен непосредственно в каталоге под названием bin, на один уровень выше. Нужно также проверить, что следующие каталоги существуют и в них разрешена запись: ROOT/home для домашнего каталога GnuPG и ROOT/usr/local/var/cache/gnupg для внутренних буферных файлов.

-v
--verbose

Выводит во время работы дополнительную информацию. Объем информации можно увеличивать, вводя параметр несколько раз, например, ‘-vv’.

-q
--quiet

Стараться выводить на экран как можно меньше.

--batch

Не вызывать программу ввода пароля и не делать ничего, что требует вмешательства человека.

--faked-system-time момент

Этот параметр полезен только для тестирования; он переводит системное время к моменту, заданному аргументом в виде количества секунд с начала 1970 года.

--debug-level уровень

Выбрать уровень отладки для расследования проблем. Уровень может задаваться числом или словом:

none

Никаких отладочных сообщений. Соответствует значениям, меньшим 1.

basic

Некоторые простые отладочные сообщения. Соответствует значениям от 1 до 2.

advanced

Более подробные отладочные сообщения. Соответствует значениям от 3 до 5.

expert

Еще более подробные сообщения. Соответствует значениям от 6 до 8.

guru

Все отладочные сообщения, какие только есть. Соответствует значениям, большим 8.

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

--debug признаки

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

0 (1)

данные, связанные с протоколами X.509 или OpenPGP

1 (2)

значения длинных чисел

2 (4)

криптографические операции низкого уровня

5 (32)

выделение памяти

6 (64)

буферизация

7 (128)

показать статистику памяти

9 (512)

записывать хeшируемые данные в файлы с именами dbgmd-000*

10 (1024)

отслеживать протокол Assuan

12 (4096)

пропустить все проверки сертификатов

--debug-all

То же, что --debug=0xffffffff

--debug-wait n

При работе в серверном режиме подождать указанное число секунд перед входом в цикл обработки и выводить идентификатор процесса. За это время можно подключить отладчик.

--debug-quick-random

Этот параметр отменяет сверхвысокий уровень качества случайных чисел (GCRY_VERY_STRONG_RANDOM из Libgcrypt) и снижает его до обычного качества случайных чисел. Используется только для испытаний и никогда не должен применяться при создании ключей, предназначенных для реального пользования. Этот параметр действует только из командной строки.

Под GNU/Linux есть другой способ быстрого создания некачественных ключей: воспользоваться командой rngd для заполнения резервуара энтропии ядра случайными данными низкого качества. Команда rngd обычно входит в пакет rng-tools. Ее можно вызвать так: ‘sudo rngd -f -r /dev/urandom’.

--debug-pinentry

Этот параметр включает дополнительную отладочную информацию, относящуюся к программе ввода пароля. На настоящий момент полезен только вместе с --debug 1024.

--no-detach

Не отрывать процесс от терминала. Полезно главным образом для отладки.

-s
--sh
-c
--csh

Форматировать выходную информацию в режиме демона для применения в стандартном интерпретаторе Борна и Си-образном соответственно. По умолчанию выставляется по переменной среды SHELL, в большинстве случаев правильно.

--no-grab

Запретить команде ввода пароля перехватывать клавиатуру и мышь. Этот параметр обычно не следует использовать, чтобы предотвратить перекрестное прослушивание.

--log-file файл

Дописывать весь протокол работы в указанный файл. Это очень полезно, когда нужно понять, что же программа делает. Укажите socket://, если нужно протоколировать в сокет. Если на платформе Windows не задан ни файл, ни файловый дескриптор для протокола работы, используется пункт реестра HKCU\Software\GNU\GnuPG:DefaultLogFile, если он существует.

--no-allow-mark-trusted

Не позволять программам-клиентам помечать ключи как доверенные, т.е. помещать их в файл trustlist.txt. Это мешает пользователям нечаянно принимать корневые сертификаты удостоверяющих центров.

--allow-preset-passphrase

Параметр позволяет применять gpg-preset-passphrase для заполнения внутреннего буфера gpg-agent фразами-паролями.

--no-allow-loopback-pinentry
--allow-loopback-pinentry

Запретить или позволить программам-клиентам пользоваться функциями обратного вызова программы ввода пароля; подробнее см. параметр --pinentry-mode. В исходном состоянии позволено.

Этот параметр управляет также параметром --force команды Assuan DELETE_KEY: параметр --force игнорируется, если обратный вызов запрещен.

--no-allow-external-cache

Выключить в программе ввода паролей функции, которые задействуют внешний буфер фраз-паролей.

Некоторые рабочие среды предпочитают защищать все верительные данные единым генеральным паролем; в них может быть установлена программа ввода пароля, в которой для реализации такого режима задействуется внешний буфер. Если задан этот параметр, программе ввода паролей передается указание не применять такой буфер, а вместо этого все время запрашивать фразу-пароль у пользователя.

--allow-emacs-pinentry

Позволить программе ввода паролей перенаправлять ввод фразы-пароля в работающий экземпляр Emacs. Как в точности это происходит, зависит от версии программы ввода паролей.

--ignore-cache-for-signing

Этот параметр позволяет gpg-agent обходить буфер фраз-паролей для всех операций подписи. Обратите внимание, что есть также сеансовый параметр для управления этой особенностью, но параметр командной строки его отменяет.

--default-cache-ttl n

Установить срок действия буферной записи равным n секундам. Исходное значение — 600 секунд. Секундомер записи обнуляется при каждом доступе к ней. Для задания максимального срока действия записи пользуйтесь --max-cache-ttl.

--default-cache-ttl-ssh n

Установить срок действия буферной записи для ключей SSH равным n секундам. Исходное значение — 1800 секунд. Секундомер записи обнуляется при каждом доступе к ней. Для задания максимального срока действия записи пользуйтесь --max-cache-ttl-ssh.

--max-cache-ttl n

Установить максимальный срок действия буферной записи равным n секундам. После этого срок действия буферной записи истекает, даже если к ней недавно обращались или она была заполнена с помощью gpg-preset-passphrase. Исходное значение — 2 часа (7200 секунд).

--max-cache-ttl-ssh n

Установить максимальный срок действия буферной записи для ключей SSH равным n секундам. После этого срок действия буферной записи истекает, даже если к ней недавно обращались или она была заполнена с помощью gpg-preset-passphrase. Исходное значение — 2 часа (7200 секунд).

--enforce-passphrase-constraints

Соблюдать ограничения на фразы-пароли, не позволяя пользователю обходить их с помощью кнопки «Все равно принять».

--min-passphrase-len n

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

--min-passphrase-nonalpha n

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

--check-passphrase-pattern файл

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

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

--max-passphrase-days n

Предлагать пользователю сменить фразу-пароль через n дней после последней смены. С параметром --enforce-passphrase-constraints это принуждает пользователя к смене фразы-пароля.

--enable-passphrase-history

Этот параметр пока никак не действует.

--pinentry-invisible-char знак

Этот параметр указывает программе ввода пароля пользоваться заданным знаком для отображения скрытых символов. Это может быть один символ или строка UTF-8. Программа ввода паролей может учитывать, а может не учитывать этот запрос.

--pinentry-timeout n

Параметр указывает программе ввода пароля предельное время ожидания ввода со стороны пользователя в секундах. Исходное значение равно 0, т.е. программе ввода паролей не передается таких указаний, однако в ней может быть свое исходное значение. Программа ввода паролей может учитывать, а может не учитывать этот запрос.

--pinentry-program программа

Использовать указанную программу в качестве программы ввода пароля. Исходное значение определяется во время установки. При исходных настройках исходное имя программы — pinentry; если такой программы не существует, но есть pinentry-basic, то используется последняя.

На платформе Windows по умолчанию используется первая существующая программа из списка: bin\pinentry.exe, ..\Gpg4win\bin\pinentry.exe, ..\Gpg4win\pinentry.exe, ..\GNU\GnuPG\pinentry.exe, ..\GNU\bin\pinentry.exe, bin\pinentry-basic.exe, где пути до файлов даны относительно каталога, в котором установлен GnuPG.

--pinentry-touch-file имя файла

По умолчанию имя файла сокета, из которого gpg-agent принимает запросы, передается в программу ввода пароля, так что она может обновить времена доступа этого файла перед выходом (она делает этот только в режиме curses). Этот параметр задает файл, передаваемый в программу ввода пароля. Специальное имя /dev/null можно применять, чтобы полностью отключить эту особенность. Обратите внимание, что программа ввода пароля не будет создавать этот файл, она только изменит времена изменения и доступа.

--scdaemon-program программа

Использовать указанную программу в качестве демона электронных карт. Исходное значение определяется при установке и может быть показано командой gpgconf.

--disable-scdaemon

Не пользоваться средством scdaemon. Этот параметр отключает возможность операций с электронными картами. Обратите внимание, что задание этого параметра во время выполнения не приводит к завершению уже работающего средства scdaemon.

--disable-check-own-socket

Программа gpg-agent периодически производит самопроверку для обнаружения кражи сокетов. Обычно это значит, что сокет захватил другой экземпляр gpg-agent; в этом случае gpg-agent самозавершится. Этим параметром можно отключать такую самопроверку в целях отладки.

--use-standard-socket
--no-use-standard-socket
--use-standard-socket-p

Начиная с GnuPG 2.1, всегда применяются стандартные сокеты. Эти параметры больше не действуют. Таким образом, команда gpg-agent --use-standard-socket-p всегда возвращает код успешного завершения.

--display строка
--ttyname строка
--ttytype строка
--lc-ctype строка
--lc-messages строка
--xauthority строка

Эти параметры применяются в режиме сервера для передачи сведений о локализации программ.

--keep-tty
--keep-display

Не учитывать запросы на смену текущего tty и переменной DISPLAY системы X Window соответственно. Это полезно для замыкания программы ввода пароля на терминале или дисплее, в котором вы запустили gpg-agent.

--extra-socket имя

По умолчанию создается дополнительный сокет; этим параметром можно пользоваться, чтобы изменить его имя. Чтобы отменить создание сокета, задайте в качестве аргумента имя «none» или «/dev/null» .

Принимать дополнительно подключения gpg-agent по заданному сокету. Этот дополнительный сокет предназначен для того, чтобы установить перенаправление сокета домена Unix из удаленной машины на этот сокет локальной машины. Работающий на этой удаленной машине gpg может тогда подключаться к локальному gpg-agent и пользоваться его секретными ключами. Это позволяет расшифровывать или подписывать данные на удаленной машине, не выставляя там секретные ключи.

--enable-extended-key-format

Параметр включает создание ключей в расширенном формате секретного ключа. Изменение фразы-пароля ключа также преобразует ключа к этому новому формату. Применение этого параметра исключает чтение секретных ключей версиями gpg-agent, более ранними, чем 2.1.12. Преимущество нового формата состоит в том, что он текстовый и может содержать дополнительные метаданные. Обратите внимание, что этот параметр изменяет также формат защиты ключей на OCB.

--enable-ssh-support
--enable-putty-support

Протокол агента OpenSSH всегда включен, но gpg-agent устанавливает переменную SSH_AUTH_SOCK только тогда, когда задан этот параметр.

В этом режиме работы программа-агент не только реализует протокол gpg-agent, но также протокол программы-агента, применяемый в OpenSSH (через отдельный сокет). Следовательно, можно пользоваться программой gpg-agent в качестве прямой замены широко известного ssh-agent.

Ключи SSH, которые используются в агенте, нужно предварительно добавить в gpg-agent с помощью утилиты ssh-add. Когда добавляется ключ, ssh-add запрашивает пароль к заданному файлу ключа и пересылает незащищенный материал ключа в программу-агент; поэтому gpg-agent запрашивает фразу-пароль, которая будет использоваться для шифрования получаемого ключа и хранения его в специальном каталоге gpg-agent.

Как только ключ таким образом добавлен в gpg-agent, gpg-agent готов к его использованию.

Замечание: в случае, если gpg-agent получает запрос на подпись, пользователю может потребоваться ввести фразу-пароль для расшифровки сохраненного ключа. Поскольку протокол ssh-agent лишен механизма оповещения программы-агента о том, в каком терминале он выполняется, поддержка SSH в gpg-agent пользуется терминалом или дисплеем X Window, в котором был запущен gpg-agent. Для переключения на текущий дисплей можно воспользоваться командой:

gpg-connect-agent updatestartuptty /bye

Хотя все компоненты GnuPG пытаются по мере необходимости запускать gpg-agent, при поддержке ssh это невозможно, поскольку ssh не знает о gpg-agent. Таким образом, если не запускалось никакое средство GnuPG, которое обращалось бы к gpg-agent, ничто не гарантирует, что ssh сможет воспользоваться gpg-agent для проверки подлинности. Чтобы это исправить, gpg-agent можно запустить следующей простой командой:

gpg-connect-agent /bye

Добавив --verbose, можно наблюдать за ходом запуска программы.

Параметр --enable-putty-support есть только под Windows, он позволяет применять gpg-agent с реализацией SSH под названием putty. Это сходно с обычной поддержкой ssh-agent, но применяется очередь сообщений Windows, как того требует putty.

--ssh-fingerprint-digest

Выбрать алгоритм хеша для вычисления отпечатков ssh, передаваемых пользователю, например, в диалогах программы ввода пароля. В OpenSSH перешли от MD5 к более безопасному SHA256.

Все длинные параметры можно размещать в файле настроек без начальных символов «–».


Следующий: , Пред: , Вверх: Вызов GPG-AGENT   [Содержание][Указатель]

2.3 Настройки

Есть несколько файлов настроек, необходимых для работы программы. По умолчанию все они находятся в текущем домашнем каталоге (см. параметр --homedir).

gpg-agent.conf

Это основной файл настроек, который gpg-agent считывает при запуске. В нем могут быть любые допустимые длинные параметры; символов «–» перед названием параметра быть не должно, сокращать параметры нельзя. Этот файл считывается также после сигнала SIGHUP, однако в этом случае учитывается только несколько параметров. Это исходное имя файла можно изменить в командной строке (см. параметр --options). Для этого файла следует проводить резервное копирование.

trustlist.txt

Это список доверенных ключей. Для этого файла следует проводить резервное копирование.

Пустые строки и строки с комментарием, на которые указывает знак «#» в начале, игнорируются. Чтобы пометить ключ как доверенный, нужно ввести его отпечаток с последующим пробелом и прописной буквой S. Для разделения байтов отпечатка можно факультативно пользоваться двоеточиями; это позволяет копировать отпечаток напрямую из результатов работы команд перечисления ключей. Если в начале строки приписан «!», ключ явным образом помечается как недоверенный.

Вот пример, в котором два ключа помечены как неограниченно доверенные, а один — как недоверенный:

# CN=Wurzel ZS 3,O=Intevation GmbH,C=DE
A6935DD34EF3087973C706FC311AA2CCF733765B S

  # CN=PCA-1-Verwaltung-02/O=PKI-1-Verwaltung/C=DE
DC:BD:69:25:48:BD:BB:7E:31:6E:BB:80:D3:00:80:35:D4:F8:A6:CD S

  # CN=Root-CA/O=Schlapphuete/L=Pullach/C=DE
!14:56:98:D3:FE:9C:CA:5A:31:6E:BC:81:D3:11:4E:00:90:A3:44:C2 S

Перед вводом ключа в этот файл надо удостовериться в его подлинности. Как это делается, зависит от вашей организации; возможно, ваш администратор уже ввел в этот файл те ключи, которые считаются достаточно достойными доверия. Отпечаток корневого сертификата можно проверять в письмах, полученных из удостоверяющего центра, или на сайте удостоверяющего центра (после того, как вы полностью убедились в том, что это действительно сайт данного центра). Можно подумать о том, чтобы запретить обновление этого файла с участием пользователя (см. параметр --no-allow-mark-trusted). Можно было бы даже рекомендовать установить доступ к этому файлу только на чтение, чтобы его нельзя было нечаянно изменить.

Специальная строка include-default подключает глобальный список доверенных сертификатов (напр., /usr/local/etc/gnupg/trustlist.txt). Этот глобальный список применяется также, когда пользовательский список отсутствует.

После S можно добавлять дополнительные признаки для вызывающего:

relax

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

cm

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

sshcontrol

Этот файл используется, когда включена поддержка протокола SSH (см. параметр --enable-ssh-support). В протоколе SSH используются только присутствующие в этом файле ключи. Для этого файла следует проводить резервное копирование.

Для добавления в этот файл новых записей можно применять средство ssh-add; их можно также добавлять вручную. Строки комментария, на которые указывает знак «#» в начале, а также пустые строки игнорируются. Запись начинается с необязательных пробелов с последующим кодом ключа из 40 шестнадцатеричных цифр с последующим необязательным сроком действия буфера в секундах и другим необязательным полем для произвольных признаков. Ненулевой срок действия отменяет глобальное исходное значение, задаваемое с помощью --default-cache-ttl-ssh.

Поддерживается только один признак, confirm. Если этот признак установлен, при каждом использовании ключа будет вызываться программа ввода пароля для подтверждения. Признак автоматически устанавливается, если новый ключ загружается в gpg-agent с помощью параметра -c команды ssh-add.

К коду ключа можно приписывать спереди !, чтобы отключить запись.

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

       # Дата добавления ключа: 2011-07-20 20:38:46
       # Отпечаток:  5e:8d:c4:ad:e7:af:6e:27:8a:d6:13:e4:79:ad:0b:81
       34B62F25E277CF13D3C6BCEBFD3F85D08F0A864B 0 confirm
private-keys-v1.d/

Это каталог, в котором gpg-agent хранит секретные ключи. Каждый ключ хранится в файле с именем, составленным из кода ключа и суффикса key. Для всех файлов в этом каталоге следует проводить резервное копирование, тщательнейшим образом сохраняя резервные копии в надежном месте.

Обратите внимание, что на больших системах полезно помещать заранее написанные файлы в каталог /usr/local/etc/skel/.gnupg, чтобы новые учетные записи пользователей создавались с работающими настройками. Для существующих пользователей имеется небольшая программа для создания этих файлов (см. addgnupghome).


Следующий: , Пред: , Вверх: Вызов GPG-AGENT   [Содержание][Указатель]

2.4 Пользование некоторыми сигналами

Работающим экземпляром gpg-agent можно управлять посредством сигналов, посылая их с помощью команды kill.

Вот список поддерживаемых сигналов:

SIGHUP

Этот сигнал сбрасывает все запомненные фразы-пароли; если программа была запущена с файлом настроек, этот файл считывается заново. Учитываются только определенные параметры: quiet, verbose, debug, debug-all, debug-level, debug-pinentry, no-grab, pinentry-program, pinentry-invisible-char, default-cache-ttl, max-cache-ttl, ignore-cache-for-signing, no-allow-external-cache, allow-emacs-pinentry, no-allow-mark-trusted, disable-scdaemon и disable-check-own-socket. Параметр scdaemon-program также поддерживается, но в текущей реализации, в которой scdaemon вызывается только один раз, пользы от этого мало, если только вы не прервете выполнение scdaemon вручную.

SIGTERM

Завершает выполнение процесса, но ждет, пока все текущие запросы будут выполнены. Если процесс получил такой сигнал трижды, а запросы все еще не выполнены, то процесс завершается принудительно.

SIGINT

Завершает выполнение процесса немедленно.

SIGUSR1

Вывести внутреннюю информацию в файл протокола.

SIGUSR2

Этот сигнал используется для внутренних нужд.


Следующий: , Пред: , Вверх: Вызов GPG-AGENT   [Содержание][Указатель]

2.5 Примеры

Важно устанавливать в командной оболочке своей учетной записи переменную среды GPG_TTY, например, в файле ~/.bashrc:

  export GPG_TTY=$(tty)

Если вы включили поддержку агента SSH, вам нужно также сообщить об этом ssh, добавив в свой сценарий инициализации:

unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
  export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi

Пред: , Вверх: Вызов GPG-AGENT   [Содержание][Указатель]

2.6 Протокол Assuan агента

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

  gpg-connect-agent 'help КОМАНДА' /bye

Если указать просто «help», выводится список всех доступных команд.

Демон gpg-agent вызывается по мере необходимости компонентами GnuPG.

Чтобы идентифицировать ключ, мы пользуемся так называемом кодом ключа, представляющим собой SHA-1 от S-выражения открытого ключа в канонической кодировке в том виде, в каком он используется в Libgcrypt. С точки зрения протокола код ключа представляет шестнадцатеричную строку. Преимущество кода ключа перед хeшем сертификата состоит в том, что одну и ту же пару ключей можно применять в различных протоколах, экономя тем самым пространство на электронной карте, где хранятся секретные ключи.

Программа gpg-agent может отправлять сообщения о состоянии во время или после выполнения команд, чтобы информировать программу-клиент о ходе выполнения или результате операции. Например, сообщение INQUIRE_MAXLEN может отправляться во время опроса сервера, чтобы информировать программу-клиент о максимальном объеме запрошенных данных (который не должен превышаться).


Следующий: , Вверх: Протокол агента   [Содержание][Указатель]

2.6.1 Расшифровать сеансовый ключ

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

  SETKEY <код_ключа>

Указать серверу ключ, который должен применяться для расшифровки. Если команда не подана, gpg-agent может попытаться выявить ключ, пытаясь расшифровать сообщение всеми доступными ключами.

  PKDECRYPT

Агент проверяет, разрешена ли эта команда, а затем производит запрос, чтобы получить зашифрованный текст; затем программа-клиент должна послать зашифрованный текст.

    S: INQUIRE CIPHERTEXT
    C: D (xxxxxx
    C: D xxxx)
    C: END

Обратите внимание, что сервер при чтении строк данных из программы-клиента может высылать строки состояния. Высылаются SPKI-подобные S-выражения следующей структуры:

     (enc-val
       (<алгоритм>
         (<имя_параметра_1> <длинное_число>)
 	   ...
         (<имя_параметра_n> <длинное_число>)))

Где алгоритм представлен строкой с названием алгоритма; допустимый список алгоритмов см. в документации Libgcrypt. Имена и количество параметров зависят от алгоритма. Ошибка программой-агентом в случае несоответствия выдается.

Если расшифровка прошла успешно, расшифрованные данные выдаются в виде строк на «D».

Вот пример сеанса:

   C: PKDECRYPT
   S: INQUIRE CIPHERTEXT
   C: D (enc-val elg (a 349324324)
   C: D    (b 3F444677CA)))
   C: END
   S: # следует сеансовый ключ
   S: S PADDING 0
   S: D (значение 1234567890ABCDEF0)
   S: OK decryption successful

Строка состояния «PADDING» высылается, только если gpg-agent знает, какого рода заполнение используется. На сегодня применяется только значение 0, чтобы указать, что заполнение удалено.


Следующий: , Пред: , Вверх: Протокол агента   [Содержание][Указатель]

2.6.2 Подписать хeш

Программа-клиент запрашивает подпись данного значения хeша. Если ключ не задан, будет использован основной ключ. Чтобы задать ключ, программа-клиент сначала подает команду:

   SIGKEY <код_ключа>

Это можно делать несколько раз, чтобы подписать несколькими ключами; список сбрасывается после следующей команды PKSIGN или RESET. Сервер проверяет, можно ли подписывать что-нибудь этим ключом, и выдает квитанцию об успешной операции.

   SETHASH --hash=<хeш>|<алгоритм> <шестнадцатеричная строка>

Эту команду можно применять, чтобы сообщить серверу, какие данные (<шестнадцатеричная строка>) надо подписать (обычно это хeш). Параметр <алгоритм> представляет номер алгоритма хeша в десятичной системе в нумерации Libgcrypt. Должен быть задан либо алгоритм, либо –hash=<хeш>. Допустимые значения аргумента <хeш>:

sha1

Алгоритм SHA-1

sha256

Алгоритм SHA-256

rmd160

Алгоритм RIPE-MD160

md5

Старый взломанный алгоритм MD5

tls-md5sha1

Комбинированный алгоритм, применяемый в протоколе TLS.

Сама подпись производится командой:

   PKSIGN <параметры>

Параметры пока не определены, но впоследствии могут применяться для выбора различных алгоритмов. Затем gpg-agent проводит некоторые проверки, запрашивает фразу-пароль, и в результате сервер возвращает подпись в виде SPKI-подобного S-выражения в строках на «D»:

     (sig-val
       (<алгоритм>
         (<имя_параметра_1> <длинное_число>)
 	   ...
         (<имя_параметра_n> <длинное_число>)))

На работу влияет параметр

   OPTION use-cache-for-signing=0|1

Исходное значение, 1, означает пользование буфером. Установка этого параметра в 0 приведет к тому, что gpg-agent станет игнорировать буфер фраз-паролей. Обратите внимание, что есть также глобальный параметр командной строки gpg-agent, который позволяет глобально выключать буферы.

Вот пример сеанса:

   C: SIGKEY <код_ключа>
   S: OK key available
   C: SIGKEY <код_ключа>
   S: OK key available
   C: PKSIGN
   S: # Здесь запрос подтверждения подписи у пользователя
   S: # Здесь запрос фразы-пароля у пользователя
   S: INQUIRE HASHVAL
   C: D ABCDEF012345678901234
   C: END
   S: # далее подпись
   S: D (sig-val rsa (s 45435453654612121212))
   S: OK

Следующий: , Пред: , Вверх: Протокол агента   [Содержание][Указатель]

2.6.3 Создать ключ

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

   GENKEY [--no-protection] [--preset] [<cache_nonce>]

Вызывает процесс создания ключа; сервер запросит параметры создания:

   S: INQUIRE KEYPARM
   C: D (genkey (rsa (nbits  1024)))
   C: END

Формат параметров ключа зависит от алгоритма:

    (genkey
      (алгоритм
        (имя_параметра_1 ....)
          ....
        (имя_параметра_n ....)))

Если все в норме, сервер возвращает открытый ключ в SPKI-подобном S-выражении вида:

     (public-key
       (rsa
 	 (n <длинное_число>)
 	 (e <длинное_число>)))

Вот пример сеанса:

   C: GENKEY
   S: INQUIRE KEYPARM
   C: D (genkey (rsa (nbits  1024)))
   C: END
   S: D (public-key
   S: D   (rsa (n 326487324683264) (e 10001)))
   S  OK key created

Параметром --no-protection можно пользоваться, чтобы предотвратить запрос фразы-пароля для защиты секретного ключа и оставить секретный ключ незащищенным. Параметр --preset добавляет фразу-пароль в буфер, используя исходные параметры буфера.

Параметром --inq-passwd можно пользоваться для создания ключа с переданной фразой-паролем. При этом gpg-agent производит запрос с ключевым словом NEWPASSWD для получения фразы-пароля. Этим параметром отменяется --no-protection; однако когда программа-клиент посылает фразу-пароль нулевой длины, это эквивалентно параметру --no-protection.


Следующий: , Пред: , Вверх: Протокол агента   [Содержание][Указатель]

2.6.4 Импортировать секретный ключ

Эта операция пока не поддерживается. Для этого следует пользоваться специализированными средствами.

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


Следующий: , Пред: , Вверх: Протокол агента   [Содержание][Указатель]

2.6.5 Экспортировать секретный ключ

Не реализовано.

Должно производиться дополнительными средствами.


Следующий: , Пред: , Вверх: Протокол агента   [Содержание][Указатель]

2.6.6 Импортировать корневой сертификат

На самом деле мы не импортируем корневой сертификат, а предоставляем способ проверить любой набор данных, сохраняя его хeш вместе с описанием, а также идентификатором в личной среде безопасности. Вот описание команды:

    ISTRUSTED <отпечаток>

Проверить, является ли первичный ключ OpenPGP сертификата X.509 с данным отпечатком абсолютно доверенным ключом или доверенным корневым сертификатом удостоверяющего центра. Отпечаток должен задаваться шестнадцатеричной строкой (без пробелов, двоеточий и т.д. между ними) и может заполняться слева байтом 00 в случае отпечатка MD5. В ответ на это программа выдает:

    OK

Ключ находится в таблице доверенных ключей.

    ERR 304 (Not Trusted)

Ключ не находится в этой таблице.

Для ведения сети доверия необходим полный список доверенных ключей; таким образом, очень полезна следующая команда:

    LISTTRUSTED

Возвращается список доверенных ключей по одному в строке:

    S: D 000000001234454556565656677878AF2F1ECCFF P
    S: D 340387563485634856435645634856438576457A P
    S: D FEDC6532453745367FD83474357495743757435D S
    S: OK

Первый элемент в строке представляет шестнадцатеричный отпечаток, в котором отпечатки MD5 дополнены слева байтом 00, второй указывает на тип ключа (чтобы gpg можно было заниматься только ключами PGP). «P» означает PGP, «S» — S/MIME. Остаток строки программа-клиент должна игнорировать, чтобы в будущем мы могли расширять формат.

Наконец, программа-клиент может пометить ключ как доверенный:

   MARKTRUSTED отпечаток "P"|"S"

Сервер выдаст пользователю запрос на подтверждение этого действия. Для этого можно использовать подобный текст:

   S: INQUIRE TRUSTDESC
   C: D Действительно ли вы доверяете ключу с отпечатком @FPR@?
   C: D трам-пам-пам.
   C: END
   S: OK

Известные последовательности вида @xyz@ заменяются по таблице:

@FPR16@

Отформатировать отпечаток по правилам gpg для ключей версии 3.

@FPR20@

Отформатировать отпечаток по правилам gpg для ключей версии 4.

@FPR@

Выбрать для отпечатка подходящий формат.

@@

Заменяется на один знак @.


Следующий: , Пред: , Вверх: Протокол агента   [Содержание][Указатель]

2.6.7 Запросить фразу-пароль

Эта функция, как правило, применяется, чтобы запросить фразу-пароль для симметричного шифрования, но ее могут также вызывать программы, которым нужна специальная обработка фраз-паролей. Синтаксис команды предельно упрощает пользование агентом для программ-клиентов.

  GET_PASSPHRASE [--data] [--check] [--no-ask] [--repeat[=N]] \
                 [--qualitybar] идентификатор буфера    \
                 [сообщение об ошибке приглашение описание]

В аргументе идентификатор буфера передается строка, указывающая на сохраненную фразу-пароль. Чтобы не пользоваться буфером, задайте X. Без других аргументов gpg-agent выдает сохраненную фразу-пароль или ошибку. По соглашению в качестве идентификатора используется либо шестнадцатеричный отпечаток ключа, либо произвольная строка, в начале которой стоит имя вызывающего приложения с двоеточием, например, gpg:что-то-там.

Аргумент сообщение об ошибке представляет либо один X, если сообщения нет, либо сообщение, которое нужно показать при ошибке (напр., «неверная фраза-пароль»). Пробелы должны быть экранированы процентом или заменяться на +.

Аргумент приглашение представляет либо один X, если исходное приглашение не заменяется, либо текст, который показывается в качестве приглашения. Пробелы должны быть экранированы процентом или заменяться на +.

Аргумент описание представляет текст, выводимый сверху от поля ввода. Пробелы должны быть экранированы процентом или заменяться на +.

Агент отвечает сообщением об ошибке либо «OK» с последующей фразой-паролем в шестнадцатеричном виде. Обратите внимание, что длина строк неявно ограничивается максимальной длиной команды. Если задан параметр --data, фраза-пароль возвращается не в строке с «OK», а в обычных строках данных; этот метод предпочтителен.

Если задан параметр --check, проверяются обычные ограничения на фразу-пароль. Проверка не проводится, если фраза-пароль найдена в буфере.

Если задан параметр --no-ask, а фраза-пароль не находится в буфере, фраза-пароль у пользователя запрашиваться не будет; вместо этого будет возвращаться GPG_ERR_NO_DATA.

Если задан параметр --qualitybar и установлена минимальная длина фразы-пароля, то показывается визуальный индикатор качества вводимой фразы-пароля.

  CLEAR_PASSPHRASE идентификатор буфера

Сбросить фразу-пароль в буфере. Функция возвращает «OK», даже когда такой фразы-пароля нет.


Следующий: , Пред: , Вверх: Протокол агента   [Содержание][Указатель]

2.6.8 Удалить фразу-пароль из буфера

Пользуйтесь этой командой для удаления запомненной фразы-пароля.

  CLEAR_PASSPHRASE [--mode=normal] <идентификатор буфера>

Параметром --mode=normal можно пользоваться, чтобы очистить указанный буфер, заполненный программой gpg-agent.


Следующий: , Пред: , Вверх: Протокол агента   [Содержание][Указатель]

2.6.9 Задать фразу-пароль для кода ключа

Эта команда добавляет фразу-пароль для заданного кода ключа в буфер.

  PRESET_PASSPHRASE [--inquire] <строка или код ключа> <время> [<число>]

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

Аргумент время указывает время хранения фразы-пароля в секундах. Значение -1 означает бесконечность, а 0 — исходное значение (в настоящее время допустимо только -1, т.е. сохранять навсегда).


Следующий: , Пред: , Вверх: Протокол агента   [Содержание][Указатель]

2.6.10 Запросить подтверждение

Этой командой можно вызвать простой запрос подтверждения с текстом и двумя кнопками: «Да» и «Отмена».

  GET_CONFIRMATION описание

Заданное описание показывается с кнопками «Да» и «Отмена». Пробелы должны быть экранированы процентом или заменяться на +. Для вызова диалога подтверждения с текстом по умолчанию можно использовать X.

В ответ возвращается либо ошибка, либо «OK». Обратите внимание, что длина описания неявно ограничена максимальной длиной команды.


Следующий: , Пред: , Вверх: Протокол агента   [Содержание][Указатель]

2.6.11 Проверить наличие ключа

Этой командой можно проверять наличие секретного ключа. Она не возвращает никакой информации о защите этого ключа.

  HAVEKEY коды ключей

В ответ выдается «OK» либо «No_Secret_Key (208)». Вызывающий может проверять и другие коды ошибок. Можно задавать более одного кода ключа. В этом случае выполнение считается успешным, если по меньшей мере один код ключа соответствует доступному секретному ключу.


Следующий: , Пред: , Вверх: Протокол агента   [Содержание][Указатель]

2.6.12 Зарегистрировать электронную карту

  LEARN [--send]

Команда регистрирует электронную карту. С параметром --send заданные сертификаты отсылаются назад.


Следующий: , Пред: , Вверх: Протокол агента   [Содержание][Указатель]

2.6.13 Сменить фразу-пароль

  PASSWD [--cache-nonce=<c>] [--passwd-nonce=<s>] [--preset] код ключа

Эта команда предназначена для диалоговой смены фразы-пароля ключа, указанного шестнадцатеричной строкой кода ключа. Параметр --preset можно задать, чтобы добавить новую фразу-пароль в буфер, используя исходные параметры буфера.


Следующий: , Пред: , Вверх: Протокол агента   [Содержание][Указатель]

2.6.14 Изменить дисплей

  UPDATESTARTUPTTY

Установить переменные начального TTY и X-DISPLAY равными значениям данного сеанса. Эта команда полезна, чтобы направить будущие вызовы программы запроса пароля на другой экран. Это нужно только потому, что другого способа передать эту информацию в ssh-agent не существует.


Следующий: , Пред: , Вверх: Протокол агента   [Содержание][Указатель]

2.6.15 Получить счетчики событий

  GETEVENTCOUNTER

Эта функция возвращает одну строку состояния с текущими значениями счетчиков событий. Счетчики событий полезны, чтобы не опрашивать что-то постоянно, а ждать, когда что-то изменится. Значения представлены в десятичном виде в диапазоне от 0 до UINT_MAX и циклически переходят в 0. Опираться на действительные значения не следует; по ним можно только обнаружить изменение.

В настоящее время определены счетчики:

ANY

Увеличивается с любым изменением любых других счетчиков.

KEY

Увеличивается при добавлении или удалении секретных ключей.

CARD

Увеличивается при изменении состояния устройств чтения электронных карт.


Следующий: , Пред: , Вверх: Протокол агента   [Содержание][Указатель]

2.6.16 Вывод сведений о процессе

Это универсальная функция для вывода разного рода сведений.

GETINFO разряд

Значение аргумента определяет, какого рода данные выводятся:

version

Вывести версию программы.

pid

Вывести идентификатор процесса.

socket_name

Вывести имя сокета, по которому производится подключение к gpg-agent.

ssh_socket_name

Вывести имя сокета, по которому производится подключение к SSH. Если поддержка SSH не включена, возвращается ошибка GPG_ERR_NO_DATA.


Пред: , Вверх: Протокол агента   [Содержание][Указатель]

2.6.17 Задать параметры сеанса

Вот список параметров сеанса, которые еще не описаны с другими командами. Общий синтаксис параметра Assuan таков:

OPTION  имя=значение

Поддерживаются имена:

agent-awareness

Это можно использовать, чтобы указать gpg-agent, с какой версией gpg-agent знакома программа-клиент. gpg-agent пользуется этими данными, чтобы выключать функции, которые могли бы привести к сбоям старых программ-клиентов.

putenv

Изменить среду сеанса, которая используется с программой ввода пароля. Допустимы значения:

имя

Удалить переменную среды с указанным именем

имя=

Присвоить указанной переменной пустую строку

имя=значение

Присвоить указанной переменной указанное значение.

use-cache-for-signing

См. команду Assuan PKSIGN.

allow-pinentry-notify

Параметр используется без аргумента. Он используется для включения запроса PINENTRY_LAUNCHED.

pinentry-mode

Параметр применяется для изменения режима работы программы ввода пароля. Определены значения:

ask

Это исходный режим, в котором программа ввода пароля вызывается по мере необходимости.

cancel

Вместо вызова программы ввода пароля возвращается код ошибки GPG_ERR_CANCELED.

error

Вместо вызова программы ввода пароля возвращается код ошибки GPG_ERR_NO_PIN_ENTRY.

loopback

Пользоваться программой ввода пароля с обратным вызовом. Это имитирует программу ввода пароля, возвращая запросы пароля вызывающей программе. Чтобы выключить эту функцию, используйте параметр --no-allow-loopback-pinentry.

cache-ttl-opt-preset

Этот параметр задает время действия новых записей в буфере, созданных командами GENKEY и PASSWD с параметром --preset. Если параметр не задан, используется исходное значение.

s2k-count

Вместо стандартного номера S2K (вычисляемого на ходу) пользоваться для новых ключей и при смене фразы-пароля заданным номером S2K. Значения ниже 65536 считаются равными 0. Этот параметр действует до конца сеанса, если его не сбросят в 0. Этот параметр полезен, если ключ используется впоследствии на машинах, которые либо гораздо медленнее, либо гораздо быстрее, чем нынешняя.


Следующий: , Пред: , Вверх: Верх   [Содержание][Указатель]

3 Вызов DIRMNGR

Начиная с версии 2.1 GnuPG, dirmngr занимается доступом к серверам OpenPGP. Как и в прошлых версиях, программа используется также для ведения и списков отозванных сертификатов для сертификатов X.509, для получения сертификатов X.509, а также обеспечивает доступ к службам OCSP. Программа dirmngr вызывается внутри gpg, gpgsm и gpg-connect-agent.

Указатель параметров содержит список команд и параметров DIRMNGR.


Следующий: , Вверх: Вызов DIRMNGR   [Содержание][Указатель]

3.1 Команды

Команды отличаются от параметров только тем, что в вызове допустима только одна команда (если в описании команды не указано иное).

--version

Вывести версию программы и лицензионные сведения. Эту команду нельзя сокращать (напр., как --versio).

--help, -h

Вывести подсказку по наиболее полезным параметрам командной строки. Эту команду нельзя сокращать (напр., как --hel).

--dump-options

Вывести список всех имеющихся параметров и команд. Эту команду нельзя сокращать (напр., как --dump-option).

--server

Работать в серверном режиме и ожидать команд из стандартного потока ввода. В исходном режиме создается сокет, из которого принимаются команды. Это применяется только для испытаний.

--daemon

Работать в фоновом режиме, принимая команды из сокета. Именно так dirmngr запускается по требованию от других компонентов GnuPG. Чтобы принудительно запустить dirmngr, в общем случае лучше всего выполнить gpgconf --launch dirmngr.

--supervised

Работать на переднем плане, отправляя протокол работы по умолчанию в стандартный поток ошибок и прослушивая файловый дескриптор 3, который должен уже быть привязан к действующему сокету. Эта команда полезна при работе из systemd и тому подобных механизмов контроля процессов. Этот параметр не поддерживается под Windows.

--list-crls

Перечислить содержимое буфера списка отозванных сертификатов в стандартном потоке вывода. Вероятно, это полезно только для отладки.

--load-crl файл

Команда требует имени файла в качестве аргумента; dirmngr попытается импортировать список отозванных сертификатов из указанного файла в свой буфер. Обратите внимание, что это возможно, только если dirmngr может извлечь сертификат удостоверяющего центра своими собственными средствами. В целом лучше пользоваться командой gpgsm --call-dirmngr loadcrl имя_файла, чтобы поддержать dirmngr средствами gpgsm.

--fetch-crl url

Команда требует URL в качестве аргумента; dirmngr попытается извлечь и импортировать список отозванных сертификатов по этому URL в свой буфер. Это полезно главным образом в целях отладки. Программа dirmngr-client выполняет ту же функцию с помощью работающего dirmngr.

--shutdown

Прервать завершение работающего экземпляра dirmngr. В настоящее время команда не реализована.

--flush

Команда удаляет все списки отозванных сертификатов из буфера dirmngr. Таким образом, запросы программ-клиентов приведут к чтению списков заново.


Следующий: , Пред: , Вверх: Вызов DIRMNGR   [Содержание][Указатель]

3.2 Сводка параметров

Заметьте, что все длинные параметры за исключением --options и --homedir можно размещать в файле настроек без начальных символов «–».

--options файл

Читает настройки из заданного файла вместо исходного файла настроек пользователя. Исходный файл настроек под названием dirmngr.conf находится в домашнем каталоге.

--homedir каталог

Установить заданный домашний каталог. Этот параметр действует только в командной строке. Исходным является каталог .gnupg непосредственно в домашнем каталоге пользователя, если не установлена переменная среды GNUPGHOME; в последнем случае используется значение этой переменной. В этом каталоге хранятся всевозможные данные.

-v
--verbose

Выводить во время работы дополнительную информацию. Уровень подробности можно повышать, вводя параметр несколько раз, например, -vv.

--log-file файл

Дописывать протокол работы в указанный файл. Это очень полезно, когда нужно понять, что же программа делает. Укажите socket://, если нужно протоколировать в сокет.

--debug-level уровень

Выбрать уровень отладки для исследования проблем. Аргумент может быть числом либо ключевым словом:

none

Никаких отладочных сообщений. Соответствует значениям, меньшим 1.

basic

Некоторые простые отладочные сообщения. Соответствует значениям от 1 до 2.

advanced

Более подробные отладочные сообщения. Соответствует значениям от 3 до 5.

expert

Еще более подробные сообщения. Соответствует значениям от 6 до 8.

guru

Все отладочные сообщения, какие только есть. Соответствует значениям, большим 8.

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

--debug признаки

Установить флаги отладки. Этот параметр полезен только для отладки, его поведение может изменяться с каждым новым выпуском. Все флаги суммируются по логическому ИЛИ, их можно записывать в синтаксисе Си (напр., 0x0042) или в виде названий флагов, разделенных запятыми. Получить список поддерживаемых флагов можно, задав слово «help».

--debug-all

То же, что --debug=0xffffffff

--gnutls-debug уровень

Включить отладку GNUTLS на заданном уровне.

--debug-wait n

При работе в серверном режиме подождать указанное число секунд перед входом в цикл обработки и выводить идентификатор процесса. За это время можно подключить отладчик.

--disable-check-own-socket

На некоторых платформах dirmngr может обнаруживать удаление файла его сокета и самостоятельно завершаться. Этот параметр отключает эту самопроверку в целях отладки.

-s
--sh
-c
--csh

Форматировать выходную информацию в режиме демона для применения в стандартном интерпретаторе Борна и Си-образном соответственно. По умолчанию выставляется по переменной среды SHELL, в большинстве случаев этого достаточно.

--force

Если задан этот параметр, принудительно загружаются просроченные списки отозванных сертификатов. Это полезно только для отладки.

--use-tor

Этот параметр переводит dirmngr и тем самым GnuPG в «режим Tor», в котором все сетевые соединения проходят через Tor (сеть анонимности). В этом режиме отключаются определенные функции.

--standard-resolver

Этот параметр указывает, что нужно пользоваться стандартными системными программами определения DNS. Он полезен главным образом для отладки. Заметьте, что под Windows стандартные программы определения не применяются вообще, и запрос к DNS возвращает ошибку «Не реализовано», если используется эта функция.

--recursive-resolver

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

--resolver-timeout n

Установить предельное время ожидания программы определения DNS равным n секунд. Исходное значение — 30.

--connect-timeout n
--connect-quick-timeout n

Установить предельное время ожидания для соединений HTTP и общих соединений TCP равным n секунд. Параметр --connect-quick-timeout используется, когда определенные команды Assuan применяются с параметром --quick; оно добавляется к значению обычного времени ожидания. Исходные значения — 15 и 2. Обратите внимание, что времена задаются на каждую попытку; программа подключения пытается соединиться со всеми перечисленными адресами сервера.

--allow-version-check

Разрешить соединяться с https://versions.gnupg.org, чтобы получить список текущих версий программ. Если задан этот параметр, список извлекается, если нет локальной копии или она старше 5-7 дней. Подробности см. в описании параметра --query-swdb команды gpgconf. Заметьте, что независимо от этого параметра проверку версий можно провести командой:

       gpg-connect-agent --dirmngr 'loadswdb --force' /bye
--keyserver сервер

Использовать сервер в качестве сервера ключей. Это сервер, с которым соединяется gpg, чтобы получать, отправлять, искать ключи. Аргумент сервер представляет URI: «схема:[//]имясервера[:порт]». Схема является типом сервера ключей: «hkp» — серверы ключей HTTP (или совместимые), «ldap» — серверы ключей LDAP, «mailto» — почтовый сервер ключей Graff. Обратите внимание, что в вашей конкретной установке GnuPG могут быть и другие типы серверов ключей. Названия схем нечувствительны к регистру символов. После имени сервера могут идти необязательные параметры настройки. Они задаются, как в параметре --keyserver-options gpg, но применяются к этому конкретному серверу.

Большинство серверов ключей синхронизируются друг с другом, так что обычно нет надобности высылать ключи больше чем на один сервер. Сервер hkp://keys.gnupg.net пользуется циклическим DNS, чтобы выдавать при каждом обращении новый сервер ключей.

Если в настройках есть ровно два сервера ключей и только один из них является скрытой службой Tor (.onion), dirmngr выбирает сервер ключей в зависимости от того, работает ли Tor на локальной машине. Это проверяется при каждом новом подключении.

Если сервер ключей не задан в явном виде, dirmngr использует встроенное исходное значение, hkps://hkps.pool.sks-keyservers.net.

--nameserver адрес IP

В «режиме Tor» dirmngr пользуется публичной службой для определения имен DNS через Tor. Если основная служба, т.е. 8.8.8.8, не должна применяться, этим параметром можно задать другую. Обратите внимание, что должен задаваться числовой адрес IP (IPv6 или IPv4) и что проверка ошибок для него не производится.

--disable-ipv4
--disable-ipv6

Отключить пользование всеми адресами IPv4 или IPv6.

--disable-ldap

Полностью отключить пользование LDAP.

--disable-http

Полностью отключить пользование HTTP.

--ignore-http-dp

При поиске расположения списка отозванных сертификатов сертификат, который следует проверить, обычно содержит так называемые записи точек распространения списка отозванных сертификатов, представляющие собой URL для доступа к списку. Используется первая найденная точка распространения. Этим параметром все записи со схемой HTTP при поиске подходящей точки распространения пропускаются.

--ignore-ldap-dp

То же, что --ignore-http-dp, но пропускает записи со схемой LDAP. Эти два параметра можно сочетать друг с другом, что приведет к полному игнорированию точек распространения.

--ignore-ocsp-service-url

Игнорировать все URL OCSP, содержащиеся в сертификате. В результате принудительно используется основной ответчик.

--honor-http-proxy

Если установлена переменная среды http_proxy, использовать ее значение для доступа к серверам HTTP.

--http-proxy машина[:порт]

Задать прокси-сервер для доступа по HTTP. Этот параметр отменяет переменную среды http_proxy независимо от того, задан ли параметр --honor-http-proxy.

--ldap-proxy машина[:порт]

Задать прокси-сервер для доступа по LDAP. Если не задан порт, используется порт 389 (стандартный порт LDAP). Этот параметр отменяет любой указанный порт и машину в URL LDAP, а также используется, если машина и порт в URL не указаны.

--only-ldap-proxy

Не пользоваться ничем, кроме «прокси-сервера» LDAP, настроенного параметром --ldap-proxy. Обычно dirmngr пытается пользоваться другим настроенным сервером LDAP, если подключиться через «прокси-сервер» не удается.

--ldapserverlist-file файл

Считывать список серверов LDAP для сверки сертификатов и списков отозванных сертификатов из указанного файла, а не основного списка серверов LDAP пользователя. Основной список пользователя находится в файле dirmngr_ldapservers.conf.

В этом файле серверы LDAP записаны по одному в строке в формате:

ИМЯ СЕРВЕРА:ПОРТ:ИМЯ ПОЛЬЗОВАТЕЛЯ:ПАРОЛЬ:БАЗА ПОИСКА

Строки, начинающиеся с «#», представляют комментарий.

Обратите внимание, что все вводимые строки, как обычно, ожидаются в кодировке UTF-8. Очевидно, это приведет к проблемам, если пароль первоначально был в кодировке Latin-1. Тут есть только одно решение — поместить такой пароль в двоичном виде в файл (т.е. символы за пределами ASCII не будут читаться)1.

--ldaptimeout секунды

Указать число секунд, в течение которых нужно ждать ответа на запрос LDAP. Исходное значение в настоящее время равно 100. Значение 0 эквивалентно бесконечности.

--add-servers

Добавлять все серверы, которые dirmngr обнаруживает при проверке сертификатов по спискам отозванных сертификатов, во внутренний список серверов для запросов сертификатов и списков отозванных сертификатов.

Этот параметр полезен, когда пытаются проверить сертификат с точкой распространения списка отозванных сертификатов, указывающей на сервер, который еще не перечислен в ldapserverlist. Программа dirmngr всегда будет обращаться к этому серверу и пытаться получить список отозванных сертификатов, но весьма вероятно, что сертификат, которым подписан список отозванных сертификатов, находится на том же сервере. Так что если dirmngr не добавит этот новый сервер в список, то без параметра --add-servers проверить подпись на списке отозванных сертификатов часто будет невозможно.

Обратите внимание: в текущей версии dirmngr этот параметр в исходном состоянии выключен.

--allow-ocsp

Этот параметр включает поддержку OCSP по требованию программы-клиента.

В исходном состоянии запросы OCSP отклоняются, потому что они могут нарушить приватность пользователя; например, можно отследить время, в которое пользователь читает сообщение почты.

--ocsp-responder url

Использовать заданный URL как основной ответчик OCSP, если сертификат не содержит сведений о назначенном ответчике. Обратите внимание, что --ocsp-signer тоже должен указывать на достоверный сертификат.

--ocsp-signer отп|файл

Пользоваться сертификатом с указанным отпечатком для проверки ответов основного ответчика OCSP. Вместо отпечатка можно также задать имя файла, в этом случае ожидается, что ответ будет подписан одним из указанных в этом файле сертификатов. Действуют обычные для имен файлов подстановки: тильда в начале с последующей косой чертой заменяются на содержимое переменной HOME, если в начале нет косой черты, имя представляет относительный путь до файла из домашнего каталога. Чтобы гарантировать, что поиск файла будет производиться в домашнем каталоге, либо начинайте имя с «./», либо пользуйтесь именем, которое содержит точку.

Если ответ подписан сертификатом, заданным этими отпечатками, дальнейшая проверка достоверности этого сертификата не проводится.

Содержимое файла представляет список отпечатков SHA-1 по одному на строке, с необязательными двоеточиями между байтами. Пустые строки, а также строки, начинающиеся со знака «#», игнорируются.

--ocsp-max-clock-skew n

Количество секунд, на которое могут быть сдвинуты часы ответчика OCSP относительно локальных часов. Исходное значение равно 600 (10 минут).

--ocsp-max-period n

Максимальное количество секунд, в течение которых ответ считается действительным после времени, заданного в поле thisUpdate. Исходное значение равно 7776000 (90 дней).

--ocsp-current-period n

Количество секунд, в течение которых ответ считается действительным после времени, заданного в NEXT_UPDATE. Исходное значение равно 10800 (3 часа).

--max-replies n

Не возвращать по одному запросу более n записей. Исходное значение равно 10.

--ignore-cert-extension oid

Добавить oid к списку игнорируемых расширений сертификатов. Аргумент должен представлять десятичные числа, разделенные точками, например, 2.5.29.3. Этот параметр можно задавать несколько раз. Расширения сертификата, совпадающие с перечисленными OID и помеченные как критичные, будут считаться обработанными, так что сертификат не будет отбракован из-за неизвестного критичного расширения. Пользуйтесь этим параметром с осторожностью, потому что расширения обычно не помечаются как критичные без причины.

--hkp-cacert файл

Пользоваться корневыми сертификатами из указанного файла для проверки сертификатов TLS, используемых с hkps (доступом к серверу ключей по TLS). Для файлов в формате PEM ожидается суффикс .pem. Этот параметр можно задавать несколько раз для добавления дополнительных корневых сертификатов. Поддерживается подстановка тильды.

Если директива hkp-cacert отсутствует, dirmngr выбирает по своему усмотрению: когда данный сервер ключей представляет собой специальное объединение hkps.pool.sks-keyservers.net, используется групповой корневой сертификат этого объединения. В противном случае используются системные удостоверяющие центры.


Следующий: , Пред: , Вверх: Вызов DIRMNGR   [Содержание][Указатель]

3.3 Настройки

При работе в фоновом режиме dirmngr использует несколько каталогов: там находится несколько файлов настроек, управляющих работой dirmngr. По умолчанию они располагаются в текущем домашнем каталоге (см. параметр --homedir).

dirmngr.conf

Это обычный файл настроек, который dirmngr читает при запуске. В нем могут быть только допустимые длинные параметры; символов «–» перед названием параметра быть не должно, сокращения не допускаются. Этот файл считывается также после SIGHUP, однако действуют не все параметры. Это исходное имя файла можно изменить в командной строке (см. параметр --options). Для этого файла следует проводить резервное копирование.

/etc/gnupg/trusted-certs

Этот каталог должен быть заполнен сертификатами корневых удостоверяющих центров, которым вы доверяете проверку списков отозванных сертификатов и подпись ответов по OCSP.

Обычно это те же сертификаты, которыми вы пользуетесь с приложениями, обращающимися к dirmngr. Ожидается, что каждый из этих файлов содержит ровно один сертификат в кодировке DER; имя файла должно заканчиваться на .crt или .der. Программа dirmngr считывает эти сертификаты при запуске и при получении сигнала SIGHUP. Сертификаты, которые не удалось прочесть или которые не представляют правильного сертификата X.509, игнорируются; подробности см. в файле протокола работы.

Приложения, пользующиеся dirmngr (напр., gpgsm), могут запрашивать эти сертификаты, чтобы составить цепь доверия так же, как это делается с каталогом extra-certs (см. ниже).

Обратите внимание, что сертификаты для ответов OCSP, указанные с помощью параметра --ocsp-signer, всегда считаются пригодными для подписи запросов OCSP.

/etc/gnupg/extra-certs

Этот каталог может содержать дополнительные сертификаты, которые загружаются во внутренний буфер при запуске программы. Приложения, пользующиеся dirmngr (напр., gpgsm), могут запрашивать эти сертификаты, чтобы составить цепь доверия. Это удобно в случаях, когда у вас есть пара промежуточных сертификатов удостоверяющих центров или сертификатов, обычно применяемых для подписи ответов OCSP. Эти сертификаты программа пытается использовать перед тем, как выходить в сеть за сертификатами. Эти сертификаты должны быть в кодировке DER; имя файла должно заканчиваться на .crt или .der.

~/.gnupg/crls.d

В этом каталоге хранятся запомненные списки отозванных сертификатов. Каталог crls.d создается программой dirmngr, если не существует, но вам нужно позаботиться, чтобы существовал каталог, в котором он находится.

Чтобы была возможность увидеть, что происходит, нужно создать файл настроек ~/gnupg/dirmngr.conf по крайней мере с одной строкой:

log-file ~/dirmngr.log

Чтобы можно было выполнять запросы по OCSP, вам, вероятно, понадобится добавить строку:

allow-ocsp

Чтобы гарантировать, что новые параметры считаны и что после установки новых версий GnuPG работает только что установленный dirmngr, может потребоваться прекратить выполнение работающего dirmngr:

gpgconf --kill dirmngr

Чтобы понять, правильно ли загрузились все желаемые корневые сертификаты, можно заглянуть в файл протокола работы.


Следующий: , Пред: , Вверх: Вызов DIRMNGR   [Содержание][Указатель]

3.4 Пользование некоторыми сигналами

Работающим экземпляром dirmngr можно управлять посредством сигналов, посылая их с помощью команды kill.

Вот список поддерживаемых сигналов:

SIGHUP

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

gpgconf --reload dirmngr
SIGTERM

Завершает выполнение процесса, но ждет, пока все текущие запросы будут выполнены. Если процесс получил такой сигнал трижды, а запросы все еще не выполнены, то процесс завершается принудительно. Можно также использовать

gpgconf --kill dirmngr

вместо этого сигнала.

SIGINT

Завершает выполнение процесса немедленно.

SIGUSR1

Вывести некоторую статистику буферизации в файл протокола.


Следующий: , Пред: , Вверх: Вызов DIRMNGR   [Содержание][Указатель]

3.5 Примеры

В этом примере показано, как вывести внутреннюю таблицу адресов серверов ключей dirmngr. Данные на выходе предназначены для отладки и не входят в документированный порядок обмена.

  gpg-connect-agent --dirmngr 'keyserver --hosttable' /bye

Для запрета пользования конкретной машиной, которую вы заметили в одном из наборов серверов ключей, можно подать команду

 gpg-connect-agent --dirmngr 'keyserver --dead pgpkeys.bnd.de' /bye

Описание команды keyserver можно получить с помощью

 gpg-connect-agent --dirmngr 'help keyserver' /bye

Пред: , Вверх: Вызов DIRMNGR   [Содержание][Указатель]

3.6 Протокол Assuan dirmngr

Assuan — протокол обмена между процессами, применяемый для доступа к dirmngr. Здесь описаны команды, реализуемые в dirmngr.


Следующий: , Вверх: Протокол dirmngr   [Содержание][Указатель]

3.6.1 Показать найденные сертификаты

Поиск сертификата. Для указания нескольких образцов (при поиске выдаются ключи, соответствующие хотя бы одному из них) их нужно экранировать: пробелы нужно заменять на «+» или «%20»; это, в свою очередь, требует применения обычных правил для экранирующих символов.

  S: D <сертификат в кодировке DER>
  S: END
  S: D <второй сертификат в кодировке DER>
  S: END
  S: OK

В этом примере возвращаются два сертификата. Сервер может вернуть любое количество сертификатов; «OK» будет возвращаться и в случае, когда ни один сертификат не найден. Чтобы показать, что данные на выходе были ограничены в соответствии с настройками или возможностями сервера первыми N записями, dirmngr может вернуть строку состояния

  S: S TRUNCATED <n>

Параметр --url можно задать, если вместо шаблона для поиска известен полный URL сертификата:

  C: LOOKUP --url CN%3DWerner%20Koch,o%3DIntevation%20GmbH,c%3DDE?userCertificate

Если задан параметр --cache-only, никакой внешний поиск не производится, так что возвращаются только сертификаты, найденные в буфере.

Если задан параметр --single, возвращается первая и только первая найденная запись. В этом случае локальный поиск не проводится, если только не задан параметр --cache-only.


Следующий: , Пред: , Вверх: Протокол dirmngr   [Содержание][Указатель]

3.6.2 Проверка сертификата по спискам отозванных сертификатов или OCSP

  ISVALID [--only-ocsp] [--force-default-responder] ид.серт.|отп.серт.

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

Идентификатор сертификата представляет шестнадцатеричную строку из двух частей, разделенных одной точкой. Первая часть представляет SHA-1 имени издателя, а вторая часть — серийный номер.

Вместо идентификатора можно задать отпечаток SHA-1; в этом случае запрос OCSP выполняется до сверки по спискам отозванных сертификатов. Если задан параметр --only-ocsp, проверка по спискам отозванных сертификатов в качестве запасного варианта при сбое проверки по OCSP проводиться не будет. Если задан параметр --force-default-responder, будет использоваться только основной ответчик OCSP и никакие другие методы получения URL ответчика OCSP применяться не будут.

Обычные коды выхода:

GPG_ERR_NO_ERROR (0)

Это положительный ответ: сертификат не отозван, и у нас есть свежий список отозванных сертификатов для этого сертификата. Если применялся OCSP, ответчик подтвердил, что сертификат не отозван.

GPG_ERR_CERT_REVOKED

Это отрицательный ответ: сертификат был отозван. Он либо находится в свежем списке отозванных сертификатов, либо ответчик OCSP проинформировал нас о том, что сертификат отозван.

GPG_ERR_NO_CRL_KNOWN

Список отозванных сертификатов для этого сертификата неизвестен, непригоден или устарел.

GPG_ERR_NO_DATA

Ответчик OCSP вернул значение «неизвестно». Это значит, что у него нет сведений о состоянии сертификата.

GPG_ERR_NOT_SUPPORTED

Обычно это значит, что поддержка OCSP не включена в настройках.

Если у dirmngr недостаточно сведений по данному сертификату (например, если сертификата пока нет в буфере), он запрашивает недостающие данные:

  S: INQUIRE SENDCERT <идентификатор сертификата>
  C: D <сертификат в кодировке DER>
  C: END

Программа-клиент должна быть готова к тому, что dirmngr может запросить более одного сертификата.

Если у dirmngr есть сертификат, но его подпись не удалось проверить из-за того, что корневой сертификат передан в dirmngr в качестве доверенного, он может запросить программу-клиент, следует ли доверять этому корневому сертификату:

  S: INQUIRE ISTRUSTED <шестнадцатеричный отпечаток>
  C: D 1
  C: END

Только при этом ответе dirmngr будет считать сертификат доверенным.


Следующий: , Пред: , Вверх: Протокол dirmngr   [Содержание][Указатель]

3.6.3 Проверка сертификата по спискам отозванных сертификатов

Проверить, достоверен ли сертификат с заданным отпечатком (SHA-1 всего содержимого сертификата X.509), сверяясь по списку отозванных сертификатов, отвечающему за данный сертификат. Если отпечаток не задан или сертификат неизвестен, функция запрашивает сертификат таким образом:

  S: INQUIRE TARGETCERT
  C: D <сертификат в кодировке DER>
  C: END

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

При успехе (сертификат не отозван) возвращается код 0, в противном случае возвращается один из обычных кодов ошибки из libgpg-error.


Следующий: , Пред: , Вверх: Протокол dirmngr   [Содержание][Указатель]

3.6.4 Проверка сертификата по OCSP

  CHECKOCSP [--force-default-responder] [отпечаток]

Проверить, достоверен ли сертификат с заданным отпечатком (SHA-1 всего содержимого сертификата X.509), запрашивая соответствующий ответчик OCSP. Если отпечаток не задан или сертификат неизвестен dirmngr, функция запрашивает сертификат таким образом:

  S: INQUIRE TARGETCERT
  C: D <сертификат в кодировке DER>
  C: END

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

Если задан параметр --force-default-responder, применяется только основной ответчик OCSP. Этот параметр представляет разновидность глобального параметра --ignore-ocsp-service-url, которую можно менять от команды к команде.

При успехе (сертификат не отозван) возвращается код 0, в противном случае возвращается один из обычных кодов ошибки из libgpg-error.


Следующий: , Пред: , Вверх: Протокол dirmngr   [Содержание][Указатель]

3.6.5 Занесение сертификата во внутренний буфер

Занести сертификат во внутренний буфер. Эта команда может быть полезна, только если программа-клиент заранее знает, какие сертификаты требуются для проверки, и хочет гарантировать, что они добавлены во внутренний буфер. Команда полезна также для отладки. Чтобы получить настоящий сертификат, эта команда немедленно делает запрос

  S: INQUIRE TARGETCERT
  C: D <сертификат в кодировке DER>
  C: END

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

При успехе возвращается код 0; если сертификат не был успешно занесен в буфер, возвращается один из обычных кодов ошибки из libgpg-error.


Пред: , Вверх: Протокол dirmngr   [Содержание][Указатель]

3.6.6 Проверка сертификата для отладки

Проверить сертификат с помощью функции проверки, которая применяется внутри dirmngr. Эта команда полезна только для отладки. Чтобы получить настоящий сертификат, эта команда немедленно делает запрос

  S: INQUIRE TARGETCERT
  C: D <сертификат в кодировке DER>
  C: END

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


Следующий: , Пред: , Вверх: Верх   [Содержание][Указатель]

4 Вызов GPG

gpg2 — часть GnuPG (охраны приватности GNU), реализующая OpenPGP. Это средство обеспечивает цифровую подпись и шифрование по стандарту OpenPGP. В gpg2 входит полное управление ключами, а также все рюшечки с бантиками, каких вы ожидали бы от полной реализации OpenPGP.

Есть две основных версии GnuPG: GnuPG 1.x и GnuPG 2.x. GnuPG 2.x поддерживает современные алгоритмы шифрования, таким образом, ей следует отдавать предпочтение. GnuPG 1.x нужно применять, только если ваша платформа не поддерживает GnuPG 2.x или если вам нужны некоторые особенности, которые в GnuPG больше не поддерживаются, например, расшифровка данных, созданых ключами PGP-2.

В отличие от отдельной команды gpg из GnuPG 1.x, версия 2.x обычно устанавливается под именем gpg2.

Указатель параметров содержит список команд и параметров gpg2.


Следующий: , Вверх: Вызов GPG   [Содержание][Указатель]

4.1 Команды

Команды отличаются от параметров только тем, что в вызове допустима только одна команда (если в описании команды не указано иное). Вообще говоря, не относящиеся к делу параметры игнорируются и могут не проверяться на корректность.

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


Следующий: , Вверх: Команды GPG   [Содержание][Указатель]

4.1.1 Команды, не связанные с конкретными функциями

--version

Вывести версию программы и лицензионные сведения. Эту команду нельзя сокращать (напр., как --versio).

--help
-h

Вывести подсказку по наиболее полезным параметрам командной строки. Эту команду нельзя произвольно сокращать (напр., как --hel), хотя можно пользоваться краткой формой -h.

--warranty

Вывести сведения о гарантиях.

--dump-options

Вывести список всех имеющихся параметров и команд. Эту команду нельзя сокращать (напр., как --dump-option).


Следующий: , Пред: , Вверх: Команды GPG   [Содержание][Указатель]

4.1.2 Команды выбора типа операции

--sign
-s

Подписать сообщение. Эту команду можно сочетать с --encrypt (чтобы подписать и зашифровать сообщение) или одновременно с --encrypt и --symmetric (чтобы подписать и зашифровать сообщение, которое можно расшифровать секретным ключом или по фразе-паролю). Для подписи берется основной ключ или ключ, явно указанный параметрами --local-user и --default-key.

--clear-sign
--clearsign

Сделать текстовую подпись. Текст с такой подписью можно читать без специальных программ. Программа, реализующая OpenPGP, нужна только для проверки подписи. В подписанных данных, которые выводятся вместе с подписью, могут изменяться символы перевода строки для независимости от платформы; эта нормализация может быть необратима. Для подписи берется основной ключ или ключ, явно указанный параметрами --local-user и --default-key.

--detach-sign
-b

Создать отделенную подпись. В отличие от простой подписи, подписанные данные в отделенной подписи не присутствуют.

--encrypt
-e

Зашифровать данные. Эту команду можно сочетать с --sign (чтобы подписать и зашифровать сообщение), --symmetric (чтобы зашифровать сообщение, которое можно расшифровать секретным ключом или по фразе-паролю) или --sign и --symmetric одновременно (для подписанных сообщений, которые можно расшифровать с помощью секретного ключа по фразе-паролю).

--symmetric
-c

Зашифровать симметричным шифром с помощью пароля. По умолчанию применяется алгоритм шифрования AES-128, но его можно выбрать параметром --cipher-algo. Эту команду можно сочетать с --sign (для подписанных сообщений, зашифрованных симметричным шифром), --encrypt (для сообщений, которые можно расшифровать секретным ключом или по фразе-паролю) или --sign и --encrypt одновременно (для подписанных сообщений, которые можно расшифровать секретным ключом или по фразе-паролю).

--store

Только сохранить (записать простой пакет с данными).

--decrypt
-d

Расшифровать файл, данный в командной строке (или стандартном потоке ввода, если файл не указан) и записать в стандартный поток вывода (или файл, если он указан параметром --output). Если расшифровываемый файл подписан, подпись проверяется. Эта команда отличается от действия по умолчанию тем, что игнорирует файлы, которые не начинаются с зашифрованного сообщения, и не пишет в файл с именем, указанным в сообщении.

--verify

Считать, что первый аргумент — подписанный файл, и проверить подпись, не создавая выходного файла. Без аргументов пакет с подписью читается из стандартного потока ввода. Если дан только один аргумент, в указанном файле ожидается полная (не отделенная) подпись.

Если аргументов больше одного, первый должен указывать файл с отделенной подписью, а остальные файлы должны содержать подписанные данные. Чтобы читать подписанные данные из стандартного потока ввода, в качестве имени второго файла введите ‘-’. По соображениям безопасности отделенная подпись не применяется к стандартному потоку ввода, если это явно не обозначено вышеуказанным образом.

Замечание: Если параметр --batch не используется, gpg2 может считать, что единственный аргумент представляет файл с отделенной подписью, и попытаться найти соответствующий файл данных, отбрасывая определенные суффиксы в имени. Пользоваться этой исторической особенностью категорически не рекомендуется; всегда указывайте файл данных явно.

Замечание: Когда проверяется текстовая подпись, gpg2 проверяет только ту часть, которая составляет подписанные данные, но не какие-либо дополнительные данные, не заключенные между строками-ограничителями. Параметр --output можно применять для вывода самих подписанных данных, но с этим форматом есть и другие загвоздки. Рекомендуется вместо текстовых подписей пользоваться отделенными.

Замечание: Иногда легче воспользоваться gpgv, чем полной командой gpg с этим параметром. gpgv сравнивает подписанные данные по списку доверенных ключей и возвращает признак успешного выполнения только для действительной подписи. У команды есть своя страница man.

--multifile

Указание для определенных команд принимать в командной строке несколько файлов для обработки или считывать имена файлов из стандартного потока ввода по одному на строку. Это позволяет обработать несколько файлов за раз. В настоящее время --multifile можно применять с --verify, --encrypt и --decrypt. Обратите внимание, что --multifile --verify нельзя применять с отделенными подписями.

--verify-files

То же, что --multifile --verify.

--encrypt-files

То же, что --multifile --encrypt.

--decrypt-files

То же, что --multifile --decrypt.

--list-keys
-k
--list-public-keys

Перечислить указанные ключи. Если ключи не указаны, перечисляются все ключи из настроенных таблиц открытых ключей.

Никогда не пользуйтесь текстом, выведенным этой командой, в программах. Он предназначен только для человека, и его формат часто меняется. Данные в стабильном формате для машинной обработки выдаются по --with-colons.

--list-secret-keys
-K

Перечислить указанные секретные ключи. Если ключи не указаны, выводятся все известные секретные ключи. Символ # после начальных меток sec и ssb значит, что секретный ключ или подключ в настоящее время непригоден для использования. Можно сказать также, что этот ключ недоступен (например, секретный ключ можно экспортировать с помощью команды --export-secret-subkeys). Символ > после этих меток указывает, что ключ хранится на карте. См. также --list-keys.

--list-signatures
--list-sigs

То же, что --list-keys, но приводятся и подписи. То же самое можно сделать, применяя --list-keys с --with-sig-list.

Для каждой перечисленной подписи между меткой "sig" и идентификатором ключа выводится несколько символов. Эти символы дают дополнительные сведения о каждой подписи (слева направо): цифры 1-3 представляют уровень проверки сертификата (см. --ask-cert-level), "L" — локальная (неэкспортируемая) подпись (см. --lsign-key), "R" — неотзываемая подпись (см. команду "nrsign" --edit-key), "P" — подпись содержит URL правил (см. --cert-policy-url), "N" — подпись содержит замечание (см. --cert-notation), "X" — срок действия подписи истек (см. --ask-cert-expire), цифры 1-9 или "T" (что значит 10 и выше) указывают уровень доверия подписи (см. команду "tsign" --edit-key).

--check-signatures
--check-sigs

То же, что --list-signatures, но подписи проверяются. Обратите внимание, что по соображениям быстродействия не определяется, отозван подписавший ключ или нет. Команда эквивалентна вызову --list-keys с --with-sig-check.

Результат проверки указывается символом, непосредственно следующим за меткой "sig" (следовательно, перед вышеописанными символами --list-signatures). "!" указывает, что подпись прошла проверку успешно, "-" означает плохую подпись, а "%" выводится при ошибке во время проверки подписи (например, если не поддерживается алгоритм).

--locate-keys

Найти заданные в качестве аргументов ключи. Эта команда находит ключи в основном по алгоритму, который применяется для поиска ключей при шифровке и подписи; таким образом, команду можно использовать для определения того, какие ключи будет использовать gpg2. В частности, внешние методы, определяемые --auto-key-locate, могут использоваться для поиска ключа. Выводятся только открытые ключи.

--fingerprint

Перечислить все (или указанные) ключи с их отпечатками. То же, что --list-keys, но дополнительно выводится строка с отпечатком. Можно также сочетать с --list-signatures и --check-signatures. Если команда задана дважды, выводятся также отпечатки всех вторичных ключей. Эта команда также приводит к принудительному выводу отпечатков, если в качестве формата идентификаторов ключей указано «none».

--list-packets

Перечислять только последовательности пакетов. Команда полезна только для отладки. Когда задан параметр --verbose, выводятся сами значения длинных чисел, а не только их длины. Обратите внимание, что вывод этой команды в новых выпусках может измениться.

--edit-card
--card-edit

Представить меню для работы с электронной картой. Подкоманда "help" выводит обзор имеющихся команд. Подробное описание см. в «Памятке GnuPG по картам» на https://gnupg.org/documentation/howtos.html#GnuPG-cardHOWTO .

--card-status

Показать содержимое электронной карты.

--change-pin

Представить меню для изменения PIN электронной карты. Эта функция имеется также в виде подкоманды «passwd» в команде --edit-card.

--delete-keys имя

Удалить ключ из таблицы открытых ключей. В пакетном режиме требуется либо --yes, либо указание ключа отпечатком; это предохраняет от удаления сразу нескольких ключей по случайности.

--delete-secret-keys имя

Удалить ключ из таблицы секретных ключей В пакетном режиме ключ должен задаваться отпечатком. Параметр --yes можно использовать, чтобы указать программе gpg-agent не запрашивать подтверждения. Эта дополнительная предосторожность предпринимается, потому что gpg2 не может быть уверен, что секретный ключ (контролируемый программой gpg-agent) используется только для данного открытого ключа OpenPGP.

--delete-secret-and-public-key имя

То же, что --delete-key, но если есть секретный ключ, сначала будет удалятся он. В пакетном режиме ключ должен задаваться отпечатком. Параметром --yes можно указать программе gpg-agent не запрашивать подтверждения.

--export

Экспортировать все ключи из всех таблиц (основных и зарегистрированных параметром --keyring) или (если дано хотя бы одно имя) ключи с заданным именем. Экспортируемые ключи выводятся в стандартный поток вывода или файл, заданный параметром --output. Для отправки по почте применять с параметром --armor.

--send-keys ID ключей

Подобно команде --export, но отсылает ключи на сервер ключей. Вместо идентификаторов ключей можно применять отпечатки. Для задания имени сервера должен применяться параметр --keyserver. Не отсылайте свою таблицу ключей на сервер полностью — выбирайте только новые или измененные вами ключи. Если идентификаторов ключей не дано, gpg2 ничего не делает.

--export-secret-keys
--export-secret-subkeys

То же, что --export, но экспортирует секретные ключи. Экспортируемые ключи выводятся в стандартный поток вывода или в файл, указанный параметром --output. Эту команду часто применяют с параметром --armor, чтобы это можно было распечатать на бумаге; однако для сохранения резервных копий на бумаге лучше подходит внешняя программа paperkey. Обратите внимание, что экспорт секретного ключа может представлять опасность, если экспортированные ключи пересылаются по незащищенному каналу.

Вторая форма команды отличается тем, что делает секретную часть первичного ключа непригодной к использованию; это расширение OpenPGP, специфичное для GNU, и нельзя ожидать, что другие реализации смогут успешно импортировать такой ключ. Расширение предназначено для того, чтобы создавать полный ключ с дополнительным подключом для подписи на выделенной для этого машине. Затем этой командой ключ экспортируется без первичного ключа на главную машину.

GnuPG может запросить у вас фразу-пароль ключа. Это требуется, потому что внутренний метод защиты секретного ключа отличается от метода, предписанного в протоколе OpenPGP.

--export-ssh-key

Эта команда применяется для экспорта ключа в формате открытого ключа OpenSSH. Это требует указания одного ключа обычным способом; последний действительный подключ, который можно использовать для проверки подлинности, экспортируется в стандартный поток вывода или файл, заданный параметром --output. Результат можно напрямую добавлять в файл authorized_key ssh.

Указывая ключ с помощью идентификатора ключа или отпечатка, к которому приписан восклицательный знак (!), можно экспортировать конкретный подключ или первичный ключ. При этом не требуется даже, чтобы у ключа был установлен признак возможности проверки подлинности.

--import
--fast-import

Импортировать или объединить ключи. Добавляет данные ключи в таблицу ключей. Вариант «fast» в настоящий момент просто синоним.

Несколько других параметров управляют работой этой команды, прежде всего это параметр --import-options merge-only, который не вставляет новые ключи, а только дополняет их новыми подписями, идентификаторами пользователя и подключами.

--receive-keys идентификаторы ключей
--recv-keys идентификаторы ключей

Импортировать ключи с данными идентификаторами с сервера ключей. Для указания имени этого сервера нужно пользоваться параметром --keyserver.

--refresh-keys

Запросить на сервере ключей обновление тех ключей, которые уже записаны в локальную таблицу ключей. Это полезно для обновления ключа новыми подписями, идентификаторами пользователя и т.д. Для указания имени этого сервера нужно пользоваться параметром --keyserver для всех ключей, у которых не установлены предпочтительные серверы (см. --keyserver-options honor-keyserver-url).

--search-keys имена

Искать на сервере ключей заданные имена. Заданные имена объединяются в строку для поиска на сервере. Для указания имени этого сервера нужно пользоваться параметром --keyserver. Серверы, которые поддерживают различные методы поиска, допускают использование выражений, описанных ниже в разделе «Как указать идентификатор пользователя». Обратите внимание, что разные типы серверов ключей поддерживают разные методы поиска. В настоящее время только поиск по LDAP поддерживает все методы.

--fetch-keys URI

Извлечь ключи, расположенные по указанным URI. Обратите внимание, что разные варианты установки GnuPG могут поддерживать разные наборы протоколов (HTTP, FTP, LDAP и т.д.). При связи по HTTPS эта команда пользуется корневыми сертификатами, предоставляемыми системой.

--update-trustdb

Провести регламентные работы в базе данных доверия. Команда проходит по всем ключам и строит сеть доверия. Это диалоговая команда, она может запрашивать значения «доверия владельцу» для разных ключей. Пользователь должен дать оценку того, насколько он верит, что владелец показанного ключа всегда правильно сертифицирует (подписывает) другие ключи. GnuPG запрашивает эти значения, только когда они ключу еще не присвоены. Присвоенное значение можно изменить в любой момент из меню команды --edit-key.

--check-trustdb

Провести работы по поддержке базы данных доверия без участия пользователя. Время от времени база данных доверия должна обновляться, чтобы отследить просроченные ключи или подписи, влияющие на сеть доверия. Обычно GnuPG делает это автоматически по мере необходимости, если не задан параметр --no-auto-check-trustdb. Этой командой можно в любое время проводить принудительную проверку базы данных доверия. Обработка проводится та же, что по команде --update-trustdb, но ключи, у которых «доверие владельцу» не установлено, пропускаются.

Для применения с заданиями cron эту команду можно вызывать с параметром --batch; в этом случае проверка проводится только тогда, когда она нужна. Для принудительной проверки в пакетном режиме добавьте параметр --yes.

--export-ownertrust

Отправить величины доверия владельцам в стандартный поток вывода. Это полезно для задач резервного копирования, поскольку в случае порчи базы данных доверия нельзя восстановить только эти значения.

  gpg2 --export-ownertrust > otrust.txt
--import-ownertrust

Обновить базу данных доверия значениями, записанными в заданных файлах (или стандартном потоке ввода, если файлы не заданы); существующие значения будут заменяться на новые. В случае сильно поврежденной базы данных, если у вас есть свежая резервная копия величин доверия владельцам (напр., в файле otrust.txt), восстановить базу данных можно командами:

  cd ~/.gnupg
  rm trustdb.gpg
  gpg2 --import-ownertrust < otrust.txt
--rebuild-keydb-caches

При обновлении с версии 1.0.6 до версии 1.0.7 эту команду нужно применять для создания буферов подписей в таблице ключей. Она может оказаться удобной и в других ситуациях.

--print-md алг
--print-mds

Распечатать хеш сообщения, найденный по алгоритму АЛГ, для всех заданных файлов или стандартного потока ввода. Во втором варианте команды (или в нерекомендованном случае «*» в качестве алгоритма) распечатываются хеши, найденные по всем доступным алгоритмам.

--gen-random 0|1|2 число

Выдать указанное число случайных байт на заданном уровне качества (0, 1 или 2). Если число не задано или равно нулю, выдается бесконечная последовательность случайных байт. Если задан параметр --armor, данные на выходе будут в кодировке base64. НЕ ПОЛЬЗУЙТЕСЬ этой командой, если вы не знаете, что делаете; она может вывести драгоценную энтропию из системы!

--gen-prime режим биты

См. исходники. Формат данных на выходе еще не устоялся.

--enarmor
--dearmor

Запаковать произвольные данные на входе в формат ASCII OpenPGP или распаковать их. Это расширение OpenPGP, специфическое для GnuPG, в целом это не очень полезно.

--tofu-policy auto|good|unknown|bad|ask ключ...

Установить правило TOFU для всех привязок указанных ключей (см. trust-model-tofu). Ключи можно задавать отпечатками (предпочтительно) или идентификаторами.


Пред: , Вверх: Команды GPG   [Содержание][Указатель]

4.1.3 Как управлять своими ключами

В этом разделе рассказывается о главных командах управления ключами.

--quick-generate-key ид. польз. [алг. [назначение [срок]]]

Эта простая команда создает обычный ключ с одним идентификатором пользователя. В отличие от --generate-key, ключ создается сразу без кучи вопросов. Если не задан параметр --yes, создание ключа будет отменено, если данный идентификатор пользователя уже присутствует в таблице ключей.

При прямом запуске из командной строки без особых параметров требуется подтверждение на запрос типа «Продолжить?». Если идентификатор пользователя уже присутствует в таблице ключей, появится второй запрос на подтверждение принудительного создания ключа.

Если задан алг. или назначение, создается только первичный ключ, а запросы не проводятся. Чтобы указать срок действия, но вместе с тем создать первичный и вторичный ключ, укажите «default» или «future-default» в качестве алг. и «default» для параметра назначение. Описание этих необязательных параметров см. в команде --quick-add-key. В параметре назначение можно задавать также «cert» для создания первичного ключа только для сертификации; по умолчанию создается ключ для подписи и сертификации.

Параметр срок можно применять для указания срока действия ключа. Поддерживается несколько форматов; обычно используются форматы ИСО ГГГГ-ММ-ДД или ГГГГММДДTччммсс. Чтобы срок истекал через n секунд, n суток, n недель, n месяцев или n лет, задавайте «seconds=n», «nd», «nw», «nm» и «ny» соответственно. Если значение не указано или указано «-», устанавливается разумный срок по умолчанию. Значения «never» и «none» указывают, что срок действия ключа не истекает.

Если эта команда используется с --batch, а --pinentry-mode установлен в loopback и применяется один из параметров пароля (--passphrase, --passphrase-fd или passphrase-file), переданный пароль используется для нового ключа, а программа-агент его не запрашивает. Создать ключ безо всякой защиты можно с помощью --passphrase ''.

--quick-set-expire отп [срок]

Напрямую задать установить срок действия первичного ключа. Для удаления срока действия можно задать 0.

--quick-add-key отп [алг [[назначение] [срок]]]

Добавить подключ непосредственно к ключу, указанному отпечатком отп. Без необязательных аргументов добавляется подключ для шифрования. Если аргументы заданы, ключ добавляется в соответствии с ними.

В качестве алг можно задавать любой из поддерживаемых алгоритмов или названий кривых в формате, применяемом в перечислениях ключей. Если задать «default» или «-», используется алгоритм по умолчанию. Поддерживаются алгоритмы: «rsa», «dsa», «elg», «ed25519», «cv25519» и другие кривые эллиптических алгоритмов. Например, строка «rsa» добавляет ключ RSA с исходной длиной ключа; строка «rsa4096» задает длину ключа, равную 4096 бит. Строка «future-default» представляет синоним алгоритма, который, скорее всего, будет применяться в качестве основного в будущих версиях gpg.

В зависимости от параметра алг, ключ может быть предназначен либо для шифрования, либо для подписи. Если алгоритм обеспечивает подпись и шифрование и требуется такой подключ, нужно задать параметр назначение. Это либо «default» или «-» (исходные значения не меняются), либо разделенные запятой (или пробелом) ключевые слова: «sign» для подписи, «auth» для проверки подлинности, «encr» (или «encrypt») для шифрования. Допустимые комбинации зависят от алгоритма.

Параметр срок можно применять для указания срока действия ключа. Поддерживается несколько форматов; обычно используются форматы ИСО ГГГГ-ММ-ДД или ГГГГММДДTччммсс. Чтобы срок истекал через n секунд, n суток, n недель, n месяцев или n лет, задавайте «seconds=n», «nd», «nw», «nm» и «ny» соответственно. Если значение не указано или указано «-», устанавливается разумный срок по умолчанию. Значения «never» и «none» указывают, что срок действия ключа не истекает.

--generate-key
--gen-key

Создать новую пару ключей с текущими параметрами по умолчанию. Это обычная команда для создания нового ключа. В дополнение к ключу создается сертификат отзыва, который сохраняется в подкаталоге openpgp-revocs.d домашнего каталога GnuPG.

--full-genenerate-key
--full-gen-key

Создать новую пару ключей, запрашивая все параметры. Это расширенная версия --generate-key.

Есть также функция, позволяющая создавать ключи в пакетном режиме (см. Автоматическое создание ключей GPG).

--generate-revokation имя
--gen-revoke имя

Создать сертификат отзыва для всего ключа. Чтобы отозвать только подключ или только подпись на ключе, пользуйтесь командой --edit.

Эта команда просто создает сертификат отзыва, которым можно воспользоваться для отзыва ключа, если это когда-нибудь понадобится. Чтобы по-настоящему отозвать ключ, созданный сертификат отзыва нужно вставить в отзываемый ключ. Это делается посредством импорта сертификата отзыва с помощью команды --import. Затем отозванный ключ нужно опубликовать, лучше всего отправкой на сервер ключей (команда --send-key) и экспортом (--export) в файл, который затем высылается активным корреспондентам.

--generate-designated-revokation имя
--desig-revoke имя

Создать сертификат отзывающего для ключа. Это позволяет пользователю отзывать чужой ключ (после разрешения владельца).

--edit-key

Представить меню для большей части операций, связанных с управлением ключами. Ключ указывается в командной строке.

uid n

Выделить или снять выделение с идентификатора или фотоидентификатора пользователя под номером n. * выделяет все, 0 снимает выделение со всех.

key n

Выделить или снять выделение с подключа под номером n или с идентификатором ключа n. * выделяет все, 0 снимает выделение со всех.

sign

Поставить подпись на заданном ключе. Если ключ еще не подписан основным пользователем (или пользователями, заданными параметром -u), программа снова показывает сведения о ключе вместе с его отпечатком и запрашивает подтверждение подписи. Этот запрос повторяется для всех пользователей, указанных параметром -u.

lsign

То же, что «sign», но подпись помечается как неэкспортируемая, т.е. она никогда не будет учитываться другими людьми. Это можно использовать, чтобы делать ключи достоверными только в локальной среде.

nrsign

То же, что «sign», но подпись помечается как неотзываемая, т.е. ее никогда нельзя будет отозвать.

tsign

Эта подпись сочетает представления о сертификации (как обычная подпись с доверием (как команда «trust»). В целом она полезна только в отдельных сообществах и группах. Подробнее см. разделы «Trust Signature» и «Regular Expression» в RFC-4880.

Обратите внимание, что признаки «l» (локальная / неэкспортируемая), «nr» (неотзываемая) и «t» (подпись доверия) можно свободно сочетать и приставлять к «sign», чтобы получать подписи какого угодно типа.

Если указан параметр --only-sign-text-ids, любые нетекстовые идентификаторы пользователя (напр., фотоидентификаторы) для подписи выбираться не будут.

delsig

Удалить подпись. Обратите внимание, что подпись, которая была опубликована (на сервере ключей), взять назад невозможно. В этом случае лучше воспользуйтесь командой revsig.

revsig

Отозвать подпись. Для каждой подписи, созданной с помощью одного из секретных ключей, GnuPG спрашивает, создавать ли сертификат отзыва.

check

Проверить подписи на всех выделенных идентификаторах пользователя. При дополнительном параметре selfsig показываются только самоподписи.

adduid

Создать дополнительный идентификатор пользователя.

addphoto

Создать фотографический идентификатор пользователя. Будет запрошен файл JPEG, который будет вставлен в идентификатор пользователя. Обратите внимание, что очень большие файлы JPEG сделают размер ключа очень большим. Также заметьте, что некоторые программы показывают ваш JPEG без изменений (GnuPG), а некоторые промасштабируют его, чтобы разместить в диалоговом окне (PGP).

showphoto

Показать выделенный фотографический идентификатор пользователя.

deluid

Удалить идентификатор или фотоидентификатор пользователя. Обратите внимание, что пользовательский идентификатор, который был опубликован (на сервере), взять назад невозможно. Для такого случая лучше подходит revuid.

revuid

Отозвать идентификатор или фотоидентификатор пользователя.

primary

Пометить текущий идентификатор пользователя как первичный. Со всех других идентификаторов этот признак снимается; метки времени всех задействованных самоподписей передвигаются на секунду вперед. Обратите внимание, что назначение первичным фотоидентификатора делает его первичным относительно других фотоидентификаторов, а назначение первичным обычного идентификатора делает его первичным относительно других обычных идентификаторов пользователя.

keyserver

Назначить предпочтительный сервер ключей для указанных идентификаторов пользователя. Это позволяет другим пользователям узнать, откуда вы предпочитаете распространять свой ключ. Подробнее см. --keyserver-options honor-keyserver-url. Установка значения «none» сбрасывает существующий предпочтительный сервер.

notation

Задать замечание «имя=значение» для указанных идентификаторов пользователя. Подробнее см. --cert-notation. Установка значения «none» сбрасывает все замечания, установка замечания с приписанным спереди знаком минус (-) сбрасывает это замечание, установка в виде «-имя» (без «=значение») удаляет все замечания с этим именем.

pref

Перечислить предпочтения у выделенного идентификатора пользователя. Показываются установленные предпочтения (без неявных).

showpref

Более подробное перечисление предпочтений для выделенного идентификатора пользователя. Показывает действующие предпочтения, в том числе неявные предпочтения 3DES (шифр), SHA-1 (хеш) и «не сжимать» (сжатие), когда они не включены в список предпочтений. Кроме того, показываются предпочтительный сервер ключей и замечания подписей (если есть).

setpref

Установить список предпочтений пользователя по строке для всех (или только для выделенных) идентификаторов пользователя. Вызов setpref без аргументов устанавливает исходный список (встроенный или заданный параметром --default-preference-list), а вызов setpref с аргументом «none» устанавливает пустой список предпочтений. Получить список доступных алгоритмов можно командой gpg2 --version. Обратите внимание, что хотя вы можете изменять предпочтения на атрибутном идентификаторе пользователя (называемом также фотоидентификатором), GnuPG не выбирает ключи по атрибутным пользовательским идентификаторам, так что эти предпочтения действовать не будут.

При установке предпочтений нужно перечислять алгоритмы в порядке, в котором вы хотели бы видеть их применяемыми человеком, который шифрует сообщение на ваш ключ. Если вы не укажете 3DES, он будет автоматически добавлен в конец. Обратите внимание, что есть много факторов, влияющих на выбор алгоритма (например, ваш ключ может быть не единственным получателем), так что приложение OpenPGP на другом конце, с помощью которого вам посылают сообщение, может соблюсти, а может и не соблюсти в точности заданный вами порядок для данного сообщения. Однако оно выберет только тот алгоритм, который представлен в списке предпочтений каждого из получателей. См. СОВМЕСТИМОСТЬ С ДРУГИМИ ПРОГРАММАМИ OPENPGP ниже.

addkey

Добавить подключ к данному ключу.

addcardkey

Создать подключ на карте и добавить его к этому ключу.

keytocard

Перенести выделенный секретный подключ (или первичный ключ, если ни одного подключа не выбрано) на электронную карту. Секретный ключ в таблице ключей будет заменен на заглушку, если ключ мог быть успешно перенесен на карту и вы отдали впоследствии команду save. На карту можно перенести только определенные типы ключей. Подменю позволяет выбрать, на какой карте сохранять ключ. Обратите внимание, что получить ключ с карты назад невозможно — если карта выйдет из строя, ваш секретный ключ будет утрачен, если только вы не сохранили где-нибудь резервной копии.

bkuptocard файл

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

delkey

Удалить подключ (вторичный ключ). Обратите внимание, что подключ, который был опубликован (на сервере), взять назад невозможно. Для такого случая лучше подходит revkey. Обратите также внимание, что при этом удаляется только открытая часть ключа.

revkey

Отозвать подключ.

expire

Изменить срок действия ключа или подключа. Если выделен подключ, изменяется срок действия подключа. Если ничего не выделено, изменяется срок действия ключа.

trust

Изменить доверие владельцу ключа. База данных доверия обновляется немедленно, сохранение не требуется.

disable
enable

Отключить или подключить весь ключ. Отключенный ключ обычно нельзя применять для шифрования.

addrevoker

Назначить отзывающего для ключа. Команда принимает необязательный аргумент: «sensitive» (особо важный). Если отзывающий отмечен как «sensitive», по умолчанию он экспортироваться не будет (см. параметр --export-options).

passwd

Изменить фразу-пароль секретного ключа.

toggle

Пустая команда, существует только для обратной совместимости.

clean

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

minimize

Сделать ключ как можно меньше. Удаляет все подписи со всех идентификаторов пользователя, кроме самой последней самоподписи.

cross-certify

Добавить подписи перекрестной сертификации на подписывающие подключи, у которых их в настоящий момент может не быть. Подписи перекрестной сертификации защищают от тонкой уязвимости подписывающих подключей (см. параметр --require-cross-certification). Все новые ключи создаются по умолчанию с этой подписью, так что эта команда полезна только для обновления старых ключей.

save

Сохранить все изменения в таблицах ключей и завершить работу.

quit

Завершить работу программы, не обновляя таблиц ключей.

В списке показаны ключи с их вторичными ключами и всеми идентификаторами пользователя. Первичные идентификаторы пользователя помечены точкой, выбранные идентификаторы пользователя и ключи помечены звездочкой. Значение доверия отображается вместе с первичным ключом: первое — назначенная величина доверия владельцу, второе — вычисленная величина доверия. Символы величин:

- Не назначено / еще не вычислено.
e Сбой при вычислении доверия; вероятно, из-за просроченного ключа.
q Для вычисления не хватает данных.
n Никогда не доверять этому ключу.
m Ограниченное доверие.
f Полное доверие.
u Абсолютное доверие.
--sign-key имя

Подписать открытый ключ вашим секретным ключом. Это сокращенная версия подкоманды «sign» из --edit.

--lsign-key имя

Подписать открытый ключ вашим секретным ключом, но пометить подпись как неэкспортируемую. Это сокращенная версия подкоманды «lsign» из --edit.

--quick-sign-key отп [имена]
--quick-lsign-key отп [имена]

Непосредственно подписать ключ по фразе-паролю без всякого дальнейшего взаимодействия с пользователем. Аргумент отп должен быть проверенным первичным отпечатком ключа из локальной таблицы ключей. Если имена не заданы, подписываются все полезные идентификаторы пользователя; если имена даны, подписываются только соответствующие им полезные идентификаторы. По умолчанию или если перед именем стоит «*», проводится поис подстроки без учета регистра символов. Если перед именем стоит «=», ищется полное соответствие с учетом регистра.

Команда --quick-lsign-key помечает подписи как неэкспортируемые. Если такая неэкспортируемая подпись уже существует, --quick-sign-key обращает ее в экспортируемую.

Команда делает разумные предположения, поэтому не предоставляет всей гибкости подкоманды «sign» --edit-key. Команда предназначена для автоматической подписи ключей по списку проверенных отпечатков.

--quick-add-uid идентификатор пользователя новый идентификатор пользователя

Эта команда добавляет к существующему ключу новый идентификатор пользователя. В отличие от диалоговой подкоманды adduid --edit-key, новый идентификатор пользователя добавляется буквально, удаляются только пробелы из начала и конца строки, предполагается кодировка UTF-8, форма идентификатора не проверяется.

--quick-revoke-uid идентификатор пользователя отзываемый идентификатор пользователя

Эта команда отзывает идентификатор пользователя на существующем ключе с причиной отзыва «Идентификатор больше не действителен». Ее нельзя использовать для отзыва последнего идентификатора пользователя (какой-то идентификатор должен оставаться неотозванным). Если вы хотите указать другую причину отзыва или предоставить дополнительный текст отзыва, нужно воспользоваться интерактивной подкомандой revuid команды --edit-key.

--quick-set-primary-uid идентификатор пользователя новый идентификатор

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

--change-passphase идентификатор пользователя
--passwd идентификатор пользователя

Поменять фразу-пароль секретного ключа, принадлежащего сертификату, указанному как идентификатор пользователя. Это сокращение подкоманды passwd --edit-key.


Следующий: , Пред: , Вверх: Вызов GPG   [Содержание][Указатель]

4.2 Сводка параметров

gpg2 обладает множеством параметров для управления деталями поведения, а также изменения исходных настроек.

Развернутый вариант параметров можно записывать в файл параметров (по умолчанию "~/.gnupg/gpg.conf"). Краткие названия параметров не годятся — например, форма «armor» в файле параметров допустима, а «a» — нет. Пишите просто названия параметров без «–» перед ними. Строки, в которых первым символом-непробелом является знак «#», игнорируются. Команды в этот файл тоже можно записывать, но в этом обычно нет смысла, потому что такая команда будет выполняться автоматически при каждом запуске gpg2.

Помните, что распознавание параметров прекращается, как только встречается непараметр; явным образом прекратить распознавание можно с помощью специального параметра --.


Следующий: , Вверх: Параметры GPG   [Содержание][Указатель]

4.2.1 Изменение настроек

Эти параметры применяются для изменения настроек и обычно находятся в файле параметров.

--default-key имя

Использовать имя как основной ключ для подписи. Если этот параметр не используется, основным ключом является первый ключ, найденный в таблице секретных ключей. Обратите внимание, что этот параметр отменяется параметром -u или --local-user. Этот параметр можно задавать несколько раз. В этом случае будет использован последний из ключей, для которого имеется секретный ключ. Если секретного ключа нет ни для какого из данных ключей, GnuPG не выдаст ошибку, а продолжит, как если бы параметр не был задан.

--default-recipient имя

Использовать имя в качестве получателя, если параметр --recipient не задан, и не спрашивать, правильно ли оно. Аргумент имя не должен быть пуст.

--default-recipient-self

Использовать основной ключ в качестве получателя, если параметр --recipient не задан, и не спрашивать, правильно ли оно. Основной ключ — первый ключ из таблицы секретных ключей или ключ, заданный параметром --default-key.

--no-default-recipient

Сбросить --default-recipient и --default-recipient-self.

-v, --verbose

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

--no-verbose

Сбросить уровень подробности до 0.

-q, --quiet

Стараться выводить на экран как можно меньше.

--batch
--no-batch

Переход в пакетный режим. Ничего не спрашивать, не допускать диалогов. Это отменяется параметром --no-batch. Обратите внимание, что даже если имя файла задано в командной строке, gpg может потребоваться читать из стандартного потока ввода (в частности, если gpg поймет, что на вход поступила отделенная подпись, а файл данных не указан). Таким образом, если вы не хотите передавать данные через стандартный поток ввода, следует подключить его к /dev/null.

Настоятельно рекомендуется пользоваться этим параметром с параметрами --status-fd и --with-colons при любом автоматическом применении gpg.

--no-tty

Не использовать TTY (терминал) ни для какого вывода. Этот параметр в некоторых случаях нужен, потому что GnuPG иногда выводит сообщения в терминал, даже если задан параметр --batch.

--yes

Считать, что ответ на большинство вопросов положителен.

--no

Считать, что ответ на большинство вопросов отрицателен.

--list-options аргументы

Строка с пробелами или запятыми в качестве разделителей, в которой задаются параметры, применяемые при перечислении ключей и подписей (то есть в функциях --list-keys, --list-signatures, --list-public-keys, --list-secret-keys и --edit-key). К параметрам можно спереди (после «–») приписывать no-, чтобы придать им противоположное значение. Вот эти параметры:

show-photos

Показывать в командах --list-keys, --list-signatures, --list-public-keys и --list-secret-keys все фотоидентификаторы, приложенные к ключу. По умолчанию выключено. См. также параметр --photo-viewer. С --with-colons не действует: как правильно передавать фотоданные в другие программы, см. параметр --attribute-fd.

show-usage

Показывать при перечислении ключей их возможности. Возможности обозначаются списком букв, указывающих на функции E=шифрование, S=подпись, C=сертификация, A=проверка подлинности). По умолчанию включено.

show-policy-urls

Показывать URL правил в списках, выводимых --list-signatures и --check-signatures. По умолчанию выключено.

show-notations
show-std-notations
show-user-notations

Показывать все стандартные (IETF) и определенные пользователем замечания в списках, выводимых --list-signatures и --check-signatures. По умолчанию выключено.

show-keyserver-urls

Показывать все URL предпочтительных серверов в списках, выводимых --list-signatures и --check-signatures. По умолчанию выключено.

show-uid-validity

Показывать при перечислении ключей вычисленную достоверность идентификаторов пользователей. По умолчанию включено.

show-unusable-uids

Показывать при перечислении ключей отозванные и просроченные идентификаторы пользователя. По умолчанию выключено.

show-unusable-keys

Показывать при перечислении ключей отозванные и просроченные подключи. По умолчанию выключено.

show-keyring

Выводить имя таблицы ключей в заголовке списка ключей, чтобы показать, в какой таблице ключей находится данный ключ. По умолчанию выключено.

show-sig-expire

Показывать даты истечения срока действия подписей (когда сроки ограничены) в списках, выводимых --list-signatures и --check-signatures. По умолчанию выключено.

show-sig-subpackets

Показывать в списках ключей подпакеты подписей. Этот параметр может сопровождаться необязательным списком подпакетов, которые нужно показывать. Если список не задан, показывать все подпакеты. По умолчанию выключено. Параметр имеет смысл, только когда --with-colons используется с --list-signatures или --check-signatures.

--verify-options аргументы

Список параметров, разделенных запятыми или пробелами. Учитывается при проверке подписей. К параметрам можно спереди приписывать no-, чтобы придать им противоположное значение. Вот эти параметры:

show-photos

Показывать все фотоидентификаторы, сопровождающие ключ, которым создана подпись. По умолчанию выключено. См. также параметр --photo-viewer.

show-policy-urls

Показывать URL правил в проверяемых подписях. По умолчанию выключено.

show-notations
show-std-notations
show-user-notations

Показывать все стандартные (IETF) и определенные пользователем замечания в проверяемых подписях. По умолчанию выводятся стандартные замечания.

show-keyserver-urls

Показывать все URL предпочтительных серверов в проверяемых подписях. По умолчанию включено.

show-uid-validity

Показывать вычисленную достоверность идентификаторов пользователей в ключе, которым сделана подпись. По умолчанию включено.

show-unusable-uids

Показывать отозванные и просроченные идентификаторы пользователя. По умолчанию выключено.

show-primary-uid-only

Показывать во время проверки только первичные идентификаторы пользователя. То есть все строки «или», а также фотоидентификаторы в результатах проверки не показываются.

pka-lookups

Включить поиск по PKA для проверки адресов отправителей. Обратите внимание, что PKA основан на DNS, так что этот параметр может раскрыть информацию о том, когда и какие подписи проверялись, а также для кого шифровались данные. Это сходно с «сетевым проколом», описанным для параметра auto-key-retrieve.

pka-trust-increase

Поднять доверие в подписи до полного, если подпись проходит проверку PKA. Имеет смысл только с параметром pka-lookups.

--enable-large-rsa
--disable-large-rsa

Для команд --generate-key и --batch разрешить создание секретных ключей RSA длиной до 8192 бит. Обратите внимание: 8192 бита ― это больше, чем обычно рекомендуется. Эти длинные ключи не дают значительного усиления защиты, но требуют повышенных расходов, а подписи и сертификаты для них длиннее. Этот параметр доступен, только когда программа собрана с параметром --enable-large-secmem.

--enable-dsa2
--disable-dsa2

Разрешить усечение хеша для всех ключей DSA, даже для старых ключей DSA длиной до 1024 бит. Это вариант по умолчанию для --openpgp. Обратите внимание, что более старые версии GnuPG требовали этого параметра также для создания ключей DSA длиннее 1024 бит.

--photo-viewer строка

Это командная строка, которую следует выполнить для просмотра фотоидентификатора. «%i» заменяется на имя файла с фотографией. «%I» — то же самое, но файл не удаляется после выхода из программы просмотра. Другие обозначения: «%k» означает идентификатор ключа, «%K» — длинный идентификатор ключа, «%f» — отпечаток ключа, «%t» — расширение файла изображения (напр., «jpg»), «%T» — тип MIME изображения (e.g. «image/jpeg»), «%v» — односимвольная достоверность просматриваемого изображения (напр., «f»), «%V» — то же в виде строки (напр., «полное»), «%U» — хеш идентификатора пользователя в кодировке base32, «%%» — знак процента. Если и %i, и %I отсутствуют, фотография передается в программу по стандартному потоку ввода.

Исходная команда просмотра — «xloadimage -fork -quiet -title ’KeyID 0x%k’ STDIN». Обратите внимание, что если ваша программа просмотра изображений не защищена, то запуск ее из GnuPG не делает ее защищенной.

--exec-path строка

Устанавливает список каталогов для поиска программ просмотра фотографий, а также для вспомогательных программ серверов ключей. Если не задан, для вспомогательных программ серверов ключей используется встроенное исходное значение, а поиск программ фотографий просмотра определяется переменной среды $PATH. Обратите внимание, что в системе W32 эта переменная при поиске вспомогательных программ серверов ключей не учитывается.

--keyring файл

Добавить файл в текущий список таблиц ключей. Если аргумент начинается с тильды и косой черты, вместо них подставляется каталог $HOME. Если в имени файла косой черты нет, считается, что он находится в домашнем каталоге GnuPG ("~/.gnupg", если не используется ни --homedir, ни $GNUPGHOME).

Обратите внимание, что параметр добавляет таблицу ключей к текущему списку. Если нужно пользоваться только указанной таблицей, пользуйтесь --keyring вместе с --no-default-keyring.

Если задан параметр --no-keyring, не используются вообще никакие таблицы ключей.

--secret-keyring файл

Это устаревший параметр, он игнорируется. Все секретные ключи хранятся в подкаталоге private-keys-v1.d домашнего каталога GnuPG.

--primary-keyring файл

Назначить файл первичной таблицей открытых ключей. Это значит, что новые ключи, импортируемые командой --import или с сервера ключей командой --recv-from), будут поступать в эту таблицу.

--trustdb-name файл

Использовать файл вместо основной базы данных доверия. Если аргумент начинается с тильды и косой черты, вместо них подставляется каталог $HOME. Если в имени файла косой черты нет, считается, что он находится в домашнем каталоге GnuPG ("~/.gnupg", если не используется ни --homedir, ни $GNUPGHOME).

--homedir каталог

Задать домашний каталог. Если этот параметр не используется, за домашний каталог принимается ~/.gnupg. Параметр учитывается только в командной строке. Он отменяет также любой домашний каталог, указанный в переменной среды GNUPGHOME или (в системах Windows) в пункте реестра HKCU\Software\GNU\GnuPG:HomeDir.

В системах Windows GnuPG можно установить как переносное приложение. В этом случае рассматривается только этот параметр командной строки, все другие способы задания домашнего каталога отключаются.

Для установки GnuPG в качестве переносного приложения под Windows создайте пустой файл под названием gpgconf.ctl в одном каталоге с gpgconf.exe. Тогда верхним каталогом установки будет этот каталог; или, если gpgconf.exe установлен непосредственно в каталоге под названием bin, на один уровень выше. Нужно также проверить, что следующие каталоги существуют и в них разрешена запись: ROOT/home для домашнего каталога GnuPG и ROOT/usr/local/var/cache/gnupg для внутренних буферных файлов.

--display-charset кодировка

Задать кодировку для неанглийских символов. Используется для преобразования некоторых информационных строк, таких как идентификаторы пользователя, в правильную кодировку UTF-8. Обратите внимание, что это никак не связано с кодировкой данных, которые шифруются или подписываются; GnuPG их не перекодирует. Если этот параметр не задан, кодировка определяется по текущим настройкам среды. Выбранная кодировка отображается на уровне подробности 3 (см. параметр --verbose). Допустимые значения кодировки:

iso-8859-1

Латинская кодировка 1

iso-8859-2

Латинская кодировка 2

iso-8859-15

В настоящее время то же, что Латинская кодировка 1

koi8-r

Обычная русская кодировка (RFC-1489).

utf-8

Не преобразовывать; предполагать, что операционная система изначально пользуется кодировкой UTF-8.

--utf8-strings
--no-utf8-strings

Считать, что аргументы командной строки даются в виде строк UTF-8. По умолчанию (--no-utf8-strings) считается, что они закодированы так, как указано параметром --display-charset. Эти параметры влияют на все следующие аргументы. Оба параметра можно вводить несколько раз.

--options файл

Читать параметры из файла файл, не пытаясь считать их из основного файла параметров в домашнем каталоге (см. параметр --homedir). Этот параметр игнорируется, если он встретился в файле параметров.

--no-options

То же, что --options /dev/null. Этот параметр обнаруживается до того, как программа попытается открыть файл параметров. Этот параметр предотвращает также создание домашнего каталога ~/.gnupg.

-z n
--compress-level n
--bzip2-compress-level n

Установить уровень сжатия n для алгоритмов сжатия ZIP и ZLIB. По умолчанию используется исходный уровень сжатия zlib (как правило, 6). --bzip2-compress-level устанавливает уровень сжатия для алгоритма BZIP2 (по умолчанию тоже 6). Уровень сжатия BZIP2 вынесен в отдельный параметр, потому что BZIP2 значительно повышает расход памяти на каждом следующем уровне. -z устанавливает и то, и другое. Значение 0 выключает сжатие.

--bzip2-decompress-lowmem

Распаковывать файлы, сжатые BZIP2, другим методом. Этот метод требует почти вдвое меньше памяти, но и работает в два раза медленнее. Это полезно в условиях жестких ограничений по памяти, когда файл был сжат с высоким --bzip2-compress-level.

--mangle-dos-filenames
--no-mangle-dos-filenames

Старые версии Windows не работают с именами файлов, в которых больше одной точки. Параметр --mangle-dos-filenames заставляет GnuPG заменять (а не приписывать) расширение к имени выходного файла. Этот параметр по умолчанию выключен и не учитывается на платформах, отличных от Windows.

--ask-cert-level
--no-ask-cert-level

Запрашивать уровень сертификации, когда подписывается ключ. Если этот параметр не указан, уровень сертификации определяется параметром --default-cert-level. Подробнее об уровнях сертификации см. --default-cert-level. Выключается параметром --no-ask-cert-level. По умолчанию выключено.

--default-cert-level n

Исходное значение уровня сертификации при подписи ключа.

0 означает, что вы не делаете никакого конкретного заявления о том, насколько тщательно вы проверяли ключ.

1 означает, что вы убеждены, что ключ принадлежит человеку, который заявляет, что он владеет этим ключом, но вы не могли проверить или никак не проверяли ключ. Это полезно для проверки «инкогнито», когда вы подписываете ключ с псевдонимом.

2 означает, что вы провели частичную проверку ключа. Например, это может означать, что вы проверили отпечаток ключа и сверили пользовательский идентификатор на ключе по фотоидентификатору.

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

Обратите внимание, что приведенные выше для уровней 2 и 3 примеры являются только примерами. В конечном счете только вы решаете, что для вас значит «частичная» и «тщательная» проверка.

По умолчанию принимается 0 (никакого конкретного заявления).

--min-cert-level

При построении базы данных доверия считать все подписи ниже указанного уровня сертификации недействительными. По умолчанию 2 (подписи уровня 1 не учитываются). Обратите внимание, что уровень 0 («никакого конкретного заявления») принимаются всегда.

--trusted-key длинный идентификатор ключа

Считать указанный ключ (для которого должен быть задан полный 8-байтный идентификатор) таким же надежным, как один из ваших секретных ключей. Этот параметр полезен, если вы не хотите держать свои секретные ключи в постоянном доступе, но хотите, чтобы была возможность проверять достоверность данного ключа получателя или подписавшего.

--trust-model pgp|classic|tofu|tofu+pgp|direct|always|auto

Установить, какой модели доверия должен следовать GnuPG:

pgp

Сеть доверия, скомбинированная с подписями доверия, как это делается в PGP 5.x и более поздних. Эта модель назначается для новых баз данных доверия по умолчанию.

classic

Стандартная сеть доверия, появившаяся в PGP 2.

tofu

TOFU значит «trust on first use (доверять по первому использованию)». В этой модели ключ, который встречается впервые, запоминается. Если впоследствии другой ключ встречается с идентификатором пользователя с тем же адресом электронной почты, выводится предупреждение о том, что обнаружено противоречие и что ключ может быть подделкой и попыткой атаки «человек посередине».

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

По сравнению с сетью доверия TOFU предлагает значительно более слабые гарантии безопасности. В частности, TOFU помогает только гарантировать непротиворечивость (то есть что адрес электронной почты связан с одним и тем же ключом). Серьезное преимущество TOFU состоит в том, что для правильного пользования требуется минимум трудозатрат. Чтобы правильно пользоваться сетью доверия, нужно активно подписывать ключи и помечать пользователей как доверенные источники ключей. Эти процедуры требуют много времени, и хрестоматийные свидетельства показывают, что даже осведомленные в вопросах безопасности пользователи редко находят время, чтобы выполнять все это скрупулезно, и вместо этого полагаются на возникающие экспромтом процедуры, подобные TOFU.

В модели TOFU правила связаны с привязкой ключей к адресам электронной почты (которые извлекаются из идентификаторов пользователей и нормализуются). Есть пять правил, которые можно установить вручную параметром --tofu-policy. Исходные правила можно установить параметром --tofu-default-policy.

Существуют правила TOFU: auto, good, unknown, bad и ask. По умолчанию применяется правило auto (если это не изменено параметром --tofu-default-policy), оно помечает привязку как ограниченно доверенную. Правила good, unknown и bad помечают привязку уровнями доверия «полное», «неизвестно» и «никогда» соответственно. Правило unknown полезно, чтобы применять TOFU только для проверки противоречий, но никогда не присваивать положительного доверия. По последнему правилу, ask, уровень доверия привязки запрашивается у пользователя. В пакетном режиме (или если контекст не допускает ввода) пользователь не запрашивается, а возвращается уровень доверия не определено.

tofu+pgp

В этой модели TOFU сочетается с сетью доверия. Уровень доверия вычисляется по каждой из моделей, а затем выбирается максимальный в следующем порядке: неизвестно < неопределенно < ограниченно < полностью < абсолютно < просрочен < никогда.

Если установить --tofu-default-policy=unknown, эту модель можно применять для реализации сети доверия с алгоритмом обнаружения противоречий TOFU, но без назначения этим алгоритмом положительных значений доверия, против чего возражали бы некоторые осведомленные в вопросах безопасности пользователи.

direct

Действительность ключа устанавливается пользователем напрямую, а не вычисляется по сети доверия. Эта модель полностью основана на ключе и не различает идентификаторы пользователя. Обратите внимание, что переход на другую модель доверия значения доверия, присвоенные ключу, трансформируются в значения доверия владельцу, что указывает на то, что вы доверяете владельцу ключа подписывать другие ключи.

always

Пропустить оценку достоверности ключей и полагать, что используемые ключи всегда достоверны. Обычно это используется, только когда есть какая-то внешняя схема оценки. Этот параметр подавляет также вывод метки «[не определено]» при проверке ключей, когда нет свидетельств, что идентификатор пользователя привязан к ключу. Обратите внимание, что эта модель доверия все же не допускает применения просроченных, отозванных или выключенных ключей.

auto

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

--auto-key-locate аргументы
--no-auto-key-locate

С помощью этого параметра GnuPG может автоматически обнаруживать и извлекать ключи. Это происходит при шифровании для адреса электронной почты (в форме «user@example.com»), когда в локальной таблице ключей нет ключей user@example.com. В этот параметр можно передать любое количество следующих механизмов в том порядке, в каком они будут применяться:

cert

Искать ключ с помощью DNS CERT, как описано в RFC-4398.

pka

Искать ключ с помощью DNS PKA.

dane

Искать ключ с помощью DANE, как описано в draft-ietf-dane-openpgpkey-05.txt.

wkd

Искать ключ по протоколу сетевого каталога ключей. Это экспериментальный метод, смысл может поменяться.

ldap

С помощью DNS Service Discovery искать в данном домене серверы ключей LDAP. Если не удалось, попытаться обнаружить ключ с помощью Универсального метода проверки PGP ‘ldap://keys.(домен)’.

keyserver

Искать ключи на любом сервере, определенном параметром --keyserver.

keyserver-URL

Кроме того, здесь можно ввести URL сервера ключей, как в параметре --keyserver, чтобы опросить этот конкретный сервер ключей.

local

Искать ключ в локальных таблицах ключей. Этот механизм позволяет пользователю выбрать порядок поиска локальных ключей. Таким образом, ‘--auto-key-locate local’ эквивалентно --no-auto-key-locate.

nodefault

Выключается обычный поиск локальных ключей, который проводится перед попыткой применения любых механизмов, определенных параметром --auto-key-locate. Положение этого механизма не имеет значения. Его можно не задавать, когда используется local.

clear

Сбросить все назначенные механизмы. Это полезно для отмены механизмов, определяемых в файле настроек.

--auto-key-retrieve
--no-auto-key-retrieve

Этот параметр включает автоматическое извлечение ключей с сервера при проверке подписей, сделанных ключами, отсутствующими в локальной таблице ключей.

Если в список методов, передаваемых в auto-key-locate, включается «wkd», идентификатор подписавшего пользователя входит в подпись, а параметр --disable-signer-uid не задан, метод «wkd» также может применяться для получения ключей.

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

--keyid-format none|short|0xshort|long|0xlong

Выбрать формат отображения идентификаторов ключей. «none» вместо идентификатора ключа показывает отпечатк в отдельной строке. «short» — традиционный 8-символьный идентификатор. «long» — более длинный (но менее удобный) 16-символьный идентификатор. «0x» добавляет к каждому «0x» спереди, например, «0x99242560». Обратите внимание, что этот параметр не учитывается, когда введен параметр --with-colons.

--keyserver сервер

Этот параметр не рекомендуется к употреблению — пользуйтесь вместо этого параметром --keyserver в dirmngr.conf.

Использовать сервер в качестве сервера ключей. Это сервер, с которым соединяются --receive-keys, --send-keys и --search-keys, чтобы получать, отправлять, искать ключи. Аргумент сервер представляет URI: «схема:[//]имясервера[:порт]». Схема является типом сервера ключей: «hkp» — серверы ключей HTTP (или совместимые), «ldap» — серверы ключей LDAP, «mailto» — почтовый сервер ключей Graff. Обратите внимание, что в вашей конкретной установке GnuPG могут быть и другие типы серверов ключей. Названия схем нечувствительны к регистру символов. После имени сервера могут идти необязательные параметры настройки. Они задаются как в нижеописанном глобальном параметре --keyserver-options, но применяются к этому конкретному серверу.

Большинство серверов ключей синхронизируются друг с другом, так что обычно нет надобности высылать ключи больше чем на один сервер. Сервер hkp://keys.gnupg.net пользуется циклическим DNS, чтобы выдавать при каждом обращении новый сервер ключей.

--keyserver-options имя=значение

Список параметров, разделенных запятыми или пробелами. Задает параметры для сервера ключей. К параметрам можно спереди приписывать no-, чтобы придать им противоположное значение. Можно использовать аргументы, применимые в import-options или export-options, они будут применяться при импорте (--recv-key) или экспорте (--send-key) ключей на сервере. Хотя для некоторых типов серверов доступны не все параметры, есть несколько общих параметров:

include-revoked

При поиске ключа командой --search-keys не пропускать ключи, помеченные на сервере как отозванные. Обратите внимание, что не все серверы ключей различают отозванные и неотозванные ключи, и для таких серверов этот параметр не имеет смысла. Заметьте также, что большинство серверов ключей не проводит криптографической проверки отзывов ключей, так что без этого параметра могут быть пропущены ключи, неверно помеченные как отозванные.

include-disabled

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

auto-key-retrieve

Устаревший синоним параметра auto-key-retrieve. Не пользуйтесь им: в будущих версиях его удалят.

honor-keyserver-url

При выполнении команды --refresh-keys обновлять ключ с предпочтительного для ключа сервера, если в ключе задан URL этого сервера. Кроме того, если установлен auto-key-retrieve, а у проверяемой подписи есть URL предпочтительного сервера ключей, доставлять ключ с этого предпочтительного сервера. Обратите внимание, что параметр вводит «сетевой прокол»: создатель ключа может видеть, когда обновляется ключ. Таким образом, этот параметр по умолчанию выключен.

honor-pka-record

Если используется --auto-key-retrieve, а подпись проверяется по записи PKA, пользоваться сведениями PKA для доставки ключа. По умолчанию включено.

include-subkeys

При получении ключа перечислить подключи как потенциальные цели. Обратите внимание, что этот параметр не применяется с серверами ключей HKP, поскольку они не поддерживают получение ключей по идентификатору подключа.

timeout

Сообщить вспомогательной программе сервера ключей, какое время (в секундах) нужно пытаться выполнить операцию с сервером ключей перед тем, как отменить ее. Обратите внимание, что при выполнении сразу нескольких действий это значение понимается как задержка на одно действие. Например, если несколько ключей извлекаются командой --receive-keys, задержка применяется отдельно к извлечению каждого ключа, а не к команде --receive-keys в целом. Исходное значение — 30 секунд.

http-proxy=значение

Этот параметр не рекомендуется к употреблению. Установить прокси-сервер для операций с серверами HTTP и HKP. Отменяет любые прокси-серверы, определенные в dirmngr.conf.

verbose

Начиная с GnuPG 2.1, этот параметр не действует. Пользуйтесь вместо него параметрами настройки dirmngr.

debug

Начиная с GnuPG 2.1, этот параметр не действует. Пользуйтесь вместо него параметрами настройки dirmngr.

check-cert

Начиная с GnuPG 2.1, этот параметр не действует. Пользуйтесь вместо него параметрами настройки dirmngr.

ca-cert-file

Начиная с GnuPG 2.1, этот параметр не действует. Пользуйтесь вместо него параметрами настройки dirmngr.

--completes-needed n

Число пользователей с полным доверием, нужное для того, чтобы ввести нового подписывающего ключ пользователя (исходное значение равно 1).

--marginals-needed n

Число пользователей с ограниченным доверием, нужное для того, чтобы ввести нового подписывающего ключ пользователя (исходное значение равно 3).

--tofu-default-policy auto|good|unknown|bad|ask

Исходное правило TOFU (по умолчанию auto). Подробнее о значении параметра см. trust-model-tofu.

--max-cert-depth n

Максимальная глубина цепочки сертификации (исходное значение — 5).

--no-sig-cache

Не сохранять в буфере результат проверки подписей ключа. Буферизация сильно повышает скорость вывода ключей. Однако если вы подозреваете, что ваша таблица открытых ключей не защищена от модификаций, вы можете воспользоваться этим параметром, чтобы отключить буферирование. Вероятно, в этом нет смысла, потому что с доступом на запись к вашей таблице открытых ключей можно наносить всевозможный вред.

--auto-check-trustdb
--no-auto-check-trustdb

Если GnuPG считает, что информацию о сети доверия требуется обновить, внутри программы автоматически выполняется команда --check-trustdb. Это может занимать много времени. Отменяется параметром --no-auto-check-trustdb.

--use-agent
--no-use-agent

Параметр не учитывается. gpg2 всегда требует программы-агента.

--gpg-agent-info

Параметр не учитывается. Он никак не влияет на работу gpg2.

--agent-program файл

Указать программу-агент для операций с секретными ключами. Исходное значение определяется выполнением gpgconf с параметром --list-dirs. Обратите внимание, что символ конвейера («|») применяется для регрессионного тестирования и поэтому не может появляться в имени файла.

--dirmngr-program файл

Указать программу dirmngr, применяемую для доступа к серверу ключей. Исходное значение равно /usr/local/bin/dirmngr.

--no-autostart

Не запускать gpg-agent и dirmngr, когда они еще не запущены, а их функции требуются. Этот параметр полезен главным образом на машинах, где подключение к gpg-agent перенаправляется на другие машины. Если dirmngr требуется на удаленной машине, его можно запускать вручную с помощью gpgconf --launch dirmngr.

--lock-once

Заблокировать базы данных в первый раз, когда требуется блокировка, и не разблокировать до завершения процесса.

--lock-multiple

Снимать блокировку каждый раз, когда она больше не требуется. Применяйте этот параметр для отмены предыдущего --lock-once из файла настроек.

--lock-never

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

--exit-on-status-write-error

Ошибки записи в файловый дескриптор состояния будут приводить к немедленному завершению процесса. В сущности, это должно делаться по умолчанию, но это никогда не удавалось, таким образом, потребовался параметр, чтобы включать это, чтобы изменение не вывело из строя приложения, которые закрывают свой файловый дескриптор состояния, подключенный к каналу, слишком рано. Этот параметр можно использовать с --enable-progress-filter, чтобы штатным образом отменять долговременные операции gpg.

--limit-card-insert-tries n

Если n больше 0, количество запросов на вставку электронной карты ограничивается числом n-1. Таким образом, когда n равно 1, gpg вообще не просит вставить карту, если она не была вставлена с самого начала. Этот параметр полезен в файле настроек, если приложение не знает о поддержке электронных карт и ожидает вставки карты до бесконечности.

--no-random-seed-file

GnuPG пользуется файлом, чтобы сохранять внутренний резерв случайных величин между вызовами. Это ускоряет генерацию случайных чисел, однако иногда операции записи нежелательны. Этот параметр можно применять, чтобы достичь этого ценой замедления генерации случайных чисел.

--no-greeting

Подавить вступительное сообщение об авторских правах.

--no-secmem-warning

Подавить предупреждение о «пользовании небезопасной памятью».

--no-permission-warning

Подавить предупреждение о небезопасных правах доступа к файлам и домашнему каталогу (--homedir). Обратите внимание, что проверка прав доступа, которую выполняет GnuPG, не предназначена для того, чтобы делать серьезные выводы, это просто предупреждение об известных распространенных проблемах с назначением прав. Не предполагайте, что отсутствие предупреждения означает, что ваша система в безопасности.

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

--no-mdc-warning

Подавить предупреждение о недостающей защите целостности кодом обнаружения изменений.

--require-secmem
--no-require-secmem

Отказываться работать, если GnuPG не может получить защищенную память. По умолчанию выключено (т.е работает, но с предупреждением).

--require-cross-certification
--no-require-cross-certification

При проверке подписи, сделанной подключом, гарантировать, что «обратная подпись» перекрестной сертификации ключа имеется и действительна. Это предохраняет от тонкой уязвимости ключей, которыми можно подписывать. Для gpg2 по умолчанию принимается --require-cross-certification.

--expert
--no-expert

Позволять пользователю делать определенные бессмыслицы или глупости, такие как подпись просроченного или отозванного ключа, или определенные потенциально несовместимые вещи, как ключи необычных типов. Параметр отключает также определенные предупреждения о потенциально несовместимых действиях. Как говорит название параметра, он только для экспертов. Если вы не полностью представляете себе последствия того, что он вам позволяет делать, не включайте этот режим. Выключается параметром --no-expert.


Следующий: , Пред: , Вверх: Параметры GPG   [Содержание][Указатель]

4.2.2 Параметры, связанные с ключами

--recipient имя
-r

Шифровать для идентификатора пользователя имя. Если не указан ни этот параметр, ни --hidden-recipient, GnuPG запрашивает идентификатор пользователя, если не задан --default-recipient.

--hidden-recipient имя
-R

Шифровать для идентификатора пользователя имя, но скрыть идентификатор пользователя этого ключа. Этот параметр помогает скрыть получателя сообщения и представляет ограниченную меру противодействия анализу потока данных. Если не указан ни этот параметр, ни --recipient, GnuPG запрашивает идентификатор пользователя, если не задан --default-recipient.

--recipient-file файл
-f

Параметр сходен с параметром --recipient, но шифрование проводится для ключа, хранящегося в заданном файле. Параметр файл должен быть именем файла, содержащего ровно один ключ. gpg2 предполагает, что ключ в этом файле полностью достоверен.

--hidden-recipient-file имя
-F

Параметр сходен с параметром --hidden-recipient, но шифрование проводится для ключа, хранящегося в заданном файле. Параметр файл должен быть именем файла, содержащего ровно один ключ. gpg2 предполагает, что ключ в этом файле полностью достоверен.

--encrypt-to имя

То же, что --recipient, но предназначен для использования в файле параметров и может использоваться с вашим собственным идентификатором пользователя в виде «encrypt-to-self». Эти ключи используются, только когда есть другие получатели, заданные параметром --recipient, или по запросу. Для этих идентификаторов пользователя проверка доверия не производится, и можно использовать даже выключенные ключи.

--hidden-encrypt-to имя

То же, что --hidden-recipient, но предназначен для использования в файле параметров и может использоваться с вашим собственным идентификатором пользователя в виде «encrypt-to-self». Эти ключи используются, только когда есть другие получатели, заданные параметром --recipient, или по запросу. Для этих идентификаторов пользователя проверка доверия не производится, и можно использовать даже выключенные ключи.

--no-encrypt-to

Выключить использование всех ключей, заданных параметрами --encrypt-to и --hidden-encrypt-to.

--group имя=значение

Вводит именованную группу, подобную синонимам в почтовых программах. Каждый раз, когда в качестве получателя указывается имя группы (-r или --recipient), оно будет заменяться на указанные значения. Несколько групп с одним именем автоматически объединяются в одну.

В качестве значений задаются идентификаторы и отпечатки ключей, но принимается любое описание ключа. Обратите внимание, что значение с пробелом внутри воспринимается как два различных значения. Кроме того, группы более высокого порядка (т.е. ссылающиеся на другие группы) не поддерживаются. При наборе в командной строке может потребоваться выделить аргумент этого параметра кавычками, чтобы командный интерпретатор не воспринимал его как несколько аргументов.

--ungroup имя

Удалить данный пункт из списка --group.

--no-groups

Удалить все пункты из списка --group.

--local-user имя
-u

Использовать имя в качестве ключа, которым подписывают. Этим параметром отменяется --default-key.

--sender mbox

У этого параметра два назначения. Параметр mbox должен представлять либо полный идентификатор пользователя с правильным адресом электронной почты, либо просто адрес электронной почты. При создании подписи этот параметр указывает gpg идентификатор пользователя ключа, которым делается подпись, если ключ не был прямо указан с помощью идентификатора пользователя. При проверке подписи параметр используется для ограничения информации, выводимой реализацией TOFU, соответствующими пользоавтельскими идентификаторами.

--try-secret-key имя

Для скрытых получателей нужно знать ключи для пробной дешифровки. Первым всегда проверяется ключ, установленный параметром --default-key, но часто этого не достаточно. Этот параметр позволяет указать другие ключи для пробной дешифровки. Хотя в качестве аргумента можно передавать любое допустимое указание на идентификатор пользователя, во избежание неоднозначностей имеет смысл пользоваться по меньшей мере длинным идентификатором. Обратите внимание, что при пробной дешифровке gpg-agent может вызывать программу ввода пароля для большого количества ключей. Если вы хотите прекратить всякую дальнейшую пробную дешифровку, вместо кнопки «отмена» можно нажать кнопку, закрывающую окно.

--try-all-secrets

Не обращать внимания на идентификаторы ключей, сохраненные в сообщении, а пробовать дешифровать всеми секретными ключами по очереди, чтобы найти нужный. Этот параметр переводит в режим, применяемый анонимными получателями (созданными --throw-keyids или --hidden-recipient) и может быть удобно в случае, когда зашифрованное сообщение содержит несуразный идентификатор ключа.

--skip-hidden-recipients
--no-skip-hidden-recipients

Во время расшифровки пропускать всех анонимных получателей. Этот параметр помогает в случае, когда люди пользуются скрытыми получателями, чтобы скрыть собственный ключ --encrypt-to от других. Если у отправителя много секретных ключей, это может привести к серьезным неудобствам, потому что все ключи будут перебираться, чтобы расшифровать то, что в действительности ни для одного из них не предназначено. Недостаток этого параметра состоит в том, что в настоящее время невозможно расшифровать сообщение, которое содержит настоящих анонимных получателей.


Следующий: , Пред: , Вверх: Параметры GPG   [Содержание][Указатель]

4.2.3 Ввод и вывод

--armor
-a

Выводить в виде текста ASCII. По умолчанию вывод производится в двоичном формате OpenPGP.

--no-armor

Считать, что данные на входе поступают не в текстовом формате ASCII.

--output файл
-o файл

Записать вывод в файл. Для записи в стандартный поток вывода укажите в качестве параметра -.

--max-output n

Параметр назначает предельное количество байт, которые будут созданы при обработке файла. Поскольку OpenPGP поддерживает разные уровни сжатия, может оказаться, что открытый текст данного сообщения будет существенно больше, чем поступившее на вход сообщение OpenPGP. Хотя GnuPG работает с такими сообщениями правильно, часто желательно установить максимальный размер файла, который будет создан, прежде чем обработка будет приостановлена из-за ограничений, действующих в операционной системе. Исходное значение равно 0, что означает отсутствие ограничений.

--input-size-hint n

Этим параметром можно воспользоваться, чтобы указать gpg размер входных данных в байтах. n должно быть положительным десятичным числом. Этот параметр полезен, только когда входные данные берутся не из файла. gpg пользуется этим указанием, чтобы оптимизировать свою стратегию размещения буфера. Оно используется также в строке «PROGRESS», чтобы получить значение «всего», недоступное другими средствами.

--import-options параметры

Список параметров, разделенных запятыми или пробелами. Задает параметры для сервера ключей. К параметрам можно спереди приписывать no-, чтобы придать им противоположное значение. Вот эти параметры:

import-local-sigs

Разрешить импортировать подписи ключей, помеченные как «локальные». В целом это полезно только при пользовании той или иной схемой обмена таблицами ключей. По умолчанию выключено.

keep-ownertrust

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

repair-pks-subkey-bug

Во время импорта пытаться устранить повреждения, вызванные ошибкой в сервере ключей PKS (до версии 0.9.6), из-за которой повреждаются ключи с несколькими подключами. Обратите внимание, что полностью восстановить ключ таким образом не удается, потому что некоторые важные данные удаляются на сервере ключей, но вам остается хотя бы один подключ. По умолчанию выключено для обычной команды --import и включено для получения ключей с сервера командой --receive-keys.

import-show

Показать содержимое ключа в том виде, в каком он импортирован, непосредственно перед сохранением. Это можно сочетать с параметром --dry-run, чтобы просто просматривать ключи.

import-export

Полностью выполнить программу импорта, но вместо сохранения ключа в локальной таблице ключей записать его в выходной файл. Параметры экспорта export-pka и export-dane влияют на выводимые данные. Этим параметром можно пользоваться для удаления всех недействительных частей ключа без его сохранения.

merge-only

Во время импорта допускать обновление существующих ключей, но не добавлять никаких новых ключей. По умолчанию выключено.

import-clean

После импорта ужать (удалить все подписи, кроме самоподписи) все идентификаторы пользователя из нового ключа, которые непригодны для пользования. Сюда входят подписи, сделанные ключами, отсутствующими в таблице ключей. Это эквивалентно выполнению после импорта команды «clean» из меню --edit-key. По умолчанию выключено.

repair-keys.

Устранять различные проблемы с ключами после импорта. Например, пересортируются подписи, удаляются дублированные подписи. По умолчанию включено.

import-minimal

Импортировать минимально возможный ключ. Удаляет все подписи, кроме последней самоподписи, со всех идентификаторов пользователя. Это эквивалентно выполнению после импорта команды «minimize» из меню --edit-key. По умолчанию выключено.

restore
import-restore

Импортировать ключ в режиме восстановления. Импортируются все данные, которые обычно пропускаются при импорте, в том числе все данные, специфические для GnuPG. Отменяет все параметры, которые противоречат этому.

--import-filter имя=выражение
--export-filter имя=выражение

Эти параметры определяют фильтры импорта и экспорта, которые применяются к блокам ключей непосредственно перед записью или выводом. имя определяет тип фильтра, выражение представляет выражение для оценки. Параметр можно задавать несколько раз, при этом выражения добавляются к одному и тому же имени.

Доступны типы фильтров:

keep-uid

Фильтр сохраняет пакет с идентификатором пользователя и зависимые от него пакеты в блоке ключа, если выражение истинно.

drop-subkey

Фильтр опускает выбранные подключи. В настоящее время реализовано только для --export-filter.

drop-sig

Фильтр опускает выбранные подписи идентификаторов пользователя. Самоподписи не опускаются. В настоящее время реализовано только для --import-filter.

Синтаксис выражений см. в главе «ВЫРАЖЕНИЯ ДЛЯ ФИЛЬТРОВ». Имена свойств в выражениях зависят от типа фильтра и указаны в следующей таблице.

Доступны свойства:

uid

Строка с идентификатором пользователя. (keep-uid)

mbox

Часть идентификатора пользователя, указывающая адрес электронной почты, или пустая строка. (keep-uid)

key_algo

Номер алгоритма открытого ключа в пакете ключа или подключа. (drop-subkey)

key_created
key_created_d

Первый — временная метка создания открытого ключа или подключа. Второй — то же, но заданное в виде строки ИСО, напр. «2016-08-17». (drop-subkey)

primary

Логическая величина, показывающая, является ли идентификатор пользователя первичным. (keep-uid)

expired

Логическая величина, показывающая, истек ли срок действия идентификатора пользователя (keep-uid), ключа (drop-subkey) или подписи (drop-sig).

revoked

Логическая величина, показывающая, отозван ли идентификатор пользователя (keep-uid), ключ (drop-subkey) или подпись (drop-sig).

disabled

Логическая величина, показывающая, отключен ли первичный ключ. (не используется)

secret

Логическая величина, показывающая, является ли ключ или подключ секретным. (drop-subkey)

key_created
key_created_d

Первый — временная метка создания пакета подписи. Второй — то же, но заданное в виде строки даты ИСО, напр. «2016-08-17». (drop-sig)

sig_algo

Номер алгоритма открытого ключа в пакете подписи. (drop-sig)

sig_digest_algo

Номер алгоритма хеша в пакете подписи. (drop-sig)

--export-options параметры

Это строка с пробелом или запятой в качестве разделителя, которая задает параметры экспорта ключей. К параметрам можно приписывать спереди «no-», чтобы придать им противоположное значение. Вот эти параметры:

export-local-sigs

Разрешить экспортировать подписи ключей, помеченные как «локальные». В целом это полезно только при пользовании той или иной схемой обмена таблицами ключей. По умолчанию выключено.

export-attributes

Включать в экспорт атрибутные идентификаторы пользователя (фотоидентификаторы). Это полезно при экспорте ключей для последующего применения с программой OpenPGP, которая не допускает атрибутных идентификаторов пользователя. По умолчанию включено.

export-sensitive-revkeys

Включать в экспорт информацию об отзывающих, помеченную как «особо важная». По умолчанию выключено.

backup
export-backup

Экспортировать в целях резервного копирования. Экспортирует все данные, необходимые для последующего восстановления ключа или ключей в GnuPG. Отменяет все параметры, которые противоречат этому.

export-clean

Ужать в экспортированном ключе идентификаторы пользователя (удалить с них все подписи), непригодные для пользования. Кроме того, не экспортировать непригодные для пользования подписи. Сюда входят подписи, сделанные ключами, отсутствующими в таблице ключей. Это эквивалентно выполнению перед экспортом команды «clean» из меню --edit-key, но локальная копия ключа не изменяется. По умолчанию выключено.

export-minimal

Экспортировать минимально возможный ключ. Удаляет все подписи, кроме последней самоподписи, со всех идентификаторов пользователя. Это эквивалентно выполнению перед экспортом команды «minimize» из меню --edit-key, но локальная копия ключа не изменяется. По умолчанию выключено.

export-pka

Вместо вывода материала ключей выводить в списках записи PKA, пригодные для размещения в файлах зон DNS. Перед каждой записью выводится строка ORIGIN, чтобы можно было переводить записи в файлы соответствующих зон.

export-dane

Вместо вывода материала ключей выводить в списках записи OpenPGP DANE, пригодные для размещения в файлах зон DNS. Перед каждой записью выводится строка ORIGIN, чтобы можно было переводить записи в файлы соответствующих зон.

--with-colons

Вывести списки ключей, разделенные двоеточием. Обратите внимание, что вывод будет в кодировке UTF-8 независимо от любых установок --display-charset. Этот формат полезен, когда GnuPG вызывается из других программ, поскольку его легко обрабатывать автоматически. Подробности формата документированы в файле doc/DETAILS дистрибутива исходных текстов GnuPG.

--fixed-list-mode

Не комбинировать первичный идентификатор пользователя с первичным ключом в режиме --with-colon; выводить даты в виде секунд с начала 1 января 1970 года. Начиная с GnuPG 2.0.10, этот режим используется всегда, таким образом, этот параметр устарел; хотя его использование никак не вредит.

--legacy-list-mode

Вернуться к режиму вывода списка открытых ключей, принятому до версий 2.1. Это влияет только на вывод, предназначенный для человека, но на не машинный формат (т.е. --with-colons). Обратите внимание, что старый формат не отображает адекватно сведения для ключей на базе эллиптических кривых.

--with-fingerprint

То же, что команда --fingerprint, но только изменяет формат данных на выходе и может применяться с другой командой.

--with-subkey-fingerprint

Если выводится отпечаток первичного ключа, этот параметр приводит к выводу отпечатков всех подключей. Этого можно также достичь, дважды задав параметр --with-fingerprint, но если пользоваться этим параметром с --keyid-format «none», выводится компактный отпечаток.

--with-icao-spelling

Выводить отпечаток фонетическим алфавитом ИКАО в дополнение к шестнадцатеричным цифрам.

--with-keygrip

Выводить в списках коды ключей. В режиме --with-colons это неявным образом включает секретные ключи.

--with-wkd-hash

Выводить в списках ключей идентификатор сетевого каталога ключей вместе с каждым идентификатором пользователя. Это экспериментальная функция, смысл может поменяться.

--with-secret

Выводить сведения о присутствии секретного ключа в списках открытых ключей, производимых --with-colons.


Следующий: , Пред: , Вверх: Параметры GPG   [Содержание][Указатель]

4.2.4 Параметры, относящиеся к протоколу OpenPGP

-t, --textmode
--no-textmode

Считать входные файлы текстовыми и сохранять их в канонической текстовой форме OpenPGP с завершением строки вида «CR+LF». Параметр устанавливает также признаки, необходимые для уведомления получателя о том, что зашифрованные или подписанные данные представляют текст и могут нуждаться в преобразовании концов строк к виду, принятому в локальной операционной системе. Параметр полезен при связи между двумя платформами с различными соглашениями о конце строки (между системы типа Unix и Mac, Mac и Windows и т.д.). Параметр --no-textmode выключает этот режим и принимается по умолчанию.

--force-v3-sigs
--no-force-v3-sigs
--force-v4-certs
--no-force-v4-certs

Эти параметры устарели и не учитываются начиная с GnuPG 2.1.

--force-mdc

Принудительно использовать шифрование с кодом обнаружения изменений. Он используется всегда, когда применяются новые симметричные шифры (размер блока которых превосходит 64 бита) и когда в признаках ключей получателей присутствует поддержка кода обнаружения изменений.

--disable-mdc

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

--disable-signer-uid

В исходном состоянии идентификатор пользователя подписавшего ключа записывается в массив данных подписи. На настоящий момент это производится, только если подписавший ключ указан в local-user с помощью адреса электронной почты. Эта информация может быть полезна проверяющему для получения ключа; см. параметр --auto-key-retrieve.

--personal-cipher-preferences строка

Задать список личных предпочтений для симметричных шифров. Список доступных алгоритмов можно получить командой gpg2 --version, строка none сбрасывает предпочтения. Это позволяет пользователю безопасно отменить алгоритм, выбранный в предпочтениях ключа получателя, поскольку GPG выбирает только алгоритмы, которыми могут пользоваться все получатели. Первый шифр из этого списка будет применяться также в команде шифрования --symmetric.

--personal-digest-preferences строка

Задать список личных предпочтений для алгоритмов хеша. Список доступных алгоритмов можно получить командой gpg2 --version, строка none сбрасывает предпочтения. Это позволяет пользователю безопасно отменить алгоритм, выбранный в предпочтениях ключа получателя, поскольку GPG выбирает только алгоритмы, которыми могут пользоваться все получатели. Первый алгоритм из этого списка будет применяться также при подписи без шифрования (напр., --clearsign или --sign).

--personal-compress-preferences строка

Задать список личных предпочтений для алгоритмов сжатия данных. Список доступных алгоритмов можно получить командой gpg2 --version, строка none сбрасывает предпочтения. Это позволяет пользователю безопасно отменить алгоритм, выбранный в предпочтениях ключа получателя, поскольку GPG выбирает только алгоритмы, которыми могут пользоваться все получатели. Первый алгоритм из этого списка будет применяться также, когда нет ключей получателя, которые нужно было бы учитывать (напр., --symmetric.

--s2k-cipher-algo название

Применять заданный алгоритм симметричного шифрования с паролем, если не заданы --personal-cipher-preferences и --cipher-algo. Исходное значение равно AES-128.

--s2k-digest-algo название

Применять заданный алгоритм хеша для преобразования фраз-паролей при симметричном шифровании. Исходное значение равно SHA-1.

--s2k-mode n

Определяет, как преобразуются фразы-пароли при симметричном шифровании. Если аргумент равен 0, фраза-пароль используется без изменений (что в общем и целом не рекомендуется), 1 добавляет к фразе-паролю модификатор (что не следует использовать), 3 (исходное значение) повторяет весь процесс --s2k-count раз.

--s2k-count n

Указывает, сколько циклов преобразования проходят фразы-пароли для симметричного шифрования. Аргумент может принимать значения от 1024 до 65011712 включительно. Исходное значение поступает из gpg-agent. Обратите внимание, что не все значения из диапазона 1024-65011712 допустимы; если выбрано недопустимое значение, GnuPG округляет его вверх до ближайшего допустимого. Параметр имеет смысл, только когда значение --s2k-mode равно исходному (3).


Следующий: , Пред: , Вверх: Параметры GPG   [Содержание][Указатель]

4.2.5 Параметры совместимости

Эти параметры определяют, с чем совместим GnuPG. В каждый момент может действовать только один из этих параметров. Обратите внимание, что исходное значение этого параметра почти всегда правильно. См. СОВМЕСТИМОСТЬ С ДРУГИМИ ПРОГРАММАМИ OPENPGP ниже.

--gnupg

Обычный для GnuPG режим. В основном то же, что --openpgp, но с некоторыми дополнительными обходами распространенных проблем совместимости с различными версиями PGP. Это исходный режим, так что в общем параметр не нужен, но может быть полезен для отмены других параметров совместимости в файле gpg.conf.

--openpgp

Установить все параметры пакетов, шифров и хешей в строгом соответствии с OpenPGP. Сбрасывает все предыдущие параметры настройки, такие как --s2k-*, --cipher-algo, --digest-algo и --compress-algo в значения, совместимые с OpenPGP. Все обходы проблем PGP выключаются.

--rfc4880

Установить все параметры пакетов, шифров и хешей в строгом соответствии с RFC-4880. В настоящее время то же самое, что --openpgp.

--rfc4880bis

Включить экспериментальные функции из предлагаемых обновлений RFC-4880. Этим параметром можно пользоваться в дополнение к другим параметрам совместимости. Предупреждение: поведение может измениться в любом выпуске GnuPG, а созданные ключи или данные могут быть непригодными к пользованию с будущими версиями GnuPG.

--rfc2440

Установить все параметры пакетов, шифров и хешей в строгом соответствии с RFC-2440.

--pgp6

Сделать все параметры как можно более совместимыми с PGP 6. Это ограничивает вас симметричными шифрами IDEA (если установлен модуль IDEA), 3DES и CAST5, хешами MD5, SHA1 и RIPEMD160, сжатием ZIP (либо без сжатия). Этим также отключается --throw-keyids и создание подписей с помощью подписывающих подключей, поскольку PGP 6 не воспринимает подписи, сделанные подключами для подписей.

Этот параметр неявно включает --disable-mdc --escape-from-lines.

--pgp7

Сделать все параметры как можно более совместимыми с PGP 7. То же, что --pgp6, но коды контроля изменений не отключаются, а список симметричных шифров дополняется шифрами AES128, AES192, AES256 и TWOFISH.

--pgp8

Сделать все параметры как можно более совместимыми с PGP 8. PGP 8 гораздо ближе к стандарту OpenPGP, чем предыдущие версии PGP, так что параметр только выключает --throw-keyids и устанавливает --escape-from-lines. Допустимы все алгоритмы, кроме хешей SHA224, SHA384 и SHA512.

--compliance строка

Этот параметр можно применять вместо одного из параметров, указанных выше. Допустимыми значениями аргумента являются перечисленные выше параметры (без двойного дефиса) и, возможно, другие, список которых выводится, если задать в качестве аргумента «help».


Следующий: , Пред: , Вверх: Параметры GPG   [Содержание][Указатель]

4.2.6 То, чего обычно делать не нужно

-n
--dry-run

Не вносить никаких изменений (реализовано не полностью).

--list-only

Изменяет работу некоторых команд. То же, что --dry-run, но не всегда. Смысл этого параметра в будущем может расшириться. В настоящее время он только пропускает саму расшифровку и таким образом позволяет быстро просматривать ключи в зашифрованном сообщении.

-i
--interactive

Спрашивать перед записью поверх любых файлов.

--debug-level уровень

Выбрать уровень отладки для исследования проблем. Аргумент может быть числом либо ключевым словом:

none

Никакой отладки. Эквивалентно числам, меньшим 1.

basic

Простейшие отладочные сообщения. Эквивалентно числам между 1 и 2.

advanced

Более подробные отладочные сообщения. Эквивалентно числам между 3 и 5.

expert

Еще более подробные отладочные сообщения. Эквивалентно числам между 6 и 8.

guru

Все отладочные сообщения, какие только есть. Эквивалентно числам, большим 8. Файлы отслеживания хешей создаются, только если используется это ключевое слово.

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

--debug признаки

Установить отладочные признаки. Все признаки объединяются по ИЛИ; признаки можно задавать в записи Си (напр., 0x0042) или в виде списка разделенных запятой названий признаков. Список всех поддерживаемых признаков можно получить, введя в качестве аргумента «help».

--debug-all

Установить все полезные отладочные признаки.

--debug-iolbf

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

--faked-system-time момент

Этот параметр полезен только для тестирования; он переводит системное время к моменту, заданному аргументом в виде количества секунд с начала 1970 года. Время можно задавать также в виде полной строки времени ИСО (напр., «20070924T154812»).

Если в конце аргумента стоит восклицательный знак, системное время будет заморожено на указанном моменте.

--enable-progress-filter

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

--status-fd n

Записывать специальные диагностические сообщения в файл с указанным дескриптором. Документацию по этим строкам см. в файле DETAILS.

--status-file файл

То же, что --status-fd, но диагностические сообщения пишутся в файл.

--logger-fd n

Писать отчет о ходе работы в файл с указанным дескриптором, а не стандартный поток ошибок.

--log-file файл
--logger-file файл

То же, что --logger-fd, но данные о ходе работы пишутся в файл. Укажите socket://, если нужно протоколировать в сокет.

--attribute-fd n

Записывать подпакеты атрибутов в файловый дескриптор n. Это полезнее всего при использовании с --status-fd, поскольку сообщения о состоянии нужно отделять от различных подпакетов из потока, который выводится в файловый дескриптор.

--attribute-file файл

То же, что --attribute-fd, но данные атрибутов пишутся в файл.

--comment строка
--no-comments

Использовать аргумент в качестве строки примечания к текстовым подписям и сообщениям или ключам в текстовом формате ASCII. По умолчанию примечаний нет. Параметр --comment можно повторять, чтобы получить несколько строк с примечаниями. Параметр --no-comments сбрасывает все примечания. Рекомендуется ограничивать длину одного примечания 60 символами, чтобы избежать проблем, связанных с разбиением длинных строк почтовыми программами. Обратите внимание, что строки примечаний, как и другие строки заголовка, подписью не защищаются.

--emit-version
--no-emit-version

Принудительно добавлять строку с версией в текстовом формате ASCII. Если параметр дан один раз, выводится только название программы и старший номер версии, если дважды, выводится также младший номер, если трижды, добавляется номер микроверсии, четырежды — выводится также идентификатор операционной системы. Параметр --no-emit-version (исходное значение) отключает строку версии.

--sig-notation имя=значение
--cert-notation имя=значение
-N, --set-notation имя=значение

Разместить пару «имя—значение» в подписи в качестве замечания. имя должно состоять только из неслужебных символов или пробелов и должно содержать символ «@» в записи имя-ключа@domain.example.com (конечно, с подходящим именем ключа и доменом) с целью предотвратить засорение зарезервированного пространства имен замечаний IETF. Параметр --expert отменяет проверку «@». значение может быть любой строкой неслужебных символов; он будет перекодирован в UTF-8, так что нужно проверить, что параметр --display-charset задан верно. Если к аргументу имя приписать спереди восклицательный знак («!»), данные замечания будут помечены как критичные (rfc4880:5.2.3.16). Параметр --sig-notation устанавливает замечание для подписей данных. Параметр --cert-notation устанавливает замечание для подписей ключей (сертификаций). Параметр --set-notation устанавливает и то, и другое.

В именах замечаний можно использовать особые коды. «%k» заменяется на идентификатор подписываемого ключа, «%K» — на длинный идентификатор подписываемого ключа, «%f» — на отпечаток подписываемого ключа, «%s» — на идентификатор подписывающего ключа, «%S» — на длинный идентификатор подписывающего ключа, «%g» — на отпечаток подписывающего ключа (который может быть и подключом), «%p» — на отпечаток первичного ключа для подписывающего ключа, «%c» — на счетчик подписей из электронной карты OpenPGP, а «%%» переходит в один символ «%». «%k», «%K» и «%f» имеют смысл только при подписи ключей (сертификации), а «%c» имеет смысл только при пользовании электронной картой OpenPGP.

--sig-policy-url строка
--cert-policy-url строка
--set-policy-url строка

Использовать аргумент в качестве URL правил для подписей (rfc4880:5.2.3.20). Если спереди приписать восклицательный знак («!»), пакет с URL правил будет помечен как критичный. Параметр --sig-policy-url устанавливает URL правил для подписей данных. Параметр --cert-policy-url устанавливает URL правил для подписей ключей (сертификации). Параметр --set-policy-url устанавливает и то, и другое.

Здесь можно использовать те же специальные коды со знаками «%», что и для замечаний.

--sig-keyserver-url строка

Использовать аргумент строка в качестве URL предпочтительного сервера ключей для подписей данных. Если спереди приписать восклицательный знак («!»), пакет с URL сервера ключей будет помечен как критичный.

Здесь можно использовать те же специальные коды со знаками «%», что и для замечаний.

--set-filename строка

Использовать аргумент строка в качестве имени файла, которое сохраняется внутри сообщений. Это отменяет исходное значение (настоящее имя файла, который зашифровывается). Пустое значение аргумента фактически удаляет имя файла из данных на выходе.

--for-your-eyes-only
--no-for-your-eyes-only

Установить в сообщении признак «только между нами». GnuPG будет отказываться сохранять файл, если не задан параметр --output, а PGP будет использовать для вывода сообщения «защищенную программу просмотра» с заявленным стойким к перехвату излучений шрифтом. Этот параметр отменяет --set-filename. Отменяется параметром --no-for-your-eyes-only.

--use-embedded-filename
--no-use-embedded-filename

Пытаться создать файл с именем, указанным в данных. Это может быть опасно, поскольку позволяет перезаписывать файлы. По умолчанию выключено.

--cipher-algo название

Применять указанный алгоритм симметричного шифрования. Запуск программы с командой --version выдает список доступных алгоритмов. Если параметр не задан, алгоритм выбирается из предпочтений, записанных в ключе. Обычно этим параметром пользоваться не нужно, поскольку он позволяет нарушать стандарт OpenPGP. Параметр --personal-cipher-preferences позволяет добиться того же безопасным образом.

--digest-algo название

Применять указанный алгоритм хеша. Запуск программы с командой --version выдает список доступных алгоритмов. Обычно этим параметром пользоваться не нужно, поскольку он позволяет нарушать стандарт OpenPGP. Параметр --personal-digest-preferences позволяет добиться того же безопасным образом.

--compress-algo название

Применять указанный алгоритм сжатия данных. «zlib» представляет алгоритм ZLIB RFC-1950. «zip» представляет алгоритм ZIP RFC-1951, применяемый в PGP. «bzip2» представляет более современный алгоритм сжатия, который сжимает некоторые данные лучше, чем zip и zlib, ценой большего расхода памяти во время сжатия и восстановления данных. «uncompressed» или «none» выключает сжатие. Если параметр не задан, анализируются предпочтения ключа получателя и выбирается алгоритм, который поддерживается получателем. Если ничто из этого не удается, для наибольшей совместимости выбирается ZIP.

ZLIB может давать лучшие результаты, чем ZIP, поскольку окно сжатия не ограничено размером 8к. BZIP2 может давать еще лучшие результаты, но он требует значительно больше памяти во время сжатия и восстановления данных. Это может быть важно, когда память ограничена. Однако заметьте, что PGP (все версии) поддерживает только ZIP. Сообщение, сжатое по любому алгоритму, кроме ZIP и «none», невозможно прочесть с помощью PGP. Обычно вам не нужно пользоваться этим параметром, поскольку он позволяет нарушать стандарт OpenPGP. Параметр --personal-compress-preferences позволяет добиться того же безопасным образом.

--cert-digest-algo название

Применять указанный алгоритм хеша при подписи ключей. Запуск программы с командой --version выдает список доступных алгоритмов. Имейте в виду, что если выбран алгоритм, который GnuPG поддерживает, а другие реализации OpenPGP — нет, то некоторые пользователи не смогут пользоваться подписями, которые вы делаете, а вполне возможно, и всем вашим ключом.

--disable-cipher-algo название

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

--disable-pubkey-algo название

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

--throw-keyids
--no-throw-keyids

Не помещать идентификаторы ключей получателей в зашифрованные сообщения. Это помогает скрыть получателей сообщения и представляет ограниченную меру противодействия анализа потока данных2. На приемном конце это может замедлить процесс расшифровки, поскольку нужно перебирать все доступные секретные ключи. Этот параметр отменяется параметром --no-throw-keyids. Этот параметр по существу эквивалентен применению параметра --hidden-recipient для всех получателей.

--not-dash-escaped

Этот параметр изменяет вывод текстовых подписей (см. команда --clearsign) так, чтобы их можно было применять в файлах изменений (в таких подписях изменяются строки, начинающиеся с «-», так что текст становится непригодным для программы patch). Такие файлы не следует посылать по электронной почте, потому что подпись относится и ко всем пробелам и переводам строки. Этот параметр нельзя применять, когда в файле есть строки, начинающиеся с 5 знаков «-»; в файлах изменений таких строк не бывает. Особая строка текстового заголовка объявляет GnuPG об этом параметре текстовой подписи.

--escape-from-lines
--no-escape-from-lines

Поскольку некоторые почтовые программы изменяют «From » в начале строк на «>From », при создании текстовых подписей (см. команда --clearsign) неплохо обрабатывать такие строки особым образом, чтобы система почты не портила подпись. Обратите внимание, что все другие версии PGP поступают точно так же. По умолчанию включено. Выключается параметром --no-escape-from-lines.

--passphrase-repeat n

Определить, сколько раз gpg2 запрашивает повтор новой фразы-пароля. Полезно для запоминания фразы-пароля. Исходное значение равно 1.

--passphrase-fd n

Читать фразу-пароль из файлового дескриптора n. Из файлового дескриптора n будет читаться только первая строка. Если задать 0, фраза-пароль будет считываться из стандартного потока ввода. Параметр можно использовать, только если вводится одна фраза-пароль.

Обратите внимание, что эта фраза-пароль будет использована, только если задан параметр --batch. В GnuPG версий 1.x это не так.

--passphrase-file файл

Читать фразу-пароль из указанного файла. Из файла файл будет читаться только первая строка. Параметр можно использовать, только если вводится одна фраза-пароль. Очевидно, что защищенность фразы-пароля, которая хранится в файле, сомнительна, если этот файл могут читать другие пользователи. Не пользуйтесь этим параметром, если можете избежать этого. Обратите внимание, что эта фраза-пароль будет использована, только если задан параметр --batch. В GnuPG версий 1.x это не так.

--passphrase строка

Использовать аргумент в качестве фразы-пароля. Параметр можно использовать, только если вводится одна фраза-пароль. Очевидно, что защищенность этого метода в многопользовательской системе весьма сомнительна. Не пользуйтесь этим параметром, если можете избежать этого. Обратите внимание, что эта фраза-пароль будет использована, только если задан параметр --batch. В GnuPG версий 1.x это не так.

--pinentry-mode режим

Установить режим программы ввода пароля. Допустимые значения аргумента:

default

Пользоваться исходным режимом, т.е. ask.

ask

Принудительно пользоваться программой ввода пароля.

cancel

Имитировать нажатие клавиши «отмена» программы ввода пароля.

error

Возвращать ошибку программы ввода пароля («программа ввода пароля отсутствует»).

loopback

Перенаправлять запросы программы ввода пароля на вызывающего. Обратите внимание, что в отличие от программы ввода пароля, запрос ввода пароля не повторяется, если пользователь ввел неверный пароль.

--command-fd n

Это замена не рекомендованного режима взаимодействия между процессами через общую память. Если задан этот параметр, ввод пользователя в ответ на запросы ожидается не с терминала, а из указанного файлового дескриптора. Параметром следует пользоваться вместе с --status-fd. Подробности см. в файле doc/DETAILS из дистрибутива исходных текстов.

--command-file файл

То же, что --command-fd, но команды читаются из указанного файла.

--allow-non-selfsigned-uid
--no-allow-non-selfsigned-uid

Разрешить импорт и применение ключей с идентификаторами пользователя, у которых нет самоподписи. Это не рекомендуется, поскольку такие идентификаторы элементарно подделываются. Отключается параметром --no-allow-non-selfsigned-uid.

--allow-freeform-uid

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

--ignore-time-conflict

Обычно GnuPG проверяет, что метки времени, связанные с ключами и подписями, лежат в разумных пределах. Однако иногда подпись кажется старше ключа из-за проблем с часами. Если задан этот параметр, такие проверки приводят только к предупреждениям. См. также --ignore-valid-from о проблемах с метками времени у подключей.

--ignore-valid-from

Обычно GnuPG не выбирает и не использует ключи, созданные в будущем. Этот параметр позволяет пользоваться такими ключами и тем самым действовать, как версии GnuPG до 1.0.7. Этим параметром не следует пользоваться, если только нет какой-то проблемы с часами. См. также --ignore-valid-from о проблемах с метками времени у подписей.

--ignore-crc-error

Текстовый формат ASCII, используемый OpenPGP, защищается циклической контрольной суммой от ошибок во время передачи сообщения. Иногда контрольная сумма искажается где-то в канале передачи, но само содержимое (все равно защищенное протоколом OpenPGP) остается в норме. Этот параметр позволяет GnuPG не учитывать ошибки контрольных сумм.

--ignore-mdc-error

Если задан этот параметр, сбой защиты целостности кодом обнаружения изменений становится предупреждением. Это полезно, если сообщение частично повреждено, но нужно восстановить как можно больше данных из поврежденного сообщения. Однако помните, что сбой защиты кодом обнаружения изменений может означать также, что сообщение преднамеренно изменено злоумышленником.

--allow-weak-digest-algos

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

--weak-digest название

Считать указанный алгоритм слабым. Подписи, выполненные с помощью слабых алгоритмов хеша, обычно отвергаются. Этот параметр можно вводить несколько раз, если слабыми должны считаться несколько алгоритмов. См. также параметр --allow-weak-digest-algos отмены отказа от слабых алгоритмов хеша. MD5 всегда считается слабым, так что его не нужно перечислять в явном виде.

--no-default-keyring

Не добавлять к списку таблиц ключей основные таблицы. Обратите внимание, что GnuPG не может работать совсем без таблиц ключей, так что если вы задаете этот параметр, не задавая другие таблицы ключей с помощью --keyring или --secret-keyring, то GnuPG все равно будет пользоваться основной таблицей открытых или секретных ключей.

--no-keyring

Не пользоваться никакими таблицами ключей, даже указанными в параметрах.

--skip-verify

Пропустить шаг проверки подписи. Это можно использовать для ускорения дешифровки, когда проверка подписи не требуется.

--with-key-data

Выводить списки ключей с двоеточием в качестве разделителя (как --with-colons) и выводить данные открытых ключей.

--fast-list-mode

Изменяет вывод перечисляющих команд так, чтобы они работали быстрее; это достигается тем, что некоторые части оставляются пустыми. Некоторым приложениям не нужны идентификаторы пользователя и сведения о доверии, передаваемые в списках. Точное значение этого параметра может изменяться в будущих версиях. Если вам каких-то сведений не хватает, не пользуйтесь этим параметром.

--no-literal

Не предназначено для нормального пользования. За подробностями обращайтесь к исходным текстам.

--set-filesize

Не предназначено для нормального пользования. За подробностями обращайтесь к исходным текстам.

--show-session-key

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

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

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

--override-session-key строка
--override-session-key-fd дескриптор

Пользоваться не открытым ключом, а сеансовым ключом, переданным в первой строке, прочитанной из указанного файлового дескриптора. Формат этой строки совпадает с форматом, выводимым параметром --show-session-key. Этот параметр обычно не применяется, но удобен, когда кто-то вынуждает вас раскрыть содержимое зашифрованного сообщения; с помощью этого параметра это можно сделать, не выдавая секретного ключа. Заметьте, что --override-session-key может открыть сеансовый ключ всем локальным пользователям через глобальную таблицу процессов.

--ask-sig-expire
--no-ask-sig-expire

Когда подписываются данные, запросить срок действия. Если этот параметр не задан, принимается срок действия, установленный параметром --default-sig-expire. Выключается параметром --no-ask-sig-expire.

--default-sig-expire

Исходный срок действия подписей. Допустимые значения: «0» (срок действия не ограничен); число с последующим «d» (дни), «w» (недели), «m» (месяцы) или «y» (годы) (например, «2m» означает два месяца, «5y» означает пять лет); абсолютная дата в виде «ГГГГ-ММ-ДД». Исходное значение — «0».

--ask-cert-expire
--no-ask-cert-expire

Когда подписываются ключи, запросить срок действия. Если этот параметр не задан, принимается срок действия, установленный параметром --default-cert-expire. Выключается параметром --no-ask-cert-expire.

--default-cert-expire

Исходный срок действия подписей ключей. Допустимые значения: «0» (срок действия не ограничен); число с последующим «d» (дни), «w» (недели), «m» (месяцы) или «y» (годы) (например, «2m» означает два месяца, «5y» означает пять лет); абсолютная дата в виде «ГГГГ-ММ-ДД». Исходное значение — «0».

--default-new-key-algo строка

Параметр можно применять для изменения исходных алгоритмов генерации ключей. Обратите внимание, что алгоритм всегда можно указать напрямую с помощью усложненных команд генерации ключей. Чтобы узнать синтаксис аргумента, сверяйтесь с исходным текстом программы.

--allow-secret-key-import

Устаревший параметр, больше нигде не применяется.

--allow-multiple-messages
--no-allow-multiple-messages

Разрешить обработку многих сообщений OpenPGP в едином файле или потоке. Некоторые программы, вызывающие GPG, не готовы работать с несколькими сообщениями подряд, так что этот параметр по умолчанию выключен. Обратите внимание, что версии GPG, предшествующие 1.4.7, всегда разрешали такую обработку.

Внимание: не пользуйтесь этим параметром, если вам это не нужно в качестве временной меры!

--enable-special-filenames

Этот параметр переводит в режим, в котором имена файлов вида -&n, где n — неотрицательное десятичное число, указывают на файловый дескриптор n, а не на файл с таким именем.

--no-expensive-trust-checks

Только для экспериментов.

--preserve-permissions

Не менять права доступа к таблице секретных ключей на разрешение чтения-записи только для владельца файла. Применяйте этот параметр, только если вы хорошо знаете, что делаете.

--default-preference-list строка

Задать предпочтений. Этот список используется для новых ключей и становится исходным для команды ‘setpref’ в меню --edit-key.

--default-keyserver-url имя

Задать исходный URL сервера ключей. Этот сервер ключей будет использоваться в качестве URL сервера ключей в новых самоподписях ключей, в том числе при создании ключа и смене предпочтений.

--list-config

Вывести различные параметры внутренних настроек GnuPG. Этот параметр предназначен для внешних программ, вызывающих GnuPG для решения задач, и для обычного пользования не нужен. Подробности о том, какие параметры настроек могут перечисляться, см. в файле doc/DETAILS дистрибутива исходных текстов. --list-config используется только с --with-colons.

--list-gcrypt-config

Вывести различные параметры внутренних настроек Libgcrypt.

--gpgconf-list

Эта команда сходна с --list-config, но в целом применяется только внутри средства gpgconf.

--gpgconf-test

Более или менее пустое действие. Однако при этом читается файл настроек и программа завершается с кодом ошибки, если файл настроек не позволил бы gpg2 начать работу. Таким образом, это можно использовать для проверки синтаксиса файла настроек.


Пред: , Вверх: Параметры GPG   [Содержание][Указатель]

4.2.7 Не рекомендованные параметры

--show-photos
--no-show-photos

При выполнении --list-keys, --list-signatures, --list-public-keys, --list-secret-keys и проверке подписи выводится также фотоидентификатор, прилагаемый к ключу. См. также параметр --photo-viewer. Эти параметры не рекомендуются. Пользуйтесь вместо них --list-options [no-]show-photos или --verify-options [no-]show-photos.

--show-keyring

Показывать имя таблицы ключей в заголовке списков ключей, чтобы показать, в какой из таблиц находится данный ключ. Этот параметр не рекомендуется к употреблению; пользуйтесь вместо него --list-options [no-]show-keyring.

--always-trust

Эквивалентно --trust-model always. Не рекомендуется к употреблению.

--show-notation
--no-show-notation

Показывать замечания подписей в списках --list-signatures и --check-signatures, а также при проверке подписи, в которой есть замечание. Эти параметры не рекомендуются к употреблению. Пользуйтесь вместо них --list-options [no-]show-notation и --verify-options [no-]show-notation.

--show-policy-url
--no-show-policy-url

Показывать URL правил в списках --list-signatures и --check-signatures, а также при проверке подписи, в которой URL правил. Эти параметры не рекомендуются к употреблению. Пользуйтесь вместо них --list-options [no-]show-policy-url и --verify-options [no-]show-policy-url.


Следующий: , Пред: , Вверх: Вызов GPG   [Содержание][Указатель]

4.3 Файлы настроек

Есть несколько файлов настроек для управления определенными аспектами работы gpg2. Если не указано иное, они должны располагаться в текущем домашнем каталоге (см. параметр --homedir).

gpg.conf

Это обычный файл настроек, который gpg2 читает при запуске. В него можно записывать любые допустимые параметры в длинной форме; символов «–» перед названием параметра быть не должно, сокращать параметры нельзя. Это исходное имя файла можно изменить в командной строке (см. параметр gpg --options). Вам следует сохранять резервные копии этого файла.

Обратите внимание, что на больших системах полезно помещать заранее написанные файлы в каталог /usr/local/etc/skel/.gnupg, чтобы новые учетные записи пользователей создавались с работающими настройками. Для существующих пользователей имеется небольшая программа для создания этих файлов (см. addgnupghome).

Для внутренних нужд gpg2 создает и ведет несколько других файлов; Все они находятся в текущем домашнем каталоге (см. параметр --homedir). Эти файлы можно изменять только программой gpg2.

~/.gnupg

Это исходный домашний каталог, который используется, если ни переменная среды GNUPGHOME, ни параметр --homedir не заданы.

~/.gnupg/pubring.gpg

Таблица открытых ключей. Вам следует сохранять резервные копии этого файла.

~/.gnupg/pubring.gpg.lock

Блокировка для таблицы открытых ключей.

~/.gnupg/pubring.kbx

Таблица открытых ключей в другом формате. Файл используется совместно с gpgsm. Вам следует сохранять резервные копии этого файла.

~/.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

База данных доверия. Резервных копий этого файла делать не нужно; лучше сохранять величины доверия владельцам (см. параметр --export-ownertrust).

~/.gnupg/trustdb.gpg.lock

Блокировка для базы данных доверия.

~/.gnupg/random_seed

Файл, в котором сохраняется состояние внутреннего резерва случайных чисел.

~/.gnupg/openpgp-revocs.d/

Каталог, в котором gpg2 сохраняет предварительно созданные сертификаты отзыва. Имя файла соответствует отпечатку ключа. Предлагается делать резервные копии этих сертификатов, а если первичный секретный ключ не сохраняется на диски, переносить их на внешнее устройство хранения. Всякий, у кого есть доступ к этим файлам, может отозвать соответствующий ключ. Сертификаты можно распечатать на бумаге. Для всех файлов в этом каталоге нужно сделать резервные копии; кроме того, необходимо позаботиться о защите этих резервных копий.

Работа также управляется несколькими переменными среды:

HOME

Используется для определения исходного домашнего каталога.

GNUPGHOME

Если этот каталог задан, он используется вместо "~/.gnupg".

GPG_AGENT_INFO

Эта переменная устарела; она использовалась в версиях GnuPG, предшествовавших 2.1.

PINENTRY_USER_DATA

Значение переменной передается через gpg-agent в программу ввода пароля. Оно полезно для передачи дополнительной информации, необходимой для данной разновидности программы ввода пароля.

COLUMNS
LINES

Используются для установки размеров экрана.

LANGUAGE

Кроме использования в GNU, переменная применяется в версии для W32, чтобы переопределить выбор языка, заданный в реестре. Если значение переменной является допустимым названием доступного языка (langid), переводы загружаются из файла gpgdir/gnupg.nls/langid.mo. Здесь gpgdir означает каталог, из которого был загружен исполняемый файл gpg. Если файл не удалось загрузить, проводится поиск в реестре; наконец, в случае неудачи используется встроенная система переводов сообщений Windows.


Следующий: , Пред: , Вверх: Вызов GPG   [Содержание][Указатель]

4.4 Примеры

gpg -se -r Вова файл

подписать и зашифровать файл для пользователя Вова

gpg –clear-sign файл

сделать текстовую подпись

gpg -sb файл

сделать отделенную подпись

gpg -u 0x12345678 -sb файл

сделать отделенную подпись с помощью ключа 0x12345678

gpg –list-keys ID пользователя

показать ключи

gpg –fingerprint идентификатор пользователя

показать отпечаток

gpg –verify файл PGP
gpg –verify файл подписи [файл данных]

Проверить подпись файла, но не выводить данные, если нет запроса. Вторая форма применяется для отделенных подписей, где файл подписи — отделенная подпись (в двоичном или текстовом формате), а файл данных — подписанные данные; если второй аргумент не задан, имя файла данных определяется отбрасыванием расширения («.asc» или «.sig») от имени файла подписи либо запросом имени файла у пользователя. Если применяется также параметр --output, подписанные данные выводятся в файл, заданный этим параметром; для записи подписанных данных в стандартный поток вывода укажите -.

ВЫРАЖЕНИЯ ДЛЯ ФИЛЬТРОВ

Здесь описывается синтаксис выражений в параметрах --import-filter и --export-filter (квадратные скобки показывают необязательную часть, круглые — повторение, пробелы между элементами допустимы).

  [лс] {[{признак}] ИМЯ_СВОЙСТВА оп ЗНАЧЕНИЕ [лс]}

Имя свойства ИМЯ_СВОЙСТВА может состоять только из букв, цифр и знаков подчеркивания. В описании типа фильтра указывается, какие свойства определены. Если вводится неопределенное свойство, оно считается равным пустой строке. Если не указано обратное, ЗНАЧЕНИЕ всегда должно быть непустой строкой. Экранирующие символы для значения не определены, таким образом, оно не может содержать строк && и ||, применяемых в качестве операторов логических связок. Для снятия этого ограничения можно воспользоваться признаком --.

Численные значения вычисляются как long int; действует стандартная нотация Си. лс представляет оператор логической связки: либо && (конъюнкция), либо || (дизъюнкция). В начале выражения подразумевается конъюнкция. Конъюнкция имеет более высокий приоритет, чем дизъюнкция. Если ЗНАЧЕНИЕ начинается с одного из символов, используемых в оп, после оп требуется пробел.

Поддерживаются операторы (оп):

=~

Подстрока должны соответствовать.

!~

Подстрока не должна соответствовать.

=

Строка должна полностью совпадать.

<>

Строка не должна полностью совпадать.

==

Численное значение должно совпадать.

!=

Численное значение не должно совпадать.

<=

Численное значение не должно превосходить заданное.

<

Численное значение должно быть меньше заданного.

>

Численное значение должно быть больше заданного.

>=

Численное значение не должно быть меньше заданного.

-le

Строка должна не больше заданной.

-lt

Строка должна быть меньше заданной.

-gt

Строка должна быть больше заданной.

-ge

Строка должна быть не меньше заданной.

-n

Истинно, если значение не пусто (допускается отсутствие значения).

-z

Истинно, если значение пусто (допускается отсутствие значения).

-t

То же, что «ИМЯ_СВОЙСТВА != 0» (допускается отсутствие значения).

-f

То же, что «ИМЯ_СВОЙСТВА == 0» (допускается отсутствие значения).

Значения параметра признак должны отделяться пробелом. Поддерживаются признаки:

ЗНАЧЕНИЕ распространяется до конца выражения.

-c

Регистр символов при сопоставлении строк в этой части не учитывается.

Параметры фильтра соединяются в спецификации для фильтра одного и того же типа. Например, четыре параметра

 --import-option keep-uid="uid =~ Alfa"
 --import-option keep-uid="&& uid !~ Test"
 --import-option keep-uid="|| uid =~ Alpha"
 --import-option keep-uid="uid !~ Test"

эквивалентны

 --import-option \
  keep-uid="uid =~ Alfa" && uid !~ Test" || uid =~ Alpha" && "uid !~ Test"

и приводят к тому, что импортируются только идентификаторы пользователя ключа, содержащие строки «Alfa» или «Alpha», но не строку «Test».

КОД ВЫХОДА

Программа возвращает 0, если все прошло успешно, 1 — если хотя бы одна подпись была неверна, другие коды ошибок при неустранимых сбоях.

ПРЕДОСТЕРЕЖЕНИЯ

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

Имейте в виду, что если эта программа применяется по сети (через telnet), то *очень* легко подглядеть вашу фразу-пароль!

Если вы собираетесь проверять отделенные подписи, убедитесь, что программа знает об этом; задавайте либо имена обоих файлов в командной строке, либо указывайте на стандартный поток ввода с помощью ‘-’.

СОВМЕСТИМОСТЬ С ДРУГИМИ ПРОГРАММАМИ OPENPGP

GnuPG стремится к гибкости реализации стандарта OpenPGP. В частности, GnuPG реализует множество необязательных разделов стандарта, таких как хеш SHA-512 и алгоритмы сжатия ZLIB и BZIP2. Важно понимать, что не во всех программах OpenPGP реализованы эти необязательные алгоритмы и что принудительное их использование в GnuPG с помощью параметров --cipher-algo, --digest-algo, --cert-digest-algo или --compress-algo может привести к созданию вполне соответствующего стандарту сообщения, которое, однако, получатель прочесть не сможет.

Существуют десятки вариаций программ OpenPGP, и каждая поддерживает слегка отличающийся от других набор этих необязательных алгоритмов. Например, до недавнего времени ни одна (не измененная) версия PGP не поддерживала алгоритм шифрования BLOWFISH. По умолчанию GnuPG применяет систему предпочтений из стандарта OpenPGP, которая всегда приводит к тому, что создаваемыми сообщениями могут пользоваться все получатели независимо от того, какой программой OpenPGP они пользуются. Не изменяйте эти надежные исходные настройки, если только вы не полностью уверены в том, что делаете.

Если вам совершенно необходимо изменить исходные настройки или если предпочтения для данного ключа по какой-то причине ошибочны, лучше воспользоваться параметром --pgp6, --pgp7 или --pgp8. Эти параметры безопасны, поскольку они не вводят принудительно никаких конкретных алгоритмов в нарушение OpenPGP, а только сужают список доступных алгоритмов до «надежного относительно PGP».

НЕДОЧЕТЫ

На более старых системах эту программу следует устанавливать с доступом setuid(root). Это необходимо для защиты страниц памяти. Защита предотвращает запись страниц (в которых могут содержаться фразы-пароли или другой важный материал) на диск. Если вы не получаете предупреждения о незащищенной памяти, то ваша операционная система поддерживает защиту без перехода в режим суперпользователя. Программа отказывается от прав суперпользователя, как только выделена защищенная память.

Заметьте также, что на некоторых системах (особенно в портативных компьютерах) есть возможность «сброса на диск» (называемого также «безопасным засыпанием»). Перед переходом в спящий режим или даже перед выключением вся память записывается на диск. Если в операционной системе не принимаются меры по защите сохраненной памяти, фразы-пароли и другой важный материал впоследствии можно восстановить с диска.

Перед тем как сообщить об ошибке, следует поискать сообщения о сходных проблемах в списке рассылки, а затем проверить, не зарегистрирована ли такая ошибка на https://bugs.gnupg.org .


Пред: , Вверх: Вызов GPG   [Содержание][Указатель]

4.5 Автоматическая работа

gpg2 часто применяется как служебная программа для других программ. В этих целях был определен машинный интерфейс, в котором устранены неоднозначности. Для такой работы почти всегда требуются параметры --status-fd и --batch.


Следующий: , Вверх: Автоматическая работа GPG   [Содержание][Указатель]

4.5.1 Программное применение GnuPG

Если возможно, вместо обращения непосредственно к gpg2 пользуйтесь GPGME. GPGME обеспечивает стабильный независимый от рабочих программ интерфейс для многих криптографический операций. Библиотека поддерживает OpenPGP и S/MIME, а также позволяет взаимодействовать с различными компонентами GnuPG.

GPGME предоставляет интерфейс Си, а также привязки для Си++, Qt и Python. Есть привязки и для других языков.


Следующий: , Пред: , Вверх: Автоматическая работа GPG   [Содержание][Указатель]

4.5.2 Разовые домашние каталоги

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

Теперь предпочтительно использовать для этого разовые домашние каталоги. Эта техника работает со всеми версиями GnuPG.

Создайте временный каталог, создайте (или скопируйте) настройки, отвечающие вашим нуждам, укажите gpg2 на этот каталог в переменной среды GNUPGHOME или в параметре --homedir. GPGME поддерживает это, позволяя для каждого контекста задавать свои настройки. Выполните теперь нужные вам операции, импортируя и экспортируя материал ключей по мере необходимости. По завершении операций каталог можно удалить. Все рабочие службы GnuPG, которые были запущены, обнаружат это и завершатся.


Следующий: , Пред: , Вверх: Автоматическая работа GPG   [Содержание][Указатель]

4.5.3 Быстрая манипуляция ключами

В последних версиях GnuPG есть возможность манипулировать ключами без применения интерактивной команды --edit-key. Эта возможность была добавлена главным образом для GPGME (рекомендуемой к применению, см. подраздел «Программное применение GnuPG»). Эта возможность описана в подразделе «Как управлять своими ключами».


Пред: , Вверх: Автоматическая работа GPG   [Содержание][Указатель]

4.5.4 Автоматическое создание ключей

Для автоматического создания ключей команду --genenerate-key можно использовать с параметром --batch. Это самый гибкий способ создания ключей, но и самый сложный. Подумайте, не подойдет ли вам быстрый способ манипуляции ключами, описанный в предыдущем подразделе, «Быстрая манипуляция ключами».

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

Управляющие конструкции:

%echo текст

Вывести текст в качестве диагностики.

%dry-run

Подавить действительное создание ключа (полезно для проверки синтаксиса).

%commit

Выполнить создание ключа. Обратите внимание, что неявно эта конструкция вводится перед следующим параметром Key-Type.

%pubring имя файла

Записывать ключ не в исходную таблицу ключей и не в таблицу, данную в командной строке, а в указанный файл. Файл должен определяться до первой конструкции ‘%commit’, при повторном задании учитывается последняя конструкция, появившаяся перед ‘%commit’. Этот файл используется затем до тех пор, пока не появится новое имя файла (при выполнении конструкций ‘%commit’), и все ключи записываются в этот файл. Если задано новое имя файла, этот файл создается (или записывается поверх существующего).

Более защищенный от побочных эффектов способ описан в предыдущем подразделе, «Разовые домашние каталоги».

%secring имя файла

Этот параметр не влияет на работу GnuPG 2.1 и более поздних версий.

См. предыдущий подраздел, «Разовые домашние каталоги».

%ask-passphrase
%no-ask-passphrase

Этот параметр не влияет на работу GnuPG 2.1 и более поздних версий.

%no-protection

Параметр позволяет создавать ключи без защиты фразой-паролем. Предназначен в основном для испытаний.

%transient-key

Ключи создаются с помощью более быстрого и несколько менее безопасного генератора случайных чисел. Этот параметр используется для ключей, которые используются короткое время и не требуют полной криптографической защиты. Параметр действует только вместе с управляющей конструкцией ‘%no-protection’.

Общие параметры:

Key-Type: алгоритм

Открывает новый блок параметров, задавая тип первичного ключа. Алгоритм должен подходить для подписей. Это обязательный параметр. Аргументом может быть либо номер алгоритма OpenPGP, либо строка с названием алгоритма. Особое значение ‘default’ можно использовать для создания ключа с типом по умолчанию; в этом случае параметр ‘Key-Usage’ не должен быть задан, а значение ‘default’ должно использоваться и для ‘Subkey-Type’.

Key-Length: n

Заданная длина создаваемого ключа в битах. Исходное значение можно узнать, выполнив команду ‘gpg2 --gpgconf-list’.

Key-Grip: шестнадцатеричная строка

Необязательный параметр; используется для создания запроса на подпись сертификата или сертификата для уже существующего ключа. Параметр Key-Length при этом игнорируется.

Key-Usage: список

Список функций ключа с пробелом или запятой в качестве разделителя. Допустимы значения ‘encrypt’ (шифрование), ‘sign’ (подпись) и ‘auth’ (проверка подлинности). Используется для задания признаков ключа. Проверьте, пожалуйста, что алгоритм может выполнять эти функции. Обратите внимание, что OpenPGP требует, чтобы все первичные ключи могли проводить сертификацию, так что признак ‘cert’ будет установлен в любом случае. Если ‘Key-Usage’ не задан, а ‘Key-Type’ не равен ‘default’, устанавливаются все допустимые для конкретного алгоритма функции; если в качестве списка задан ‘default’, будет создан ключ для подписей (‘sign’).

Subkey-Type: алгоритм

Создает вторичный ключ (подключ). В настоящее время можно создавать только один подключ. См. выше ‘Key-Type’.

Subkey-Length: n

Заданная длина создаваемого вторичного ключа (подключа) в битах. Исходное значение можно узнать, выполнив команду ‘gpg2 --gpgconf-list’.

Subkey-Usage: список

Список функций подключа; аналогичен ‘Key-Usage’.

Passphrase: строка

Если хотите указать фразу-пароль для секретного ключа, введите ее здесь. По умолчанию для запроса фразы-пароля вызывается диалог программы ввода пароля.

Name-Real: имя
Name-Comment: примечание
Name-Email: адрес

Три части идентификатора пользователя. Не забудьте, что это UTF-8. Если вы не зададите хотя бы один из параметров, идентификатор пользователя не будет создан.

Expire-Date: дата ИСО|(число[d|w|m|y])

Задать срок действия ключа (и подключа). Это может быть либо дата в формате ИСО (e.g. "20000815T145012"), либо число дней, недель, месяцев или лет после даты создания. Допускается также особая запись «seconds=N» для указания числа секунд с момента создания. Число без буквы считается числом дней. Обратите внимание, что проверка переполнения типа, используемого в OpenPGP для меток времени, не проводится. Таким образом, лучше убедиться, что заданное значение имеет смысл. Хотя OpenPGP работает с интервалами времени, внутри GnuPG применяется абсолютное значение; таким образом, мы можем представлять годы до 2105.

Creation-Date: дата ИСО

Задать дату создания ключа, которая будет записана в ключе и которая входит в вычисление отпечатка. Это либо дата в виде «1986-04-26», либо полная метка времени в виде «19860426T042640». Время считается Всемирным координированным (UTC). Можно использовать также особую запись «seconds=N» для указания числа секунд от начала эпохи (время Unix). Если параметр не задан, используется текущее время.

Preferences: строка

Установить предпочтения для симметричных шифров, хеша и сжатия. Вид аргумента совпадает с аргументом подкоманды ‘setpref’ из меню --edit-key.

Revoker: алгоритм:отп [sensitive]

Добавить отзывающего для создаваемого ключа. В качестве алгоритма задается алгоритм шифрования с открытым ключом для отзывающего (т.е. RSA=1, DSA=17 и т.д.) Строка отп представляет отпечаток отзывающего ключа. Необязательный признак ‘sensitive’ помечает отзывающего как особо важную информацию. Отзывающими могут быть только ключи версии 4.

Keyserver: строка

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

Handle: строка

Необязательный параметр, применяемый только со строками состояния KEY_CREATED и KEY_NOT_CREATED. В аргументе может быть до 100 символов и не должно быть пробелов. Это полезно для пакетной генерации ключей, чтобы связать блок параметра ключей со строкой состояния.

Вот пример создания ключа в разовом домашнем каталоге:

$ export GNUPGHOME="$(mktemp -d)"
$ cat >foo <<EOF
     %echo Создание простого ключа OpenPGP
     Key-Type: DSA
     Key-Length: 1024
     Subkey-Type: ELG-E
     Subkey-Length: 1024
     Name-Real: Яша Испытатель
     Name-Comment: с дурацкой фразой-паролем
     Name-Email: yi@test.mil
     Expire-Date: 0
     Passphrase: abc
     # Тут сохраним, чтоб можно было сказать "готово" :-)
     %commit
     %echo готово
EOF
$ gpg2 --batch --generate-key foo
 [...]
$ gpg2 --list-secret-keys
/tmp/tmp.0NQxB74PEf/pubring.kbx
-------------------------------
sec   dsa1024 2016-12-16 [SCA]
      768E895903FC1C44045C8CB95EEBDB71E9E849D0
uid           [абсолютно] Яша Испытатель (с дурацкой фразой-паролем) <yi@test.mil>
ssb   elg1024 2016-12-16 [E]

Если вы хотите создать ключ с исходными алгоритмами, можно задать следующие параметры:

     %echo Создание ключа по умолчанию
     Key-Type: default
     Subkey-Type: default
     Name-Real: Яша Испытатель
     Name-Comment: с дурацкой фразой-паролем
     Name-Email: yi@test.mil
     Expire-Date: 0
     Passphrase: abc
     # Тут сохраним, чтоб можно было сказать "готово" :-)
     %commit
     %echo готово

Следующий: , Пред: , Вверх: Верх   [Содержание][Указатель]

5 Вызов GPGSM

gpgsm представляет средство, подобное gpg, решающее задачи цифрового шифрования и подписи на базе сертификатов X.509 и протокола CMS. Оно применяется главным образом как служебная программа для обработки почты по S/MIME. gpgsm реализует полнофункциональное управление сертификатами, удовлетворяя всем правилам, определенным в немецком проекте Sphinx.

Указатель параметров содержит список команд и параметров GPGSM.


Следующий: , Вверх: Вызов GPGSM   [Содержание][Указатель]

5.1 Команды

Команды отличаются от параметров только тем, что допускается только одна команда.


Следующий: , Вверх: Команды GPGSM   [Содержание][Указатель]

5.1.1 Команды, не связанные с конкретными функциями

--version

Вывести версию программы и лицензионные сведения. Эту команду нельзя сокращать (напр., как --versio).

--help, -h

Вывести подсказку по наиболее полезным параметрам командной строки. Эту команду нельзя сокращать (напр., как --hel).

--warranty

Вывести сведения о гарантиях. Эту команду нельзя сокращать (напр., как --warrant).

--dump-options

Вывести список всех имеющихся параметров и команд. Эту команду нельзя сокращать (напр., как --dump-option).


Следующий: , Пред: , Вверх: Команды GPGSM   [Содержание][Указатель]

5.1.2 Команды выбора типа операции

--encrypt

Зашифровать. Ключи, для которых шифруются данные, должны быть заданы параметром --recipient.

--decrypt

Расшифровать; форма данных на входе определяется автоматически. Это может быть двоичный формат или кодировка PEM; автоматическое распознавание кодировки base-64 не производится.

--sign

Сделать цифровую подпись. Используется либо первый ключ, найденный на щите с ключами, либо ключи, заданные параметром --local-user.

--verify

Проверить цифровую подпись. В зависимости от аргументов может проверяться также отделенная подпись.

--server

Работать в режиме сервера, ожидая команды со стандартного потока ввода.

--call-dirmngr команда [аргументы]

Имитировать программу-клиент Dirmngr с заданной командой и необязательным списком аргументов. Вывод Dirmngr печатается в стандартном потоке вывода. Обратите внимание, что имена файлов, передаваемые в качестве аргументов, должны быть абсолютными (т.е. начинаться с /), потому что они передаются в Dirmngr буквально, а рабочий каталог Dirmngr может не совпадать с рабочим каталогом вызвавшей программы. В настоящее время передавать данные в Dirmngr через стандартный поток ввода невозможно. В аргументе команда не должно быть пробелов.

Эта команда требуется для проведения определенных регламентных работ программы Dirmngr, при которых у Dirmngr должна быть возможность обратной связи с gpgsm. Подробности см. в руководстве по Dirmngr.

--call-protect-tool аргументы

Определенные регламентные операции проводятся с помощью внешней программы gpg-protect-tool; она обычно не устанавливается в каталоге, перечисленном в переменной PATH. Команда предоставляет простую оболочку для доступа к этому средству. Аргументы передаются в эту команду буквально; ‘--help’ выдает список доступных операций.


Пред: , Вверх: Команды GPGSM   [Содержание][Указатель]

5.1.3 Как управлять сертификатами и ключами

--generate-key
--gen-key

Эта команда позволяет создавать запрос подписи сертификата или самоподписанный сертификат. Часто она используется с параметром --output, чтобы сохранить результат в файле. Если задан параметр --batch, при создании запроса подписи сертификата или сертификата используется файл настроек, и можно создавать несамоподписанные сертификаты.

--list-keys
-k

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

--list-secret-keys
-K

Перечислить все доступные сертификаты, для которых есть секретный ключ.

--list-external-keys шаблон

Перечислить сертификаты, соответствующие аргументу, из внешнего сервера. Команда задействует службу dirmngr.

--list-chain

То же, что --list-keys, но выводит также все ключи, составляющие цепочку.

--dump-cert
--dump-keys

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

--dump-chain

То же, что --dump-keys, но выводит также все ключи, составляющие цепочку.

--dump-secret-keys

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

--dump-external-keys шаблон

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

--keydb-clear-some-cert-flags

Это средство отладки для сброса определенных признаков в базе данных ключей, используемой как буфер для определенных элементов состояния ключей. Особенно полезно, когда испорчен список отозванных сертификатов или странно работающий ответчик OCSP действительно случайно отозвал сертификат. Эта команда не представляет проблем безопасности, потому что gpgsm всегда гарантирует, что достоверность сертификата проверяется непосредственно перед его применением.

--delete-keys шаблон

Удалить ключи, соответствующие шаблону. Обратите внимание, что команды для прямого удаления секретной части ключа нет. В случае, если вам это нужно, перед удалением ключа следует выполнить команду gpgsm --dump-secret-keys идентификатор_ключа, скопировать последовательность шестнадцатеричных чисел в строке «код ключа» и удалить файл, имя которого состоит из этой последовательности и суффикса .key из каталога private-keys-v1.d, находящегося в домашнем каталоге GnuPG (обычно ~/.gnupg).

--export [шаблон]

Экспортировать все сертификаты, хранящиеся на щите с ключами, указанные необязательным аргументом. Шаблон состоит из списка идентификаторов пользователя (см. как задать идентификатор пользователя). При вводе с параметром --armor перед каждым блоком выводится несколько информационных строк. Есть одно ограничение: поскольку нет общепринятого способа упаковки нескольких сертификатов в одну структуру ASN.1, двоичный вариант (без параметра --armor) работает только для экспорта одного сертификата. Одноразовые сертификаты экспортируются, только если все шаблоны представляют коды ключей или отпечатки.

--export-secret-key-p12 идентификатор ключа

Экспортировать секретный ключ и сертификат, указанный аргументом, в формате PKCS#12. При вводе с параметром --armor перед данными на выходе выводится несколько информационных строк. Обратите внимание, что формат PKCS#12 не очень защищен, и эта команда дается только на случай, если обменяться секретным ключом по-другому невозможно. (See параметр --p12-charset.)

--export-secret-key-p8 идентификатор ключа
--export-secret-key-raw идентификатор ключа

Экспортировать секретный ключ сертификата, указанного в аргументе, в полностью незашифрованном виде. Команда ...-raw выводит в формате PKCS#1, команда ...-p8 выводит в формате PKCS#8. При вводе с параметром --armor перед данными на выходе выводится несколько информационных строк. Эти команды полезны для подготовки ключа к использованию на сервере TLS.

--import [файлы]

Импортировать сертификаты из двоичных файлов или файлов в кодировке PEM, а также из сообщений, которые только подписаны. Этой командой можно импортировать также секретный ключ из файла PKCS#12.

--learn-card

Считать информацию о секретных ключах из электронной карты, импортировать оттуда сертификаты. Эта команда пользуется программой gpg-agent а та, в свою очередь, scdaemon.

--change-passphrase идентификатор пользователя
--passwd идентификатор пользователя

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


Следующий: , Пред: , Вверх: Вызов GPGSM   [Содержание][Указатель]

5.2 Сводка параметров

GPGSM характеризуется множеством параметров для управления деталями работы и для изменения исходных настроек.


Следующий: , Вверх: Параметры GPGSM   [Содержание][Указатель]

5.2.1 Как изменять настройки

Эти параметры применяются для изменения настроек и обычно находятся в файле параметров.

--options файл

Читает настройки из заданного файла вместо исходного файла настроек пользователя. Исходный файл настроек под названием gpgsm.conf находится в каталоге .gnupg, который находится непосредственно в домашнем каталоге пользователя.

--homedir каталог

Задать домашний каталог. Если этот параметр не используется, за домашний каталог принимается ~/.gnupg. Параметр учитывается только в командной строке. Он отменяет также любой домашний каталог, указанный в переменной среды GNUPGHOME или (в системах Windows) в пункте реестра HKCU\Software\GNU\GnuPG:HomeDir.

В системах Windows GnuPG можно установить как переносное приложение. В этом случае рассматривается только этот параметр командной строки, все другие способы задания домашнего каталога отключаются.

Для установки GnuPG в качестве переносного приложения под Windows создайте пустой файл под названием gpgconf.ctl в одном каталоге с gpgconf.exe. Тогда верхним каталогом установки будет этот каталог; или, если gpgconf.exe установлен непосредственно в каталоге под названием bin, на один уровень выше. Нужно также проверить, что следующие каталоги существуют и в них разрешена запись: ROOT/home для домашнего каталога GnuPG и ROOT/usr/local/var/cache/gnupg для внутренних буферных файлов.

-v
--verbose

Выводит во время работы дополнительную информацию. Объем информации можно увеличивать, вводя параметр несколько раз, например, ‘-vv’.

--policy-file файл

Изменить исходное имя файла с правилами на заданное в аргументе.

--agent-program файл

Указать программу-агент для операций с секретными ключами. Исходное значение определяется командой gpgconf. Обратите внимание, что символ конвейера («|») применяется для регрессионного тестирования и поэтому не может появляться в имени файла.

--dirmngr-program файл

Указать программу dirmngr для проверок списков отозванных сертификатов. Исходное значение — /usr/local/bin/dirmngr.

--prefer-system-dirmngr

Если общесистемный dirmngr работает в фоновом режиме, сначала пытаться подключиться к нему. Использовать запасной вариант на базе конвейера, если это не удается. Под Windows этот параметр не учитывается, поскольку всегда используется системный dirmngr.

--disable-dirmngr

Полностью отключить пользование программой Dirmngr.

--no-autostart

Не запускать gpg-agent и dirmngr, когда они еще не запущены, а их функции требуются. Этот параметр полезен главным образом на машинах, где подключение к gpg-agent перенаправляется на другие машины. Если dirmngr требуется на удаленной машине, его можно запускать вручную с помощью gpgconf --launch dirmngr.

--no-secmem-warning

Не выводить предупреждение, когда так называемой «защищенной памятью» не удается воспользоваться.

--log-file файл

При работе в режиме сервера дописывать весь протокол работы в заданный файл. Укажите socket://, если нужно протоколировать в сокет.


Следующий: , Пред: , Вверх: Параметры GPGSM   [Содержание][Указатель]

5.2.2 Параметры, связанные с сертификатами

--enable-policy-checks
--disable-policy-checks

По умолчанию проверка правил включена. Этими параметрами это можно менять.

--enable-crl-checks
--disable-crl-checks

По умолчанию проверки списков отозванных сертификатов включены, и dirmngr используется для проверки отозванных сертификатов. Параметр --disable-crl-checks полезнее всего, когда сеть отключена и проверки нужно подавить.

--enable-trusted-cert-crl-check
--disable-trusted-cert-crl-check

По умолчанию списки отозванных сертификатов для доверенных корневых сертификатов проверяются, как для любых других сертификатов. Это позволяет удостоверяющему центру отзывать свои собственные сертификаты без необходимости размещения всех когда-либо выданных сертификатов в списоке отозванных сертификатов. Параметр --disable-trusted-cert-crl-check можно использовать, чтобы отключить эту дополнительную проверку. Из-за буферирования, проводимого в dirmngr, заметного выигрыша в быстродействии не будет. Обратите внимание, что это отключает также возможные проверки доверенных корневых сертификатов по OCSP. Более выборочно эту проверку можно отключить, добавляя ключевое слово «relax» в строку корневого удостоверяющего центра в файле trustlist.txt.

--force-crl-refresh

Дать программе dirmngr указание перезагружать список отозванных сертификатов на каждом запросе. Для ускорения dirmngr в действительности оптимизирует это, подавляя загрузки на короткое время (напр., 30 минут). Этот параметр полезен, чтобы гарантировать, что для сертификатов со щита с ключами есть свежий список отозванных сертификатов. Предлагается делать это, используя этот с параметром --with-validation для команды перечисления ключей. Этот параметр не следует записывать в файл настроек.

--enable-ocsp
--disable-ocsp

По умолчанию проверки по OCSP выключены. Параметром --enable-ocsp можно включить проверки по OCSP через dirmngr. Если проверки списков отозванных сертификатов тоже включены, списки отозванных сертификатов будут использованы как запасной вариант, если по какой-то причине запрос OCSP не пройдет. Обратите внимание, что в настройках dirmngr тоже нужно включать запросы по OCSP (параметр --allow-ocsp), и dirmngr нужно соответственно настроить. Если этого не сделать, будет выдана ошибка ‘Не поддерживается’.

--auto-issuer-key-retrieve

Если при проверке цепочки сертификатов требуемый сертификат отсутствует, пытаться загрузить этот сертификат из внешнего источника. Это обычно означает, что для поиска сертификата задействуется dirmngr. Обратите внимание, что это может привести к «сетевому проколу». Операторы сервера LDAP могут узнать, какие ключи вы запрашиваете, так что оператор может узнать и ваш адрес IP, и время, когда вы проверяли подпись, если пошлет вам сообщение, подписанное свежесозданным ключом (которого у вас в локальной таблице ключей, естественно, не найдется).

--validation-model название

Этот параметр изменяет исходную схему проверки. Возможны значения: «shell» (исходная), «chain» (цепочная схема) и «steed» (новая упрощенная схема). Цепочная схема применяется также, если этого требует параметр в trustlist.txt или атрибут в сертификате. Однако в этом случае сначала всегда применяется исходная модель («shell»).

--ignore-cert-extension oid

Добавить oid к списку игнорируемых расширений сертификатов. Аргумент должен представлять десятичные числа, разделенные точками, например, 2.5.29.3. Этот параметр можно задавать несколько раз. Расширения сертификата, совпадающие с перечисленными OID и помеченные как критичные, будут считаться обработанными, так что сертификат не будет отбракован из-за неизвестного критичного расширения. Пользуйтесь этим параметром с осторожностью, потому что расширения обычно не помечаются как критичные без причины.


Следующий: , Пред: , Вверх: Параметры GPGSM   [Содержание][Указатель]

5.2.3 Ввод и вывод

--armor
-a

Выводить данные в кодировке PEM. По умолчанию они выводятся в двоичном виде.

--base64

Выводить данные в кодировке base-64, т.е. PEM без заголовочных строк.

--assume-armor

Считать, что данные вводятся в кодировке PEM. По умолчанию кодировка детектируется автоматически, но это может дать сбой.

--assume-base64

Считать, что данные вводятся в кодировке base-64.

--assume-binary

Считать, что данные вводятся в двоичном виде.

--p12-charset кодировка

gpgsm кодирует фразы-пароли в файлах PKCS#12 в кодировке UTF-8. Этим параметром можно принудительно сохранять фразу-пароль в заданной кодировке. Это полезно, если приложение, импортирующее ключ, пользуется другой кодировкой и поэтому не сможет импортировать файл, созданный gpgsm. Часто используются кодировки Latin1 и CP850. Обратите внимание, что сама gpgsm при импорте автоматически определяет фразы-пароли в наиболее употребительных кодировках.

--default-key идентификатор пользователя

Задать основной ключ для подписи. Этот ключ используется, если для подписи не определен никакой другой ключ. Обратите внимание, что первый параметр --local-users также задает этот ключ, если он еще не задан; --default-key всегда переопределяет этот ключ.

--local-user идентификатор пользователя
-u идентификатор пользователя

Задать пользователей, ключами которых будет производиться подпись. Исходное значение — первый секретный ключ, находящийся в базе данных.

--recipient имя
-r

Шифровать для указанного пользователя. Идентификатор пользователя можно задавать разными способами (см. как задать идентификатор пользователя).

--output файл
-o файл

Записывать результат в файл. По умолчанию используется стандартный поток вывода.

--with-key-data

При выполнении команд --list-keys выводить дополнительную информацию, главным образом код ключа в строке с пометкой grp. Эта строка используется, например, как имя файла с секретным ключом. Подразумевает --with-colons.

--with-validation

При перечислении ключей проводить полную проверку достоверности для каждого ключа и выводить результат. Обычно это медленная операция, потому что подразумевает поиск по списку отозванных сертификатов и другие операции.

Когда параметр используется с командой --import, сертификат импортируется только после успешной проверки. Обратите внимание, что это не влияет на сертификаты, уже размещенные в базе данных. Таким образом, этот параметр полезен для того, чтобы просто проверять сертификаты.

--with-md5-fingerprint

При обычных перечислениях ключей выводить также отпечаток MD5 сертификата.

--with-keygrip

Выводить код ключа при обычных перечислениях ключей. Обратите внимание, что код ключа всегда выводится в режиме --with-colons.

--with-secret

Выводить сведения о присутствии секретного ключа в списках открытых ключей, производимых --with-colons.


Следующий: , Пред: , Вверх: Параметры GPGSM   [Содержание][Указатель]

5.2.4 Как изменять создание CMS

--include-certs n

Значение аргумента, равное -2, включает все сертификаты, кроме корневого, -1 — все сертификаты, 0 — не включает никакие, 1 — только сертификаты подписавшего, все другие положительные числа включают все сертификаты до n-го, начиная с сертификата подписавшего. Исходное значение равно -2.

--cipher-algo oid

Применять для шифрования симметричный шифр с указанным идентификатором объекта ASN.1. Для удобства вместо идентификаторов можно использовать строки 3DES, AES и AES256. Исходное значение — AES (2.16.840.1.101.3.4.1.2).

--digest-algo название

Использовать указанный алгоритм хеша. Обычно этот алгоритм определяется по соответствующему подписывающему сертификату. Этот параметр принудительно задает алгоритм, что может привести к серьезным проблемам совместимости.


Пред: , Вверх: Параметры GPGSM   [Содержание][Указатель]

5.2.5 То, чего обычно делать не нужно

--extra-digest-algo название

Иногда в неисправных подписях заявлен не тот алгоритм хеша, который в них применяется. gpgsm обрабатывает данные в один проход, поэтому для правильного вычисления хеша программе приходится рассчитывать на то, что в подписи применяются заявленные алгоритмы. Этот параметр позволяет указать gpgsm, что нужно дополнительно вычислять указанный хеш; это немного замедляет обработку, но позволяет проверять такие неисправные подписи. Если gpgsm выводит такую ошибку, как «алгоритм 8 не подключен», можно попробовать ввести этот параметр с ‘SHA256’ в качестве аргумента.

--faked-system-time момент

Этот параметр полезен только для тестирования; он переводит системное время к моменту, заданному аргументом в виде количества секунд с начала 1970 года. Время можно задавать также в виде полной строки времени ИСО (напр., «20070924T154812»).

--with-ephemeral-keys

Включать одноразовые ключи в перечисления ключей. Обратите внимание, что они все равно включаются, если ключ для перечисления указан в виде отпечатка или кода ключа.

--debug-level уровень

Выбрать уровень отладки для исследования проблем. Аргумент может быть числом либо ключевым словом:

none

Никаких отладочных сообщений. Соответствует значениям, меньшим 1.

basic

Некоторые простые отладочные сообщения. Соответствует значениям от 1 до 2.

advanced

Более подробные отладочные сообщения. Соответствует значениям от 3 до 5.

expert

Еще более подробные сообщения. Соответствует значениям от 6 до 8.

guru

Все отладочные сообщения, какие только есть. Соответствует значениям, большим 8.

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

--debug признаки

Этот параметр полезен только для отладки, его значение может меняться в любое время без объявления; для выбора подробности отладочных сообщений рекомендуется параметр --debug-levels. Признаки кодируются по битам и задаются обычным синтаксисом Си. В настоящее время определены биты:

0 (1)

данные, связанные с протоколами X.509 или OpenPGP

1 (2)

значения длинных чисел

2 (4)

криптографические операции низкого уровня

5 (32)

выделение памяти

6 (64)

буферизация

7 (128)

показывать статистику памяти

9 (512)

записывать хешируемые данные в файлы с именами dbgmd-000*

10 (1024)

отслеживать протокол Assuan

Обратите внимание, что все флаги, установленные этим параметром, могут переустанавливаться с помощью параметра --debug-level.

--debug-all

То же, что --debug=0xffffffff

--debug-allow-core-dump

Обычно gpgsm в целях безопасности предотвращает вывод дампа памяти высоким качеством программы, а также отключением вывода дампа памяти. Однако ошибки живучи, и чтобы отловить их, иногда полезно получить дамп памяти. Этот параметр включает дампы памяти, если только эта дрянь не происходит еще до распознавания параметров.

--debug-no-chain-validation

Это на самом деле не параметр отладки, но полезен только как таковой. Он позволяет gpgsm обходить все проверки цепочек сертификатов.

--debug-ignore-expiration

Это на самом деле не параметр отладки, но он полезен только как таковой. Он позволяет gpgsm игнорировать все даты notAfter, это применяется в регрессионном тестировании.

--passphrase-fd n

Читать фразу-пароль из файлового дескриптора n. Из дескриптора читается только первая строка. Если в качестве n указать 0, фраза-пароль считывается из стандартного потока ввода. Это возможно, только если передается одна фраза-пароль.

Обратите внимание, что эта фраза-пароль используется только вместе с параметром --batch.

--pinentry-mode режим

Установить указанный режим программы ввода пароля. Допустимые значения аргумента:

default

Исходный режим агента (ask).

ask

Принудительно пользоваться программой ввода пароля.

cancel

Имитировать нажатие в программе ввода пароля кнопки отмены.

error

Возвратить ошибку («Нет программы ввода пароля»).

loopback

Перенаправлять запросы к программе ввода пароля на вызывающего. Обратите внимание, что в отличие от программы ввода пароля, попытки ввода не повторяются, если пользователь ввел неверный пароль.

--no-common-certs-import

Подавить импорт общих сертификатов при создании щита с ключами.

Все длинные параметры можно размещать в файле настроек без начальных символов «–».


Следующий: , Пред: , Вверх: Вызов GPGSM   [Содержание][Указатель]

5.3 Файлы настроек

Есть несколько файлов настроек для управления определенными аспектами работы gpgsm. Если специально не оговорено, они располагаются в текущем домашнем каталоге (см. параметр --homedir).

gpgsm.conf

Это обычный файл настроек, который gpgsm читает при запуске. В нем могут быть только допустимые длинные параметры; символов «–» перед названием параметра быть не должно, сокращать параметры нельзя. Это исходное имя файла можно изменить в командной строке (см. параметр gpgsm --options). Для этого файла следует проводить резервное копирование.

policies.txt

Список допустимых правил удостоверяющих центров. В этом файле должны построчно перечисляться идентификаторы объектов правил. Пустые строки и строки, начинающиеся с «#», игнорируются. Если правило, которого нет в этом файле, не помечено в сертификате как критичное, это приводит только к предупреждению; если оно помечено как критичное, проверка подписи выдаст ошибку. Для этого файла следует проводить резервное копирование.

Например, чтобы было разрешено только правило 2.289.9.9, файл должен иметь вид:

# Allowed policies
2.289.9.9
qualified.txt

Список корневых сертификатов, используемых для квалифицированных сертификатов. Они определяются как сертификаты, способные создавать такие же юридически обязывающие подписи, как подписи от руки. Примечания, начинающиеся с «#», и пустые строки игнорируются. Строки ограничены по длине, но это несущественно, потому что формат элементов фиксирован и проверяется gpgsm: строка начинается с необязательных пробелов, за которыми следуют в точности 40 шестнадцатеричных символов, пробелы и две строчных буквы, составляющие код страны. Дополнительные данные, разделенные пробелами, в настоящее время не учитываются, но впоследствии могут использоваться в других целях.

Обратите внимание, что даже если сертификат указан в этом файле, это не значит, что это доверенный сертификат; для этого сертификат должен быть указан также в trustlist.txt.

Это глобальный файл, установленный в каталоге данных (напр., /usr/local/share/gnupg/qualified.txt). GnuPG устанавливает соответствующий файл с корневыми сертификатами, применяемыми в Германии. Поскольку со временем могут выдаваться новые корневые сертификаты удостоверяющих центров, этот список тоже нужно обновлять; новые выпуски этого пакета программ должны содержать обновленный список, но ответственность за проверку этого списка все равно лежит на администраторе.

Каждый раз, когда gpgsm пользуется сертификатом для подписи или проверки, программа обращается к этому файлу, чтобы проверить, выпущен ли данный сертификат одним из этих удостоверяющих центров. Если это так, пользователя извещают, что проверенная подпись представляет юридически обязывающую («квалифицированную») подпись. При создании подписи с помощью такого сертификата производится дополнительный запрос, чтобы пользователь подтвердил, что такая юридически обязывающая подпись действительно должна быть создана.

Поскольку эта программа еще не была одобрена для применения с такими сертификатами, для указания на этот факт выводятся соответствующие уведомления.

help.txt

Это текстовый файл с несколькими пунктами справки, которые используются в программе ввода пароля pinentry, а также большой список текстов справки для gpg и gpgsm. В файле без суффикса записаны английские тексты; для установки переведенных версий пользуйтесь файлами help.LL.txt, где LL — код языка. В GnuPG устанавливает первоначальный набор файлов в каталоге данных (напр., /usr/local/share/gnupg/gnupg/help.de.txt) и позволяет заменять любые пункты справки из файлов, установленных в системном каталоге настроек (напр., /usr/local/etc/gnupg/help.de.txt). Справку по синтаксису файла см. в установленном файле help.txt.

com-certs.pem

Сборник общих сертификатов, которые записываются во вновь создаваемые pubring.kbx. Администратор может заменять этот файл в соответствии с местными требованиями. Этот глобальный файл устанавливается в каталог данных (напр., /usr/local/share/gnupg/com-certs.pem).

Обратите внимание, что в крупных системах полезно помещать заранее написанные файлы в каталог /etc/skel/.gnupg/, чтобы новые пользователи начинали с работающими настройками. Для существующих пользователей имеется небольшая программа для создания этих файлов (см. addgnupghome).

Для внутреннего пользования gpgsm создает и ведет несколько других файлов; все они располагаются в текущем домашнем каталоге (см. параметр --homedir). Эти файлы можно изменять только программой gpgsm.

pubring.kbx

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

random_seed

Содержимое этого файла используется для сохранения внутреннего состояния генератора случайных чисел между вызовами. Этот же файл используется и другими программами этого пакета.

S.gpg-agent

Если этот файл существует, gpgsm попытается соединиться с этим сокетом для доступа к gpg-agent перед тем, как запускать новый экземпляр gpg-agent. Под Windows этот сокет (который в действительности представляет простой файл с описанием обычного принимающего порта TCP) является основным способом подключения к gpg-agent.


Следующий: , Пред: , Вверх: Вызов GPGSM   [Содержание][Указатель]

5.4 Примеры

$ gpgsm -er foo@test.org < открытый-текст > шифровка

Следующий: , Пред: , Вверх: Вызов GPGSM   [Содержание][Указатель]

5.5 Автоматическая работа

gpgsm часто применяется как служебная программа в других программах. Чтобы облегчить такое использование, был определен машинный интерфейс, в котором исключаются неоднозначности. Скорее всего это будет применяться с командой --server, но этим можно пользоваться также в обычном режиме, задавая параметр --status-fd.


Следующий: , Вверх: Автоматическая работа   [Содержание][Указатель]

5.5.1 Автоматическая проверка подписи

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

Подпись верна

Это и в самом деле значит, что подпись успешно прошла проверку, сертификаты не повреждены. Однако есть два существенно разных случая. Во-первых, сертификаты или сама подпись могут быть просрочены. Разумно считать такую подпись все-таки верной, но должна выводиться дополнительная информация. В зависимости от обстоятельств gpgsm выдает следующие коды состояния:

подпись верна, ничего не просрочено

GOODSIG, VALIDSIG, TRUST_FULLY

подпись верна, но по крайней мере один сертификат просрочен

EXPKEYSIG, VALIDSIG, TRUST_FULLY

подпись верна, но просрочена

EXPSIG, VALIDSIG, TRUST_FULLY Обратите внимание, что этот случай в настоящее время не реализован.

Подпись неверна

Это значит, что подпись не прошла проверку (это указывает на ошибку при передаче данных, ошибку в программе или подмену сообщения). gpgsm выдает один из следующих кодовых последовательностей:

BADSIG
GOODSIG, VALIDSIG TRUST_NEVER
Ошибка при проверке подписи

По той или иной причине подпись проверить не удалось, т.е. нельзя определить, верна она или нет. Обычно это бывает из-за отсутствия сертификата.


Пред: , Вверх: Автоматическая работа   [Содержание][Указатель]

5.5.2 Создание CSR и сертификатов

Команду --generate-key можно применять с параметром --batch для создания запроса на подпись сертификата (CSR) или сертификата X.509. Это управляется файлом параметров; формат этого файла следующий:

Управляющие конструкции:

%echo текст

Вывести текст в качестве диагностики.

%dry-run

Подавить действительное создание ключа (полезно для проверки синтаксиса).

%commit

Выполнить создание ключа. Обратите внимание, что неявно эта конструкция вводится перед следующим параметром Key-Type.

Общие параметры:

Key-Type: алгоритм

Открывает новый блок параметров, задавая тип первичного ключа. Алгоритм должен подходить для подписей. Это обязательный параметр. В качестве аргумента поддерживается только ‘rsa’.

Key-Length: n

Заданная длина создаваемого ключа в битах. Исходное значение 2048.

Key-Grip: шестнадцатеричная строка

Необязательный параметр; используется для создания запроса на подпись сертификата или сертификата для уже существующего ключа. Параметр Key-Length при этом игнорируется.

Key-Usage: список

Список функций ключа с пробелом или запятой в качестве разделителя. Допустимы значения ‘encrypt’ (шифрование), ‘sign’ (подпись) и ‘cert’ (сертификация). Используется для задания расширения keyUsage. Проверьте, пожалуйста, что алгоритм может выполнять эти функции. По умолчанию назначаются функции шифрования и подписи.

Name-DN: имя субъекта

Это уникальное имя (DN) субъекта в формате RFC-2253.

Name-Email: строка

Это адрес электронной почты для altSubjectName. Это необязательный параметр, но он может появляться несколько раз, чтобы добавить к сертификату несколько адресов электронной почты.

Name-DNS: строка

Это имя DNS для altSubjectName. Это необязательный параметр, но он может появляться несколько раз, чтобы добавить к сертификату несколько имен DNS.

Name-URI: строка

Это URI для altSubjectName. Это необязательный параметр, но он может появляться несколько раз, чтобы добавить к сертификату несколько URI.

Дополнительные параметры для создания сертификата (в отличие от запроса на подпись сертификата):

Serial: номер

Если этот параметр задан, будет создан сертификат X.509. Аргумент должен быть шестнадцатеричной строкой, представляющей целое число произвольной длины без знака. Особое значение ‘random’ можно вводить, чтобы создавать случайный 64-битный серийный номер.

Issuer-DN: имя издателя

Это уникальное имя издателя в формате RFC-2253. Если не задано, будет использовано уникальное имя субъекта; кроме того, в сертификат будет добавлено специальное расширение GnuPG, чтобы пометить это как независимый сертификат.

Creation-Date: дата ИСО
Not-Before: дата ИСО

Установить дату notBefore в сертификате. Можно использовать либо дату в виде ‘1986-04-26’ или ‘1986-04-26 12:00’, либо стандартную дату ИСО в виде ‘19860426T042640’. Время считается Всемирным координированным (UTC). Если не задано, используется текущее время.

Expire-Date: дата ИСО
Not-After: дата ИСО

Установить дату notAfter в сертификате. Можно использовать либо дату в виде ‘2063-04-05’ или ‘2063-04-05 17:00’, либо стандартную дату ИСО в виде ‘20630405T170000’. Время считается Всемирным координированным (UTC). Если не задано, используется текущее время.

Signing-Key: код ключа

Задает код ключа, которым подписывается сертификат. Если не задан, создается самоподписанный сертификат. Для совместимости с будущими версиями предлагается писать перед кодом ключа ‘&’.

Hash-Algo: алгоритм хеша

Применить для этого сертификата или запроса на подпись сертификата заданный алгоритм хеша: ‘sha1’, ‘sha256’, ‘sha384’ или ‘sha512’; их можно указывать также прописными буквами. Исходное значение равно ‘sha256’.


Пред: , Вверх: Вызов GPGSM   [Содержание][Указатель]

5.6 Протокол, применяемый в режиме сервера

Описание протокола доступа к gpgsm. Программа gpgsm реализует и протокол Assuan, но в дополнение предоставляет нормальный протокол командной строки, который обеспечивает все функции этого протокола (но с помощью внутреннего связывания). Для запуска gpgsm в качестве сервера нужно задать параметр командной строки --server. Дополнительные параметры служат для выбора метода связи (т.е. имени сокета).

Мы предполагаем, что соединение уже установлено; подробности см. в руководстве по Assuan.


Следующий: , Вверх: Протокол GPGSM   [Содержание][Указатель]

5.6.1 Шифрование сообщения

Перед шифрованием нужно задать получателя командой:

  RECIPIENT идентификатор пользователя

Задать получателя шифрованного сообщения. Идентификатор пользователя должен быть внутренним представлением ключа; сервер может принимать любой другой способ указания. Если это достоверный и доверенный получатель, сервер отвечает кодом OK; в противном случае он возвращает ERR с причиной, по которой получатель недопустим, шифрование для этого получателя производиться не будет. Если нужно, чтобы шифрование не производилось, если не все получатели достоверны, об этом должна позаботиться программа-клиент. Все команды RECIPIENT накапливаются до команды RESET или до успешной команды ENCRYPT.

  INPUT FD[=n] [--armor|--base64|--binary]

Задать файловый дескриптор для зашифрованного сообщения. Очевидно, он к этому моменту должен быть открыт, сервер настраивает его со своей стороны. Если сервер возвращает ошибку, программа-клиент должна считать сеанс сорванным. Если номер дескриптора не задан, команда пользуется последним переданным в приложение файловым дескриптором. О передаче дескрипторов см. функцию assuan_sendfd in руководстве Libassuan.

Параметр --armor можно применять, чтобы указать серверу, что данные на входе представлены в формате PEM, --base64 указывает на простую кодировку base-64, --binary указывает на двоичный формат (BER). Если не задан ни один из параметров, сервер пытается определить кодировку по входным данным, но результат иногда может быть неверен.

  OUTPUT FD[=n] [--armor|--base64]

Задать файловый дескриптор для вывода (т.е. зашифрованного сообщения). Очевидно, он к этому моменту должен быть открыт, сервер настраивает его со своей стороны. Если сервер возвращает ошибку, программа-клиент должна считать сеанс сорванным.

Параметр --armor можно применять, чтобы указать серверу, что данные на входе представлены в формате PEM, --base64 указывает на простую кодировку base-64. Если аргумента нет, данные выводятся в двоичном формате (BER).

Само шифрование проводится с помощью команды

  ENCRYPT

Открытый текст берется из команды INPUT, зашифрованный текст выводится в файловый дескриптор, заданный командой OUTPUT, получатели берутся из всех действующих на данный момент команд RECIPIENT. Если при выполнении этой команды происходит сбой, программы-клиенты должны попытаться аннулировать или пометить как неверные все выведенные данные. Однако программа gpgsm гарантирует, что в этом случае уже выведенные данные не будут представлять никакой проблемы безопасности.

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


Следующий: , Пред: , Вверх: Протокол GPGSM   [Содержание][Указатель]

5.6.2 Расшифровка сообщения

Входной и выходной файловые дескрипторы задаются, как для шифрования, но INPUT относится к зашифрованному тексту, а OUTPUT — к расшифрованному. Задавать получателей не нужно. gpgsm автоматически удаляет все заголовки S/MIME из данных на входе, так что во входной канал можно направлять часть MIME полностью.

Расшифровка производится с помощью команды

  DECRYPT

Команда производит операцию расшифровки после некоторых проверок внутреннего состояния (напр., что все нужные данные получены). Поскольку она задействует gpg-agent для расшифровки сеансового ключа, запрашивать фразу-пароль у программы-клиента не требуется — gpg-agent сам запросит ее у пользователя.


Следующий: , Пред: , Вверх: Протокол GPGSM   [Содержание][Указатель]

5.6.3 Подпись сообщения

Подпись обычно производится командами:

  INPUT FD[=n] [--armor|--base64|--binary]

Это указывает gpgsm, что подписываемые данные нужно читать из файлового дескриптора n.

  OUTPUT FD[=m] [--armor|--base64]

Записать результат в файловый дескриптор m. Если запрашивается отделенная подпись, записывается только подпись.

  SIGN [--detached]

Подписать данные, заданные командой INPUT, и записать их в канал, заданный командой OUTPUT. Если задан параметр --detached, выводить отделенную подпись.

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

  SIGNER идентификатор пользователя

для задания подписывающего ключа. Идентификатор пользователя должен быть внутренним представлением ключа; сервер может принимать любой другой способ указания. Если это достоверный и доверенный получатель, сервер отвечает кодом OK; в противном случае он возвращает ERR с причиной, по которой ключ недопустим, подпись с помощью этого ключа производиться не будет. Если задано правило, по которому подпись не производится, если не все ключи достоверны, программа-клиент должна об этом позаботиться. Все команды SIGNER накапливаются до команды RESET. Обратите внимание, что команда SIGN не сбрасывает список подписывающих, в отличие от команд ENCRYPT и RECIPIENT.


Следующий: , Пред: , Вверх: Протокол GPGSM   [Содержание][Указатель]

5.6.4 Проверка сообщения

Для проверки сообщения предназначена команда

  VERIFY

Она проводит операцию проверки сообщения, посланного во входной канал. Результат выводится в строках состояния. Если задан выходной канал, подписанный текст выводится туда. Если подпись отделенная, сервер запросит подписанный материал, а программа-клиент должна его предоставить.


Следующий: , Пред: , Вверх: Протокол GPGSM   [Содержание][Указатель]

5.6.5 Создание ключа

Следующая команда применяется для создания новой пары ключей, сохранения секретной части в личной среде безопасности, а открытого ключа — в базе данных ключей. Возможно, мы добавим необязательные команды, чтобы программа-клиент могла выбирать, пользоваться ли для хранения электронной картой. Чтобы ограничить использование этой команды, можно использовать параметры настроек gpgsm.

  GENKEY

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

    S: INQUIRE KEY_PARAM native
    C: D foo:fgfgfg
    C: D bar
    C: END

Обратите внимание, что при чтении строк данных от программы-клиента сервер может выдавать информационные строки состояния. После завершения создания ключа сервер в конце концов выдает квитанцию ERR или OK. Строки состояния могут выводиться в качестве индикатора хода работы.


Следующий: , Пред: , Вверх: Протокол GPGSM   [Содержание][Указатель]

5.6.6 Перечисление доступных ключей

Для вывода списка ключей из внутренней базы данных или от внешнего поставщика ключей предназначена команда

  LISTKEYS  шаблон

Для указания нескольких образцов (при поиске выдаются ключи, соответствующие хотя бы одному из них) их нужно экранировать: пробелы нужно заменять на «+» или «%20»; это, в свою очередь, требует применения обычных правил для экранирующих символов.

  LISTSECRETKEYS шаблон

Перечислить только те ключи, для которых есть секретный ключ.

На команды перечисления влияет параметр

  OPTION list-mode=режим

где режим может быть равен

0

Исходный режим (обычно то же, что 1).

1

Перечислять только внутренние ключи.

2

Перечислять только внешние ключи.

3

Перечислять внутренние и внешние ключи

Обратите внимание, что параметры работают на протяжении всего сеанса.


Следующий: , Пред: , Вверх: Протокол GPGSM   [Содержание][Указатель]

5.6.7 Экспорт сертификатов

Для экспорта сертификатов предназначена команда

  EXPORT [--data [--armor] [--base64]] [--] шаблон

Для указания нескольких образцов (при поиске выдаются ключи, соответствующие хотя бы одному из них) их нужно экранировать: пробелы нужно заменять на «+» или «%20»; это, в свою очередь, требует применения обычных правил для экранирующих символов.

Если параметр --data не задан, формат данных на выходе зависит от от того, что задано командой OUTPUT. Когда применяется кодировка PEM, перед данными выводится несколько информационных строк.

Если параметр --data задан, назначение, заданное через OUTPUT, не учитывается, и данные выводятся в виде обычных строк, начинающихся на D. При этом задавать дополнительно файловый дескриптор не требуется. В этом случае параметры --armor и --base64 можно применять так же, как с командой OUTPUT.


Следующий: , Пред: , Вверх: Протокол GPGSM   [Содержание][Указатель]

5.6.8 Импорт сертификатов

Для импорта сертификатов во внутреннюю базу данных ключей предназначена команда

  IMPORT [--re-import]

Данные вводятся из файлового дескриптора, заданного командой INPUT. Сертификат проходит определенные проверки. Обратите внимание, что этой командой можно обрабатывать также файлы PKCS#12 и импортировать секретные ключи; для этого используется вспомогательная программа.

С параметром --re-import данные на входе считаются отпечатками (по одному на строку). Команда повторно импортирует соответствующие сертификаты, т.е. одноразовые сертификаты становятся постоянными.


Следующий: , Пред: , Вверх: Протокол GPGSM   [Содержание][Указатель]

5.6.9 Удаление сертификатов

Для удаления сертификатов предназначена команда

  DELKEYS шаблон

Для указания нескольких образцов (при поиске выдаются ключи, соответствующие хотя бы одному из них) их нужно экранировать: пробелы нужно заменять на «+» или «%20»; это, в свою очередь, требует применения обычных правил для экранирующих символов.

Сертификаты должны указываться без неоднозначностей, иначе программа выдает ошибку.


Следующий: , Пред: , Вверх: Протокол GPGSM   [Содержание][Указатель]

5.6.10 Извлечь аудиторский след

Эта команда предназначена для извлечения аудиторского следа.

GETAUDITLOG [--data] [--html]

Если задан параметр --data, аудиторский след выводится в виде строк, начинающихся с D, вместо вывода в файловый дескриптор, заданный командой OUTPUT. Если задан параметр --html, данные форматируются в виде блока XHTML, составленного для включения в документ HTML.


Следующий: , Пред: , Вверх: Протокол GPGSM   [Содержание][Указатель]

5.6.11 Вывод сведений о процессе

Это универсальная функция для вывода разного рода сведений.

GETINFO разряд

Значение аргумента определяет, какого рода данные выводятся:

version

Вывести версию программы.

pid

Вывести идентификатор процесса.

agent-check

Вывести OK, если работает программа-агент.

cmd_has_option команда параметр

Вывести OK, если в заданной команде реализован указанный параметр. Параметр должен указываться без «–» в начале.

offline

Вывести OK, если связи с сетью нет. Это может произойти в результате ввода параметра OPTION offline=1 или при запуске gpgsm с параметром --disable-dirmngr.


Пред: , Вверх: Протокол GPGSM   [Содержание][Указатель]

5.6.12 Параметры сеанса

Стандартный обработчик параметров Assuan поддерживает параметры:

OPTION параметр[=значение]

Распознаются параметры:

putenv

Изменить среду сеанса для передачи через gpg-agent в программу ввода пароля. Здесь значение — строка в виде <КЛЮЧ>[=[<СТРОКА>]]. Если задан только <КЛЮЧ>, переменная среды <КЛЮЧ> удаляется из среды сеанса, если задано <КЛЮЧ>=, переменной среды присваивается пустая строка, если задана <СТРОКА>, она присваивается переменной.

display

Установить переменную среды сеанса DISPLAY.

ttyname

Установить переменную среды сеанса GPG_TTY.

ttytype

Установить переменную среды сеанса TERM.

lc-ctype

Установить переменную среды сеанса LC_CTYPE.

lc-messages

Установить переменную среды сеанса LC_MESSAGES.

xauthority

Установить переменную среды сеанса XAUTHORITY.

pinentry-user-data

Установить переменную среды сеанса PINENTRY_USER_DATA.

include-certs

Этим параметром отменяется параметр командной строки --include-certs. Значение аргумента, равное -2, включает все сертификаты, кроме корневого, -1 — все сертификаты, 0 — не включает никакие, 1 — только сертификаты подписавшего, все другие положительные числа включают все сертификаты до указанного числа, начиная с сертификата подписавшего.

list-mode

See команда gpgsm listkeys.

list-to-output

Если значение аргумента не равно 0, команды перечисления (см. команда gpgsm listkeys) записывают в файловый дескриптор, заданный последней командой OUTPUT. Если значение равно 0, запись производится через строки данных; это исходное значение.

with-validation

Если значение аргумента не равно 0, для каждого перечисленного сертификата выводится состояние проверки. Это может приводить к получению списка отозванных сертификатов по сети или запросу пользователя о доверии к корневому сертификату. Исходное значение задается параметром командной строки (см. параметр gpgsm --with-validation).

with-secret

Если значение аргумента не равно 0, сертификаты с соответствующим секретным ключом отмечаются в выводимых списках.

validation-model

Этим параметром отменяется параметр командной строки validation-model для сеанса. (See параметр gpgsm --validation-model.)

with-key-data

Этим параметром глобально включается параметр командной строки --with-key-data. (See параметр gpgsm --with-key-data.)

enable-audit-log

Если значение аргумента не равно 0, данные для записи в аудиторский след собираются. (See команда gpgsm getauditlog.)

allow-pinentry-notify

Если задан этот параметр, в программу-клиент передаются уведомления о запуске программы ввода пароля.

with-ephemeral-keys

Если значение аргумента не равно 0, одноразовые сертификаты включаются в перечисления ключей.

no-encrypt-to

Если задан этот параметр, все ключи, заданные параметром командной строки --encrypt-to, игнорируются.

offline

Если параметр не равен 0 или не задан, всякий доступ к сети на время текущего сеанса прекращается. То же самое, что параметр командной строки --disable-dirmngr.


Следующий: , Пред: , Вверх: Верх   [Содержание][Указатель]

6 Вызов SCDAEMON

Программа scdaemon представляет демон (программу фонового режима) для управления электронными картами. Обычно он вызывается программой gpg-agent и напрямую не применяется.

Указатель параметров содержит список команд и параметров scdaemon.


Следующий: , Вверх: Вызов SCDAEMON   [Содержание][Указатель]

6.1 Команды

Команды отличаются от параметров только тем, что в вызове допустима только одна команда (если в описании команды не указано иное).

--version

Вывести версию программы и лицензионные сведения. Эту команду нельзя сокращать (напр., как --versio).

--help, -h

Вывести подсказку по наиболее полезным параметрам командной строки. Эту команду нельзя сокращать (напр., как --hel).

--dump-options

Вывести список всех имеющихся параметров и команд. Эту команду нельзя сокращать (напр., как --dump-option).

--server

Работать в режиме сервера, ожидая команды со стандартного потока ввода. В исходном режиме создается сокет и команды читаются оттуда.

--multi-server

Работать в режиме сервера, ожидая команды по стандартному потоку ввода, а также по дополнительному сокету домена Unix. Для получения имени этого сокета можно воспользоваться командой GETINFO.

--daemon

Выполняться в фоновом режиме. Этот параметр требуется, чтобы предотвратить непреднамеренный перевод в фоновый режим.


Следующий: , Пред: , Вверх: Вызов SCDAEMON   [Содержание][Указатель]

6.2 Сводка параметров

--options файл

Читает настройки из заданного файла вместо исходного файла настроек пользователя. Исходный файл настроек под названием scdaemon.conf находится в каталоге .gnupg, который находится непосредственно в домашнем каталоге пользователя.

--homedir каталог

Задать домашний каталог. Если этот параметр не используется, за домашний каталог принимается ~/.gnupg. Параметр учитывается только в командной строке. Он отменяет также любой домашний каталог, указанный в переменной среды GNUPGHOME или (в системах Windows) в пункте реестра HKCU\Software\GNU\GnuPG:HomeDir.

В системах Windows GnuPG можно установить как переносное приложение. В этом случае рассматривается только этот параметр командной строки, все другие способы задания домашнего каталога отключаются.

Для установки GnuPG в качестве переносного приложения под Windows создайте пустой файл под названием gpgconf.ctl в одном каталоге с gpgconf.exe. Тогда верхним каталогом установки будет этот каталог; или, если gpgconf.exe установлен непосредственно в каталоге под названием bin, на один уровень выше. Нужно также проверить, что следующие каталоги существуют и в них разрешена запись: ROOT/home для домашнего каталога GnuPG и ROOT/usr/local/var/cache/gnupg для внутренних буферных файлов.

-v
--verbose

Выводит во время работы дополнительную информацию. Объем информации можно увеличивать, вводя параметр несколько раз, например, ‘-vv’.

--debug-level уровень

Выбрать уровень отладки для исследования проблем. Аргумент может быть числом либо ключевым словом:

none

Никаких отладочных сообщений. Соответствует значениям, меньшим 1.

basic

Некоторые простые отладочные сообщения. Соответствует значениям от 1 до 2.

advanced

Более подробные отладочные сообщения. Соответствует значениям от 3 до 5.

expert

Еще более подробные сообщения. Соответствует значениям от 6 до 8.

guru

Все отладочные сообщения, какие только есть. Соответствует значениям, большим 8.

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

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

--debug признаки

Этот параметр полезен только для отладки, его значение может меняться в любое время без объявления. Признаки кодируются по битам и задаются обычным синтаксисом Си. В настоящее время определены биты:

0 (1)

ввод-вывод команд

1 (2)

значения длинных чисел

2 (4)

криптографические операции низкого уровня

5 (32)

выделение памяти

6 (64)

буферизация

7 (128)

показывать статистику памяти

9 (512)

записывать хешируемые данные в файлы с именами dbgmd-000*

10 (1024)

отслеживать протокол Assuan. См. также параметр --debug-assuan-log-cats.

11 (2048)

отслеживать ввод-вывод единиц данных на карте. Это может раскрыть важные данные.

12 (4096)

отслеживать вызовы некоторых функций, связанных с устройством чтения карты.

--debug-all

То же, что --debug=0xffffffff

--debug-wait n

При работе в серверном режиме подождать указанное число секунд перед входом в цикл обработки и выводить идентификатор процесса. За это время можно подключить отладчик.

--debug-ccid-driver

Включить отладочный вывод из собственного драйвера CCID для электронных карт. Если параметр задан дважды, включается также некоторое отслеживание протокола T=1. Обратите внимание, что этот параметр может раскрыть важные данные.

--debug-disable-ticker

Этот параметр выключает все периодические функции, такие как поиск новых карт.

--debug-allow-core-dump

По соображениям безопасности мы не выводим дамп памяти. В целях отладки иногда лучше это позволить. Этот параметр включает вывод дампа, а также меняет рабочий каталог на /tmp при работе в режиме --server.

--debug-log-tid

Добавляет идентификаторы процесса и потока управления в протокол работы.

--debug-assuan-log-cats категории

Изменяет действующие категории протоколирования Libassuan. Значение аргумента представляет целое без знака в обычном синтаксисе Си. Значение 0 переключает на исходную категорию. Если параметр не задан, категории берутся из переменной среды ASSUAN_DEBUG. Обратите внимание, что этот параметр действует, только если параметром --debug был установлен признак отладки Assuan. Список категорий см. в руководстве по Libassuan.

--no-detach

Не отрывать процесс от консоли. Это полезно главным образом для отладки.

--log-file файл

Дописывать весь протокол работы в указанный файл. Это очень полезно, когда нужно понять, что же делает программа. Укажите socket://, если нужно протоколировать в сокет.

--pcsc-driver библиотека

Использовать указанную библиотеку для доступа к устройству чтения электронных карт. В настоящее время исходное значение равно libpcsclite.so. Вместо этого параметра можно создать символическую ссылку на исходное имя файла (напр., из libpcsclite.so.1).

--ctapi-driver библиотека

Использовать указанную библиотеку для доступа к устройству чтения электронных карт. В настоящее время исходное значение равно libtowitoko.so. Обратите внимание, что этот интерфейс не рекомендован к употреблению; в будущих выпусках GnuPG он может быть удален.

--disable-ccid

Выключить интегрированную поддержку устройств чтения, совместимых с CCID. Это позволяет использовать в качестве запасного варианта один из других драйверов, даже если внутренний драйвер CCID может работать с устройством чтения. Обратите внимание, что поддержка CCID есть, только если libusb присутствовала во время компиляции.

--reader-port число или строка

Этим параметром можно задавать порт терминала карты. Число 0 указывает на первое последовательное устройство; добавьте 32768 для устройств USB. Исходное значение равно 32768 (первое устройство USB). Для устройств чтения PC/SC или CCID здесь может потребоваться строка; чтобы получить список имеющихся устройств чтения, запустите программу с параметром --verbose. Тогда исходное значение соответствует первому найденному устройству чтения.

Получить список имеющихся устройств чтения CCID можно такой командой:

  echo scd getinfo reader_list \
    | gpg-connect-agent --decode | awk '/^D/ {print $2}'
--card-timeout n

Если аргумент не равен 0 и никакая программа-клиент активно не пользуется картой, через указанное количество секунд с карты снимается питание. Это предотвращает потенциальный риск повреждения карты в определенных дешевых устройствах чтения. Это позволяет также приложениям, которым неизвестно о scdaemon, получить доступ к карте. Недостаток такого выключения состоит в том, что доступ к карте замедляется и что пользователю нужно заново вводить пароль после следующего включения.

Обратите внимание, что в текущей версии scdaemon карта выключается немедленно на следующем цикле таймера при любом значении аргумента, отличном от 0.

--enable-pinpad-varlen

Указывайте этот параметр, пожалуйста, когда устройство чтения карт поддерживает ввод данных переменной длины с кнопок для ввода пароля (по умолчанию не поддерживает). Для известных устройств чтения (перечисленных в ccid-driver.c и adpu.c) этот параметр не нужен. Обратите внимание, что если ваше устройство чтения карт не поддерживает ввод данных переменной длины, но вы хотите этим пользоваться, вам нужно указать запрос к набору кнопок на вашей карте.

--disable-pinpad

Даже если в устройстве чтения карт есть кнопки ввода пароля, не пытаться ими пользоваться.

--deny-admin

Этот параметр отключает у приложений электронных карт команды административного класса, когда это поддерживается. В настоящее время мы поддерживаем это для карт OpenPGP. Этот параметр полезен, чтобы предотвратить случайный доступ к команде административного класса, которая могла бы заблокировать карту с помощью неверных значений пароля. Обратите внимание, что в версиях GnuPG старше 2.0.11 был параметр --allow-admin, который требовался для таких административных команд. Сейчас этот параметр больше не действует, потому что административные команды по умолчанию допускаются.

--disable-application название

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

Все длинные параметры можно размещать также в файле настроек, удалив начальные символы «–».


Следующий: , Пред: , Вверх: Вызов SCDAEMON   [Содержание][Указатель]

6.3 Описание приложений карт

scdaemon поддерживает описанные ниже приложения карт.


Следующий: , Вверх: Приложения карт   [Содержание][Указатель]

6.3.1 Приложение карты OpenPGP «openpgp»

Это приложение в настоящее время применяется только программой gpg, но в будущем может быть полезно с gpgsm. Поддерживаются версии карты 1 и 2.

Спецификации этих карт можно взять в
http://g10code.com/docs/openpgp-card-1.0.pdf и
http://g10code.com/docs/openpgp-card-2.0.pdf.


Следующий: , Пред: , Вверх: Приложения карт   [Содержание][Указатель]

6.3.2 Карта Telesec NetKey «nks»

Это главное приложение карт Telesec, доступных в Германии. Это надмножество немецких карт DINSIG. Карта применяется в gpgsm.


Следующий: , Пред: , Вверх: Приложения карт   [Содержание][Указатель]

6.3.3 Карта DINSIG «dinsig»

Это приложение, описанное в предварительном немецком стандарте DIN V 66291-1. Оно предназначено для карт, поддерживающих немецкий закон о подписи, а также его подзаконные акты (SigG и SigV).


Следующий: , Пред: , Вверх: Приложения карт   [Содержание][Указатель]

6.3.4 Приложение карты PKCS#15 «p15»

Это общий каркас для приложений электронных карт. Он применяется в gpgsm.


Следующий: , Пред: , Вверх: Приложения карт   [Содержание][Указатель]

6.3.5 Приложение карты Geldkarte «geldkarte»

Простое приложение для отображения информации с немецкой Geldkarte. Geldkarte представляет приложение карты для небольших дебетовых счетов, которое присутствует почти на всех немецких банковских картах.


Следующий: , Пред: , Вверх: Приложения карт   [Содержание][Указатель]

6.3.6 Приложение карты SmartCard-HSM «sc-hsm»

Это приложение подключает поддержку чтения (без возможности записи) ключей и сертификатов, хранящихся на SmartCard-HSM.

Для создания и хранения сертификатов можно воспользоваться OpenSC или средствами OpenSCDP.

Карты SmartCard-HSM требуют устройства чтения, которое поддерживает единицы данных повышенной длины.


Пред: , Вверх: Приложения карт   [Содержание][Указатель]

6.3.7 Приложение неопределенной карты «undefined»

Это приложение-заглушка, которая позволяет пользоваться командами протокола, даже если на карте не найдены никакие из поддерживаемых приложений. Автоматически это приложение не используется, его нужно запрашивать явным образом с помощью команды SERIALNO.


Следующий: , Пред: , Вверх: Вызов SCDAEMON   [Содержание][Указатель]

6.4 Файлы настроек

Есть несколько файлов настроек для управления определенными аспектами работы scdaemon. Если специально не оговорено, они располагаются в текущем домашнем каталоге (см. параметр --homedir).

scdaemon.conf

Это обычный файл настроек, который gpgsm читает при запуске. В нем могут быть только допустимые длинные параметры; символов «–» перед названием параметра быть не должно, сокращать параметры нельзя. Это исходное имя файла можно изменить в командной строке (см. параметр --options).

scd-event

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

reader_n.status

Этот файл создается программой scdaemon, чтобы уведомлять другие приложения об изменениях состояния устройств чтения карт. В настоящее время вместо него рекомендуется применять scd-event.


Следующий: , Пред: , Вверх: Вызов SCDAEMON   [Содержание][Указатель]

6.5 Примеры

$ scdaemon --server -v

Пред: , Вверх: Вызов SCDAEMON   [Содержание][Указатель]

6.6 Протокол Assuan Scdaemon

Программа scdaemon должна запускаться системой для обеспечения доступа к электронным картам. На многопользовательской системе пользоваться электронными картами есть смысл только для системных служб, но в этом случае учетные записи обычных пользователей на машине не ведутся.

Программа-клиент подключается к scdaemon по сокету с именем /usr/local/var/run/gnupg/scdaemon/socket, информация о настройках считывается из /usr/local/etc/gnupg/scdaemon.conf

Каждое подключение работает как один сеанс, scdaemon обеспечивает синхронизацию доступа к электронной карте между сеансами.


Следующий: , Вверх: Протокол Scdaemon   [Содержание][Указатель]

6.6.1 Вернуть серийный номер

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

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

  SERIALNO

Вернуть серийный номер карты в ответе вида:

  S SERIALNO D27600000000000000000000

Серийный номер представляет шестнадцатеричное число, на которое указывает метка 0x5A в файле GDO (FIX=0x2F02).


Следующий: , Пред: , Вверх: Протокол Scdaemon   [Содержание][Указатель]

6.6.2 Считать с карты всю полезную информацию

  LEARN [--force]

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

      INQUIRE KNOWNCARDP <шестнадцатеричный серийный номер>

Программа-клиент должна отослать END, если обработку нужно проводить, или CANCEL, чтобы принудительно завершить команду с сообщением об отмене. В ответ на эту команду выдается список строк состояния такого вида:

     S KEYPAIRINFO код ключа шестнадцатеричный идентификатор

Если на карте пока не хранится ни одного сертификата, на месте кода ключа возвращается одиночный символ «X».


Следующий: , Пред: , Вверх: Протокол Scdaemon   [Содержание][Указатель]

6.6.3 Вернуть сертификат

 READCERT шестнадцатеричный идентификатор сертификата|идентификатор ключа

Эта функция предназначена для чтения с карты указанного сертификата. Для чтения с карт OpenPGP версии 2 можно пользоваться идентификатором ключа OpenPGP.3.


Следующий: , Пред: , Вверх: Протокол Scdaemon   [Содержание][Указатель]

6.6.4 Вернуть открытый ключ

READKEY шестнадцатеричный идентификатор сертификата

Вернуть открытый ключ данного сертификата или идентификатора ключа в виде S-выражения.


Следующий: , Пред: , Вверх: Протокол Scdaemon   [Содержание][Указатель]

6.6.5 Подпись данных с помощью электронной карты

Для подписи данных нужно передать их в scdaemon командой

 SETDATA шестнадцатеричная строка

Данные передаются в шестнадцатеричном виде. Сама подпись осуществляется командой

  PKSIGN идентификатор ключа

Здесь идентификатор ключа дается в шестнадцатеричном виде. Идентификаторы можно получить командой LEARN. Если используется не SHA-1, алгоритм задается параметром --hash:

  PKSIGN --hash=алгоритм идентификатор ключа

В качестве аргумента могут быть строки sha1, rmd160 и md5.


Следующий: , Пред: , Вверх: Протокол Scdaemon   [Содержание][Указатель]

6.6.6 Расшифровка данных с помощью электронной карты

Данные для расшифровки передаются в scdaemon командой

 SETDATA шестнадцатеричная строка

Данные представляются в шестнадцатеричной записи. Сама расшифровка осуществляется командой

  PKDECRYPT идентификатор ключа

Здесь идентификатор ключа дается в шестнадцатеричном виде.

Если карта может работать с заполнениями, перед расшифрованными данными посылается строка состояния с информацией о заполнении. Эта строка состояния содержит ключевое слово PADDING с единственным определенным значением, равным 0, которое указывает на то, что заполняющие символы удалены.


Следующий: , Пред: , Вверх: Протокол Scdaemon   [Содержание][Указатель]

6.6.7 Прочесть значение атрибута

ПРОДОЛЖЕНИЕ СЛЕДУЕТ.


Следующий: , Пред: , Вверх: Протокол Scdaemon   [Содержание][Указатель]

6.6.8 Обновить значение атрибута

ПРОДОЛЖЕНИЕ СЛЕДУЕТ.


Следующий: , Пред: , Вверх: Протокол Scdaemon   [Содержание][Указатель]

6.6.9 Записать ключ на карту

  WRITEKEY [--force] идентификатор ключа

Эта команда предназначена для сохранения секретного ключа на электронной карте. Допустимые идентификаторы ключа зависят от выбранного в данный момент приложения электронной карты. Сами данные ключа пересылаются по запросу KEYDATA и должны вводиться безо всякой защиты. Если задан параметр --force, новый ключ будет записывается поверх старого ключа с указанным идентификатором. Данные ключа должны быть в канонической кодировке S-выражения.

В большинстве случаев будет запрошен пароль. Однако это зависит от текущего приложения карты.


Следующий: , Пред: , Вверх: Протокол Scdaemon   [Содержание][Указатель]

6.6.10 Создать на карте новый ключ

ПРОДОЛЖЕНИЕ СЛЕДУЕТ.


Следующий: , Пред: , Вверх: Протокол Scdaemon   [Содержание][Указатель]

6.6.11 Вернуть случайные байты, сгенерированные на карте

ПРОДОЛЖЕНИЕ СЛЕДУЕТ.


Следующий: , Пред: , Вверх: Протокол Scdaemon   [Содержание][Указатель]

6.6.12 Изменить пароли

   PASSWD [--reset] [--nullpin] номер вектора

Сменить пароль или сбросить счетчик попыток с указанного номера вектора проверок владельца карты. Параметром --nullpin инициализируются пароли карт TCOS (только с 6-байтным NullPIN).


Следующий: , Пред: , Вверх: Протокол Scdaemon   [Содержание][Указатель]

6.6.13 Выполнить проверку

  CHECKPIN строка-идентификатор

Выполнить операцию проверки VERIFY, не делая ничего другого. Это можно использовать для инициализации буфера паролей перед длительными операциями. Команда сильно зависит от приложения:

OpenPGP

Выполняется простая проверка для векторов 1 и 2, чтобы при дальнейших операциях вектор 2 не запрашивался и можно было проводить облегченную проверку пароля: если в системе ввода пароля что-то не так, блокируются только обычные векторы, но не опасный вектор 3. Строка-идентификатор представляет обычный серийный номер карты в шестнадцатеричной записи; необязательная часть с отпечатком игнорируется.

Однако если строка-идентификатор содержит суффикс [CHV3], происходит переход в особый режим: в этом случае административный пароль проверяется, если и только если счетчик попыток остается равным 3.


Следующий: , Пред: , Вверх: Протокол Scdaemon   [Содержание][Указатель]

6.6.14 Выполнить переподключение

  RESTART

Перезапустить текущее подключение; это своего рода теплый перезапуск. При этом удаляется контекст, использованный в текущем подключении, но сама карта не перезапускается.

Это применяется в gpg-agent для повторного использования первичного подключения по каналу ввода-вывода и может использоваться программами-клиентами для восстановления после конфликта в последовательной команде, т.е. для выбора другого приложения.


Пред: , Вверх: Протокол Scdaemon   [Содержание][Указатель]

6.6.15 Отправить на карту единицу данных буквально

  APDU [--atr] [--more] [--exlen[=n]] [шестнадцатеричная строка]

Отправить в текущее устройство чтения карт единицу данных. Эта команда обходит функции высокого уровня и посылает данные в карту напрямую. Шестнадцатеричная строка должна представлять правильную единицу данных. Если строка не задана, команды на карту не отправляются; однако команда неявно проверяет, готова ли карта к использованию.

Если задан параметр --atr, перед любыми данными в качестве сообщения о состоянии карты возвращается ATR карты в виде:

     S CARD-ATR 3BFA1300FF813180450031C173C00100009000B1

С помощью параметра --more можно обрабатывать слово состояния карты MORE_DATA (61xx), связывая ответы в единый блок.

Если задан параметр --exlen, возвращаемые единицы данных могут удлиняться до N байт. Если N не задано, подразумевается исходное значение (в настоящее время 4096).


Следующий: , Пред: , Вверх: Верх   [Содержание][Указатель]

7 Как задать идентификатор пользователя

В GnuPG есть разные способы задать идентификатор пользователя. Некоторые допустимы только для gpg, другие — только для gpgsm. Вот полный список способов указать ключ:

Обратите внимание, что мы изменили значение символа «#», который в старых версиях обозначал так называемые местные идентификаторы. Они больше не применяются, так что противоречия с материалами X.509 быть не должно.

Недостаток пользования форматом RFC-2253 для DN состоит в том, что преобразовать их в исходную кодировку невозможно, однако нам это не требуется, потому что в нашей базе данных ключей эта кодировка хранится в качестве сопутствующих данных.


Следующий: , Пред: , Вверх: Верх   [Содержание][Указатель]

8 Вспомогательные средства

В GnuPG есть несколько небольших программ:


Следующий: , Вверх: Вспомогательные средства   [Содержание][Указатель]

8.1 Чтение запротоколированных данных из сокета

Большинство основных утилит способно записывать файлы протоколов своей работы в сокет домена Unix, если это задано настройками. watchgnupg представляет простую программу прослушивания такого сокета. Она обогащает выходные данные временными метками и гарантирует, что длинные строки не перемешиваются с данными, исходящими от других утилит. Под Windows это средство недоступно.

watchgnupg обычно вызывается как

watchgnupg --force $(gpgconf --list-dirs socketdir)/S.log

Программа запускается в текущем терминале для прослушивания сконфигурированного сокета протоколирования (~/.gnupg/S.log или /var/run/user/UID/gnupg/S.log).

watchgnupg воспринимает параметры:

--force

Удалить файл сокета, если тот существует.

--tcp n

Вместо чтения из локального сокета прослушивать соединения по порту TCP n.

--time-only

Не выводить дату в метке времени.

--verbose

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

--version

Вывести версию программы и завершить работу.

--help

Показать краткую справку и завершить работу.

Примеры

$ watchgnupg --force --time-only $(gpgconf --list-dirs socketdir)/S.log

Ждать соединений по локальному сокету (напр., /home/foo/.gnupg/S.log) и показывать все записи протокола работы. Для этого нужно использовать параметр log-file со всеми модулями, протоколы работы которых нужно показывать. Пример записи для файлов настроек:

log-file socket://

Если исходный сокет, заданный выше и возвращаемый командой «echo $(gpgconf –list-dirs socketdir)/S.log», нежелателен, можно указать любое произвольное имя сокета, например, socket:///home/foo/bar/mysocket. В целях отладки можно выполнять также удаленное протоколирование. Пользуйтесь этим с осторожностью, поскольку информация посылается по сети открытым текстом. Для этого в файле настроек размещается строка вида:

log-file tcp://192.168.1.1:4711

Вместо порта 4711 можно пользоваться любым другим портом; поддерживаются только адреса IP (версий 4 и 6), имена машин не поддерживаются. Команду watchgnupg нужно вызывать с параметром tcp. Обратите внимание, что под Windows для изменения исходного канала, в который выводится протокол работы (stderr), можно применять пункт реестра HKCU\Software\GNU\GnuPG:DefaultLogFile. Однако это может быть полезно, только когда пункт содержит адрес TCP для удаленной отладки.


Следующий: , Пред: , Вверх: Вспомогательные средства   [Содержание][Указатель]

8.2 Проверка подписей OpenPGP

gpgv2 — средство проверки подписей OpenPGP.

В действительности эта программа представляет урезанную версию gpg, которая может только проверять подписи. Она несколько меньше, чем полноразмерная gpg и пользуется другим (более простым) способом проверки того, что открытые ключи, которыми сделана подпись, достоверны. У нее нет файлов настроек и мало параметров.

gpgv2 предполагает, что всем ключам в таблице ключей можно доверять. Это, кроме прочего, означает, что программа не проверяет отзывы и сроки действия ключей.

По умолчанию используется таблица ключей trustedkeys.kbx; если ее не существует, используется таблица ключей trustedkeys.gpg. Предполагается, что таблицы находятся в домашнем каталоге GnuPG (исходном или заданном с помощью параметра или переменной среды). Другую таблицу ключей (и даже несколько таблиц ключей) можно задать параметром --keyring.

gpgv2 принимает параметры:

--verbose
-v

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

--quiet
-q

Стараться выводить на экран как можно меньше.

--keyring файл

Добавить аргумент к списку таблиц ключей. Если аргумент начинается с тильды и косой черты, они заменяются на каталог HOME. Если имя файла не содержит косой черты, предполагается, что файл находится в домашнем каталоге (~/.gnupg, если не задан –homedir).

--output файл
-o файл

Выводить данные в указанный файл; для записи в стандартный поток вывода укажите -. Этот параметр можно применять, чтобы выделить подписанный текст из текстовой или двоичной подписи; он действует и с отделенными подписями, но в этом случае параметр в общем не полезен. Обратите внимание, что если файл существует, то он будет перезаписан.

--status-fd n

Записывать специальные диагностические сообщения в файл с указанным дескриптором. Документацию по этим строкам см. в файле DETAILS.

--logger-fd n

Писать отчет о ходе работы в файл с указанным дескриптором, а не в стандартный поток ошибок.

--logger-file файл

То же, что --logger-fd, но отчет записывается в файл. С помощью socket:// можно записывать в сокет.

--ignore-time-conflict

Обычно GnuPG проверяет, что метки времени, связанные с ключами и подписями, лежат в разумных пределах. Однако иногда подпись кажется старше ключа из-за проблем с часами. Если задан этот параметр, такие проверки приводят только к предупреждениям.

--homedir каталог

Задать домашний каталог. Если этот параметр не используется, за домашний каталог принимается ~/.gnupg. Параметр учитывается только в командной строке. Он отменяет также любой домашний каталог, указанный в переменной среды GNUPGHOME или (в системах Windows) в пункте реестра HKCU\Software\GNU\GnuPG:HomeDir.

В системах Windows GnuPG можно установить как переносное приложение. В этом случае рассматривается только этот параметр командной строки, все другие способы задания домашнего каталога отключаются.

Для установки GnuPG в качестве переносного приложения под Windows создайте пустой файл под названием gpgconf.ctl в одном каталоге с gpgconf.exe. Тогда верхним каталогом установки будет этот каталог; или, если gpgconf.exe установлен непосредственно в каталоге под названием bin, на один уровень выше. Нужно также проверить, что следующие каталоги существуют и в них разрешена запись: ROOT/home для домашнего каталога GnuPG и ROOT/usr/local/var/cache/gnupg для внутренних буферных файлов.

--weak-digest название

Считать указанный алгоритм слабым. Подписи, выполненные с помощью слабых алгоритмов хеша, обычно отвергаются. Этот параметр можно вводить несколько раз, если слабыми должны считаться несколько алгоритмов. MD5 всегда считается слабым, так что его не нужно перечислять в явном виде.

--enable-special-filenames

Этот параметр включает режим, в котором имена файлов в форме -&n, где n — неотрицательное десятичное число, указывают на файловый дескриптор n, а не на файл с таким именем.

Программа возвращает 0, если все прошло успешно, 1 — если хотя бы одна подпись была неверна, другие коды ошибок при неустранимых сбоях.

8.2.1 Примеры

gpgv2 файл PGP
gpgv2 файл подписи [файл данных]

Проверить подпись файла, но не выводить данные. Вторая форма применяется для отделенных подписей, где файл подписи — отделенная подпись (в двоичном или текстовом формате), а файл данных — подписанные данные (если это «-», данные берутся из стандартного потока ввода); если второй аргумент не задан, имя файла данных определяется отбрасыванием расширения («.asc», «.sig» или «.sign») от имени файла подписи.

8.2.2 Переменные среды

HOME

Используется для определения исходного домашнего каталога.

GNUPGHOME

Если задана, используется вместо ~/.gnupg.

8.2.3 ФАЙЛЫ

~/.gnupg/trustedkeys.gpg

Исходная таблица ключей с разрешенными ключами.

gpg2(1)


Следующий: , Пред: , Вверх: Вспомогательные средства   [Содержание][Указатель]

8.3 Создание домашних каталогов .gnupg

Если GnuPG устанавливается в системе с существующими учетными записями пользователей, иногда требуется заполнить домашний каталог GnuPG существующими файлами. Часто особенно желательны некоторые первоначальные сертификаты в trustlist.txt и щите с ключами. Эта программа помогает в этом, копируя все файлы из /etc/skel/.gnupg в домашние каталоги учетных записей, заданных в командной строке. При этом запись поверх существующих домашних каталогов GnuPG не производится.

addgnupghome вызывается от имени суперпользователя командой:

addgnupghome учетная_запись_1 учетная_запись_2 ... учетная_запись_n

Следующий: , Пред: , Вверх: Вспомогательные средства   [Содержание][Указатель]

8.4 Изменение домашних каталогов .gnupg

Утилита gpgconf предназначена для автоматического и относительно безопасного чтения и модификации файлов настроек в домашнем каталоге .gnupg. Она проектирована не для выполнения пользователем вручную, а для автоматического запуска графическими оболочками3.

Программа gpgconf обеспечивает доступ к настройкам одного или более компонентов системы GnuPG. Эти компоненты более или менее соответствуют программам, составляющим каркас GnuPG, таким как GPG, GPGSM, Dirmngr и т.д. Но строгого соответствия нет. Не все параметры настроек доступны через gpgconf. Программа gpgconf обеспечивает обобщенный и абстрактный метод доступа к тем из наиболее важных параметров настроек, которыми на практике можно управлять посредством такого механизма.

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

Средство gpgconf представляет служебную программу для редактора настроек. Редактор настроек обычно является графической программой, которая отображает текущие параметры с их исходными значениями и позволяет пользователю вносить в параметры изменения. Эти изменения затем можно активизировать новым вызовом gpgconf. Программа, которая пользуется gpgconf таким образом, в этом разделе будет называться пользовательской оболочкой.


Следующий: , Вверх: gpgconf   [Содержание][Указатель]

8.4.1 Вызов gpgconf

Должна быть задана одна из команд:

--list-components

Перечислить все компоненты. Эта команда выполняется, если ни одна команда не указана.

--check-programs

Перечислить все доступные служебные программы и проверить, можно ли их вызывать.

--list-options компонент

Перечислить все параметры указанного компонента.

--change-options компонент

Изменить параметры указанного компонента.

--check-options компонент

Проверить параметры указанного компонента.

--apply-profile файл

Применить настройки, перечисленные в указанном файле, к файлам конфигурации. Если в аргументе файл нет суффикса и символов «/», сначала производится попытка считать файл с суффиксом .prf из каталога данных (gpgconf --list-dirs datadir); в случае неудачи имя файла воспринимается буквально. Названия компонентов в квадратных скобках делят настройки на группы. В каждой группе указывается параметр, который должен перейти в соответствующий файл настроек.

--apply-defaults

Записать во все файлы настроек значения, взятые из глобального файла настроек (обычно это /etc/gnupg/gpgconf.conf).

--list-dirs [имена]

Перечислить каталоги, которыми пользуется gpgconf. Перечисляется по одному каталогу в строке, каждая строка состоит из списка с двоеточием в качестве разделителя, в котором первое поле представляет тип каталога (например, sysconfdir), а второе — каталог с процентом в качестве экранирующего символа. Выводятся также имена сокетов для gpg-agent и dirmngr, хотя это и не каталоги. Обратите внимание, что имена сокетов и строки homedir представляют исходные значения, их можно изменять параметрами командной строки. Если заданы имена, выводятся только имена каталогов или файлов, указанные в списке имен, без экранирующих символов.

--list-config [имя_файла]

Вывести глобальный файл настроек в формате с двоеточием в качестве разделителя. Если задано имя файла, работать с ним вместо глобального файла настроек.

--check-config [имя_файла]

Провести проверку синтаксиса глобального файла настроек. Если задано имя файла, работать с ним вместо исходного глобального файла настроек.

--query-swdb пакет [версия]

Возвращает текущую версию указанного пакета, а если задана строка версия, показывает, доступно ли обновление. Сам файл с версией программы автоматически получается по сети и проверяется программой dirmngr; при этом установлен порог, чтобы это не происходило слишком часто, и по умолчанию это делается только через Tor. Чтобы принудительно обновить этот файл, можно воспользоваться командой:

       gpg-connect-agent --dirmngr 'loadswdb --force' /bye
--reload [компонент]

Перезагрузить все или заданный компонент. В основном это эквивалентно посылке компоненту сигнала SIGHUP. Компоненты, которые не поддерживают перезагрузку, игнорируются. Если компонент не задан или задано «all», перезагружаются все компоненты, работающие в фоновом режиме.

--launch [компонент]

Если указанный компонент еще не работает, запустить его. Компонент должен поддерживать работу в фоновом режиме. Обычно команда не требуется, поскольку система запускает эти процессы по мере необходимости. Однако внешняя программа, использующая напрямую gpg-agent или dirmngr, может воспользоваться этой командой, чтобы гарантировать, что они запущены. Если в качестве аргумента компонент задано «all», запускаются все компоненты, работающие в фоновом режиме.

--kill [компонент]

Завершить работу заданного компонента. Это поддерживают компоненты gpg-agent и scdaemon. Компоненты, которые этого не поддерживают, игнорируются. Если в качестве аргумента компонент задано «all», завершаются все компоненты, работающие в фоновом режиме. Обратите внимание, что на настоящий момент для scdaemon завершение эквивалентно перезагрузке.

--create-socketdir

Создать каталог для сокетов в /run/user или /var/run/user. Эта команда нужна, только если применяется отличный от исходного домашний каталог, а сокеты должны находиться в /run. В исходном домашнем каталоге GnuPG создает каталог на ходу.

--remove-socketdir

Удалить каталог, созданный командой --create-socketdir.

Можно использовать параметры:

-o файл
--output файл

Выводить данные в указанный файл. По умолчанию вывод производится в стандартный поток вывода.

-v
--verbose

Выводить при работе дополнительную информацию, а именно, численные значения дополняются описаниями для человека.

-q
--quiet

Стараться выводить на экран как можно меньше.

-n
--dry-run

Ничего не менять. Пока это реализовано только для --change-options и может использоваться в целях отладки.

-r
--runtime

Используется только с --change-options. Если один из измененных параметров можно изменить в фоновом процессе, отправить процессу сигнал о перезагрузке файла настроек после изменений.

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


Следующий: , Пред: , Вверх: gpgconf   [Содержание][Указатель]

8.4.2 Формат

Некоторые строки в данных на выходе gpgconf содержат список полей, разделенных двоеточием. Установлены следующие соглашения:

Для данных поля определено несколько типов:

буквальные

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

экранированные процентом

В некоторых полях содержатся строки, которые описываются как экранированные процентом. Из таких строк нужно удалять экранирующие символы перед представлением их пользователю. В этих строках все последовательности %XY заменяются байтом, представляющим шестнадцатеричное число XY. X и Y должны входить в множество 0-9a-f.

переводимые

В некоторых полях содержатся строки, которые описываются как переводимые. Такие строки переводятся на действующий язык и форматируются в действующей кодировке.

беззнаковое число

Такие поля содержат неотрицательное число. Это число всегда находится в пределах 32 бит без знака. За числом может следовать пробел с предназначенным для человека описанием величины (если задан параметр --verbose). Все, что следует за числом, нужно игнорировать.

число со знаком

Такие поля содержат число со знаком. Это число всегда находится в пределах 32 бит со знаком. За числом может следовать пробел с предназначенным для человека описанием величины (если задан параметр --verbose). Все, что следует за числом, нужно игнорировать.

логическая величина

Такие поля содержат логическую величину. Это число, равное 0 или 1. За числом может следовать пробел с предназначенным для человека описанием величины (если задан параметр --verbose). Все, что следует за числом, нужно игнорировать.

аргумент параметра

Такие поля содержат аргумент параметра. Формат аргумента зависит от параметра и нескольких признаков:

без аргумента

В простейшем случае параметр вообще не требует аргумента (тип 0). Тогда аргумент представляет беззнаковое число, которое указывает, сколько раз задан параметр. Если не установлен признак список, аргумент может быть равен только 1. У параметров без аргументов не могут быть установлены признаки исходное и необязательный аргумент.

число

Если параметр сопровождается числовым аргументом (доп-тип равен 2 или 3) и может задаваться только один раз (признак список не установлен), то аргумент параметра либо пуст (допустимо, только когда аргумент не обязателен), либо является числом. Число — это строка, которая начинается с необязательного знака минуса, за которым следует одна или более цифр. Число должно умещаться в целую переменную (беззнаковую или со знаком, в зависимости от значения доп-тип).

список чисел

Если параметр сопровождается числовым аргументом и может задаваться более одного раза, то аргумент параметра либо пуст, либо представляет список описанных выше чисел, разделенных запятыми.

строка

Если параметр сопровождается аргументом-строкой (доп-тип равен 1) и может задаваться только один раз (признак список не установлен), то аргумент параметра либо пуст (допустимо, только когда аргумент не обязателен), либо начинается с символа двойной кавычки ("), за которым следует экранированная процентом строка, представляющая значение аргумента. Обратите внимание, что открывающая кавычка есть, а закрывающей — нет. Символ двойной кавычки нужен только для того, чтобы отсутствие аргумента можно было отличать от пустой строки.

список строк

Если параметр сопровождается аргументом-строкой и может задаваться более одного раза, то аргумент параметра либо пуст, либо представляет список вышеописанных строковых аргументов, разделенных запятыми.

Действующий язык и кодировка в настоящее время определяются по переменным среды программы gpgconf.


Следующий: , Пред: , Вверх: gpgconf   [Содержание][Указатель]

8.4.3 Перечисление компонентов

Команда --list-components перечисляет компоненты, которые можно настраивать программой gpgconf. Обычно один компонент соответствует одной программе, относящейся к GnuPG, и содержит параметры файла настроек этой программы, которые можно изменять при посредстве gpgconf. Однако это не обязательно. Компонент может представлять также группу избранных параметров нескольких программ или содержать чисто умозрительные параметры, которые не соответствуют изменению в точности одного параметра в одном файле настроек.

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

Команда --list-components перечисляет все доступные компоненты по одному в строке вида:

имя:описание:имя программы:

имя

В этом поле содержится именная метка компонента. Она используется для указания компонента во всяком обмене с gpgconf. Именную метку следует использовать буквально. Таким образом, в ее формате нет никаких экранирующих символов.

описание

Это строка, в которой содержится предназначенное для человека описание компонента. Оно может отображаться в пользовательской оболочке в информационных целях. Оно экранировано процентом и переводимо.

имя программы

Это строка, в которой содержится абсолютный путь до файла программы. Строку можно применять для однозначного вызова этой программы. Она экранирована процентом.

Пример:

$ gpgconf --list-components
gpg:GPG для OpenPGP:/usr/local/bin/gpg2:
gpg-agent:Агент GPG:/usr/local/bin/gpg-agent:
scdaemon:Демон криптографических карт:/usr/local/bin/scdaemon:
gpgsm:GPG для S/MIME:/usr/local/bin/gpgsm:
dirmngr:Управление каталогами:/usr/local/bin/dirmngr:

Следующий: , Пред: , Вверх: gpgconf   [Содержание][Указатель]

8.4.4 Проверка программ

Команда --check-programs аналогична --list-components, но работает со служебными программами, а не компонентами. Она запускает каждую программу, чтобы проверить, что та установлена и может выполняться. При этом проводится также проверка синтаксиса всех параметров файла настройки этой программы.

Команда --check-programs перечисляет все доступные программы, по одному в строке вида:

имя:описание:имя программы:доступность:норма:файл настроек:строка:ошибка:

имя

В этом поле содержится именая метка программы, аналогичная имени компонента. Именную метку следует использовать буквально. Таким образом, в ее формате нет никаких экранирующих символов. Это поле может быть пустым, чтобы указать на то, что строка является продолжением описания ошибок, относящихся к последнему имени. В этом случае имя программы и описание тоже будут пустыми.

описание

Это строка, в которой содержится предназначенное для человека описание компонента. Оно может отображаться в пользовательской оболочке в информационных целях. Оно экранировано процентом и переводимо.

имя программы

Это строка, в которой содержится абсолютный путь до файла программы. Строку можно применять для однозначного вызова этой программы. Она экранирована процентом.

доступность

Это логическая величина, указывающая на то, что программа установлена и что ее можно выполнять.

норма

Это логическая величина, указывающая на то, что файл настроек программы не содержит синтаксических ошибок.

файл настроек

Если в файле настроек обнаружена ошибка (на которую указывает значение 0 в поле норма), то в этом поле находится имя файла с ошибкой. Оно экранировано процентом.

строка

Если в файле настроек обнаружена ошибка, в этом поле находится номер строки с ошибкой. Это беззнаковое число.

ошибка

Если в файле настроек обнаружена ошибка, в этом поле находится номер текст с описанием ошибки. Эта строка экранирована процентом и переводима.

В следующем примере dirmngr не запускается, а в файле настроек scdaemon ошибка.

$ gpgconf --check-programs
gpg:GPG для OpenPGP:/usr/local/bin/gpg2:1:1:
gpg-agent:Агент GPG:/usr/local/bin/gpg-agent:1:1:
scdaemon:Демон криптографических карт:/usr/local/bin/scdaemon:1:0:
gpgsm:GPG для S/MIME:/usr/local/bin/gpgsm:1:1:
dirmngr:Управление каталогами:/usr/local/bin/dirmngr:0:0:

Команда --check-options компонент проверяет файл настроек так же, как это делает --check-programs, но только для заданного компонента.


Следующий: , Пред: , Вверх: gpgconf   [Содержание][Указатель]

8.4.5 Перечисление параметров

Каждый компонент содержит один или более параметров. Параметры могут объединяться в группы, чтобы пользовательская оболочка могла подсказывать пользователю, какие параметры связаны друг с другом.

Команда --list-options компонент перечисляет все параметры (и группы, в которые они входят) заданного компонента по одному в строке. Компонент должен задаваться именем, которое выводится командой --list-components.

Каждая группа и каждый параметр выводятся в отдельной строке. Сначала идут все параметры, не входящие ни в одну из групп. Затем идет строка с описанием группы. После этого идут все параметры, входящие в эту группу. Дальше идет следующая группа и так далее. Групп может и не быть (в этом случае перечисление завершается выводом последнего параметра, не входящего ни в одну из групп).

Строки имеют вид:

имя:признаки:уровень:описание:тип:доп-тип:имя аргумента:исходное:исх.арг:значение

имя

В этом поле содержится именная метка группы или параметра. Она используется для указания группы или параметра во всяком обмене с gpgconf. Именную метку следует использовать буквально. Таким образом, в ее формате нет никаких экранирующих символов.

признаки

Поле содержит беззнаковое число. Его величина представляет побитовое ИЛИ следующих признаков:

группа (1)

Если установлен этот признак, строка описывает группу, а не параметр.

Следующие значения признаков определены только для параметров (то есть если признак группа не установлен).

необязательный аргумент (2)

Если признак установлен, аргумент не обязателен. Признак никогда не устанавливается, если тип равен 0 (параметр без аргумента).

список (4)

Если этот признак установлен, параметр можно задавать несколько раз.

без перезапуска (8)

Если этот признак установлен, параметр можно менять во время работы программы.

исходное (16)

Если этот признак установлен, у параметра есть исходное значение.

рабочее исходное (32)

Если этот признак установлен, у параметра есть исходное значение во время работы программы. Этот признак и исходное взаимно исключают друг друга.

безаргументный (64)

Если этот признак установлен вместе с признаком необязательный аргумент, то параметр имеет особый смысл, если не сопровождается аргументом.

константа (128)

Если этот признак установлен, gpgconf игнорирует запросы на изменение этого параметра. Пользовательские оболочки должны отражать невозможность изменения. Обратите внимание, что файлы настроек все равно можно править вручную.

уровень

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

простейший (0)

Элемент следует предлагать пользователю всегда.

усложненный (1)

Элемент можно предлагать опытным пользователям.

экспертный (2)

Элемент следует предлагать только экспертам.

невидимый (3)

В обычных ситуациях элемент отображать не следует — даже для экспертов.

внутренний (4)

Этот элемент предназначен только для внутреннего пользования. Игнорируйте его.

Уровень группы всегда является минимальным уровнем всех входящих в нее параметров.

описание

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

тип

Это поле определено только для параметров. Оно содержит беззнаковое число, которое определяет тип аргумента (и существует ли он). Определены типы:

Простые типы:

пустой (0)

Аргумент недопустим.

строка (1)

Аргумент — неформатированная строка.

int32 (2)

Аргумент — число со знаком.

uint32 (3)

Аргумент — беззнаковое число.

Сложные типы:

путь в файловой системе (32)

Это строка, в которой записан путь до файла. Файл не обязательно существует.

сервер LDAP (33)

Это строка, в которой описан сервер LDAP в виде:

имя сервера:порт:имя пользователя:пароль:база поиска

отпечаток ключа (34)

Это строка с 40-значным отпечатком, определяющим сертификат.

открытый ключ (35)

Это строка, которая задает сертификат идентификатором пользователя, идентификатором ключа или отпечатком.

секретный ключ (36)

Это строка, которая задает сертификат с секретным ключом идентификатором пользователя, идентификатором ключа или отпечатком.

список группы (37)

Это строка, которая задает список группы, как при использовании параметра --group gpg. Список состоит из имени, знака равенства и разделенных пробелом значений.

В дальнейшем будут добавляться новые типы. О том, как обрабатывать неизвестные типы, см. в описании доп-тип.

доп-тип

Это поле идентично полю тип, но в нем допустимы значения только от 0 до 31. Пользовательская оболочка должна представлять пользователю параметр в формате, указанном в поле тип. Но если аргумент данного типа не поддерживается оболочкой, она может представить его в более общем простом типе, указанном в поле доп-тип. Пользовательская оболочка должна поддерживать все определенные здесь простые типы, чтобы можно было отображать все параметры. В дальнейшем будут добавляться новые простые типы. Если пользовательская оболочка встречает основной тип, который она не поддерживает, она должна сообщить об ошибке и отменить операцию.

имя аргумента

Это поле определено только для параметров с типом аргумента тип, отличным от 0. В этом случае оно может содержать экранированную процентом строку, которая переводима и в которой указано краткое имя аргумента. Поле также может быть пустым, это значит, что краткое имя не известно.

исходное

Это поле определено только для параметров, для которых установлен признак исходное или рабочее исходное. Если установлен признак исходное, формат поля соответствует аргументу параметра (см. Формат). Если исходное значение пусто, то оно считается неизвестным. В противном случае содержимое поля указывает исходное значение этого параметра. Если установлен признак рабочее исходное, то поле либо пусто, либо определяет значение параметра, когда он не задан.

исх.арг

Это поле определено только для параметров, для которых установлен признак необязательный аргумент. Если не установлен признак безаргументный, его формат соответствует параметру (см. Формат). Если исходное значение пусто, то оно считается неизвестным. В противном случае поле определяет исходное значение аргумента этого параметра. Если признак безаргументный установлен, то поле либо пусто, либо определяет значение аргумента параметра, когда он не задан.

значение

Это поле определено только для параметров. Его формат соответствует аргументу параметра. Если оно пусто, то параметр в явном виде в текущих настройках не указан и действуют исходные значения (если они есть). В противном случае он содержит текущее значение параметра. Обратите внимание, что это поле имеет смысл и в том случае, если у самого параметра настоящего аргумента нет (в этом случае в поле указано, сколько раз параметр появляется в строке).


Следующий: , Пред: , Вверх: gpgconf   [Содержание][Указатель]

8.4.6 Изменение параметров

Команда --change-options компонент пытается изменить параметры заданного компонента на указанные. В качестве аргумента задается строка из поля имя в списке, который выводит команда --list-components. В стандартный поток ввода надо подавать изменяемые параметры в формате:

имя:признаки:новое значение

имя

Имя параметра, который нужно изменить. Это должна быть строка из поля имя в списке, который выводит команда --list-components.

признаки

Поле содержит беззнаковое число. Его величина представляет побитовое ИЛИ следующих признаков:

исходное (16)

Если этот признак не установлен, параметр удаляется и вместо него используется исходное значение (если оно есть).

новое значение

Новое значение параметра. Это поле определено, только если не установлен признак исходный. Формат соответствует аргументу параметра. Если поле пусто, используется исходное значение (это допустимо, только если аргумент для этого параметра не обязателен). В противном случае параметру будет присвоено заданное значение.

Команда выводит то же, что и --check-options, для измененного файла настроек.

Примеры:

Установить параметр force, который имеет тип пустой (0):

$ echo 'force:0:1' | gpgconf --change-options dirmngr

Сбросить параметр force:

$ echo 'force:16:' | gpgconf --change-options dirmngr

Параметр --runtime может влиять на то, когда изменения вступают в силу.


Следующий: , Пред: , Вверх: gpgconf   [Содержание][Указатель]

8.4.7 Список глобальных параметров

Иногда программе полезно заглянуть в файл глобальных настроек gpgconf.conf. Данные организованы по записям, с двоеточием в качестве разделителя; первое поле идентифицирует тип записи:

k

Это означает запись ключа для начала определения нового набора правил пользователя или группы. Формат записи ключа таков:

k:пользователь:группа:

пользователь

Это пользовательское поле ключа, оно экранировано процентом. Подробности см. в определении формата gpgconf.conf.

группа

Это поле группы ключа, оно экранировано процентом.

r

Описывает правило. Все записи правил до очередной записи ключа составляют набор правил для этого ключа. Формат записи правила таков:

r:::компонент:параметр:признак:значение:

компонент

Эта часть содержит компонент. Это простая строка.

параметр

Эта часть содержит параметр. Это простая строка.

признак

Эта часть задает признаки. В каждом правиле может быть только один признак, но параметру можно присвоить несколько признаков, вводя в разных строках один и тот же компонент и параметр. Это простая строка.

значение

Это необязательное значение параметра. Это экранированная процентом строка с одним знаком кавычек, чтобы обозначить строку. Знак кавычек нужен, только чтобы отличать отсутствие значения от пустой строки.

Незнакомые типы записей следует игнорировать. Обратите внимание, что в gpgconf преднамеренно не вводится функция изменения глобального файла настроек.


Следующий: , Пред: , Вверх: gpgconf   [Содержание][Указатель]

8.4.8 Получить и сравнить версии программ.

Проект GnuPG предоставляет сервер для запроса текущих версий пакетов программ, относящихся к GnuPG. Для доступа к это базе данных в сети можно применять gpgconf. Чтобы обеспечить возможность работы без сети, при выполнении этой операции dirmngr получает файл из https://versions.gnupg.org, проверяя подпись этого файла и сохраняя его в домашнем каталоге GnuPG. Если gpgconf вызывается, когда работает dirmngr, первый может запросить у последнего обновление этого файла перед тем, как использовать его.

Команда --query-swdb возвращает сведения по заданному пакету в формате с двоеточиями в качестве ограничителей:

имя

Это имя запрошенного пакета. Обратите внимание, что «gnupg» является специальным именем, которое заменяется на конкретный пакет, реализующий эту версию GnuPG. Для этого имени также не требуется указывать версию, потому что gpgconf в этом случае берет версию самого себя.

iversion

Установленная в настоящий момент версия или пустая строка. Значение берется из аргумента командной строки, но если оно не задано, его может заполнять gpg.

status

Статус пакета согласно таблице:

-

Нет сведений — либо потому, что не указана текущая версия, либо из-за ошибки.

?

Данное имя в сетевой базе данных отсутствует.

u

Есть более новая версия программы.

c

Установлена самая последняя версия.

n

Установленная версия новее последнего выпуска.

urgency

Если значение больше нуля, доступно важное обновление. Пустая строка считается нулем.

ошибка

Возвращает код ошибки gpg-error для диагностики.

filedate

Возвращает дату файла с номерами версий в стандартном формате ИСО (ггггммддTччммсс). Дату dirmngr извлекает из подписи файла.

verified

Дата, когда файл был получен, в формате ИСО. Может использоваться для оценки свежести данных.

version

Возвращает строку из файла с версией заданной программы.

reldate

Возвращает дату выпуска в формате ИСО.

size

Возвращает размер пакета в байтах в виде десятичного числа.

hash

Возвращает SHA-2 пакета в шестнадцатеричном виде.

В будущем могут быть добавлены новые поля.


Пред: , Вверх: gpgconf   [Содержание][Указатель]

8.4.9 Файлы gpgconf

/etc/gnupg/gpgconf.conf

Если этот файл существует, он обрабатывается как файл глобальных настроек. Прокомментированный пример можно найти в каталоге examples дистрибутива.

GNUPGHOME/swdb.lst

Файл с текущими версиями программ. Создается из сетевого источника программой dirmngr по мере необходимости.


Следующий: , Пред: , Вверх: Вспомогательные средства   [Содержание][Указатель]

8.5 Выполнение gpgconf для всех пользователей

Программа представляет обертку gpgconf для выполнения команды --apply-defaults для всех настоящих пользователей, у которых есть домашний каталог GnuPG. Программа может быть полезна администраторам для обновления файлов настроек GnuPG для всех пользователей после изменения /etc/gnupg/gpgconf.conf. Это позволяет устанавливать определенные правила для всех пользователей. Обратите внимание, что это не является надежным способом заставить пользователя применять определенные настройки. Пользователь всегда может отредактировать файлы настроек напрямую и обойти gpgconf.

Команда applygnupgdefaults вызывается от имени суперпользователя:

applygnupgdefaults

Следующий: , Пред: , Вверх: Вспомогательные средства   [Содержание][Указатель]

8.6 Занесение фразы-пароля в буфер

Программа gpg-preset-passphrase представляет утилиту для заполнения внутреннего буфера работающего gpg-agent фразами-паролями. Она полезна главным образом для машин, администрируемых по сети, на которых обычное средство ввода пароля pinentry применяться не может и фразы-пароли к ключам задаются при загрузке машины.

Срок действия фраз-паролей, заданных этой программой, не истекает, если не введен параметр --forget, явным образом очищающий буфер, или если не перезапускается программа gpg-agent (сигналом SIGHUP). Обратите внимание, что максимальное время хранения в буфере, задаваемое параметром --max-cache-ttl, все так же учитывается. Задание фраз-паролей должно быть разрешено при запуске gpg-agent параметром --allow-preset-passphrase.


Вверх: gpg-preset-passphrase   [Содержание][Указатель]

8.6.1 Список всех команд и параметров

gpg-preset-passphrase вызывается так:

gpg-preset-passphrase [параметры] [команда] идентификатор буфера

Идентификатор буфера представляет либо 40-символьный шестнадцатеричный код ключа, идентифицирующей ключ, для которого нужно установить или сбросить фразу-пароль. Код ключа можно узнать с помощью команды gpgsm --dump-secret-keys. В качестве идентификатора буфера можно также применять произвольную строку, которая идентифицирует фразу-пароль; предлагается приписывать в начале такой строки имя программы (напр., foo:12346).

Должна быть задана одна из команд:

--preset

Установить фразу-пароль. Обычно этим вы и будете пользоваться. При этом gpg-preset-passphrase будет читать фразу-пароль из стандартного потока ввода.

--forget

Сбросить фразу-пароль для указанного идентификатора буфера.

Можно пользоваться следующими дополнительными параметрами:

-v
--verbose

Выводить во время работы дополнительные сведения.

-P строка
--passphrase строка

Вместо чтения фразы-пароля из стандартного потока ввода использовать в качестве фразы-пароля аргумент. Обратите внимание, что это делает фразу-пароль видимой для других пользователей.


Следующий: , Пред: , Вверх: Вспомогательные средства   [Содержание][Указатель]

8.7 Соединение с работающей программой-агентом

Программа gpg-connect-agent представляет утилиту для связи с работающим gpg-agent. Она полезна для проверки команд, выполнение которых gpg-agent обеспечивает по протоколу Assuan. Она может быть также полезна для написания простых программ-сценариев. Программа читает из стандартного потока ввода и печатает результаты в стандартный поток вывода.

Это очень похоже на выполнение gpg-agent в режиме сервера, но здесь мы подключаемся к работающему экземпляру.


Следующий: , Вверх: gpg-connect-agent   [Содержание][Указатель]

8.7.1 Список всех параметров

gpg-connect-agent вызывается так:

gpg-connect-agent [параметры] [команды]

Можно использовать параметры:

-v
--verbose

Выводить во время работы дополнительные сведения.

-q
--quiet

Стараться выводить на экран как можно меньше.

--homedir каталог

Задать домашний каталог. Если этот параметр не используется, за домашний каталог принимается ~/.gnupg. Параметр учитывается только в командной строке. Он отменяет также любой домашний каталог, указанный в переменной среды GNUPGHOME или (в системах Windows) в пункте реестра HKCU\Software\GNU\GnuPG:HomeDir.

В системах Windows GnuPG можно установить как переносное приложение. В этом случае рассматривается только этот параметр командной строки, все другие способы задания домашнего каталога отключаются.

Для установки GnuPG в качестве переносного приложения под Windows создайте пустой файл под названием gpgconf.ctl в одном каталоге с gpgconf.exe. Тогда верхним каталогом установки будет этот каталог; или, если gpgconf.exe установлен непосредственно в каталоге под названием bin, на один уровень выше. Нужно также проверить, что следующие каталоги существуют и в них разрешена запись: ROOT/home для домашнего каталога GnuPG и ROOT/usr/local/var/cache/gnupg для внутренних буферных файлов.

--agent-program файл

Указать программу-агент для запуска, если она еще не выполняется. Исходное значение определяется вызовом gpgconf с параметром --list-dirs. Обратите внимание, что символ конвейера («|») применяется для регрессионного тестирования и поэтому не может появляться в имени файла.

--dirmngr-program файл

Указать программу диспетчера каталогов (клиент сервера ключей), которая будет запущена, если она еще не выполняется. Это влияет на работу, только когда задан параметр --dirmngr.

--dirmngr

Соединяться с работающим диспетчером каталогов (клиентом сервера ключей) вместо gpg-agent. Если dirmngr не работает, запустить его.

-S
--raw-socket имя

Подключиться к заданному сокету, предполагая, что это сервер типа Assuan. Не проводить никаких особых инициализаций и проверок среды. Таким образом можно напрямую подключаться к любому серверу сокетов типа Assuan.

-E
--exec

Использовать остальную часть командной строки как программу и аргументы и вызвать ее как сервер Assuan. Вот как это делается с gpgsm:

 gpg-connect-agent --exec gpgsm --server

Обратите внимание, что в этом случае нельзя использовать параметры в командной строке.

--no-ext-connect

При вызове с -S или --exec команда gpg-connect-agent подключается к серверу Assuan в расширенном режиме, чтобы можно было передавать дескрипторы. Этот параметр переводит ее в старый режим.

--no-autostart

Не запускать gpg-agent и dirmngr, если они еще не запущены.

-r файл
--run файл

Выполнить при запуске команды из указанного файла, а затем перейти к обычному режиму ввода. Обратите внимание, что команды, переданные в командной строке, выполняются после этого файла.

-s
--subst

Выполнить при запуске команду /subst.

--hex

Выводить строки данных в шестнадцатеричном формате и текстовом представлении неуправляющих символов.

--decode

Декодировать строки данных. Это удаляет экранирующие проценты, но строки всегда начинаются с «D» и пробела.


Пред: , Вверх: gpg-connect-agent   [Содержание][Указатель]

8.7.2 Команды управления

При чтении команд Assuan gpg-agent допускает также несколько специальных команд для управления работой. Эти управляющие команды начинаются с косой черты (/).

/echo аргументы

Просто вывести аргументы.

/let имя значение

Присвоить переменой имя заданное значение. Переменные заменяются на свои значения в данных на входе, только если была введена команда /subst. На переменную указывает знак доллара, имя переменной может включаться также в необязательные фигурные скобки. Ограничения на имена идентичны ограничениям в стандартном командном интерпретаторе Борна. Проверки пока нет, но она может быть введена в будущем. Внутри фигурных скобок в начале и в конце пробелы недопустимы.

Если переменная не найдена, программа ищет ее в среде и в случае успеха копирует в таблицу переменных.

Можно вызывать функции переменных: за именем функции должен следовать по меньшей мере один пробел и по меньшей мере один аргумент. Определены следующие функции:

get

Возвращает значение, описанное аргументом. Доступны аргументы:

cwd

Текущий рабочий каталог.

homedir

Домашний каталог GnuPG.

sysconfdir

Каталог системных настроек GnuPG.

bindir

Каталог исполняемых файлов GnuPG.

libdir

Каталог библиотек GnuPG.

libexecdir

Каталог библиотек исполняемых файлов GnuPG.

datadir

Каталог данных GnuPG.

serverpid

Идентификатор процесса текущего сервера. Чтобы получить осмысленное значение, перед этим нужно вызвать команду /serverpid.

unescape аргументы

Удалить экранирующие символы в стиле Си из аргументов. Обратите внимание, что \0 и \x00 неявным образом завершают строку. В качестве преобразуемой строки берутся все аргументы направо от пробела, ограничивающего имя функции.

unpercent аргументы
unpercent+ аргументы

Удалить экранирующие пробелы из аргументов. Обратите внимание, что %00 неявным образом завершает строку. В качестве преобразуемой строки берутся все аргументы направо от пробела, ограничивающего имя функции. unpercent+ переводит также знаки плюса в пробелы.

percent аргументы
percent+ аргументы

Экранировать аргументы символом процента. Экранируются символы табуляции, конца страницы, конца строки, перевода каретки, а также двоеточия. percent+ переводит также пробелы в знаки плюса.

errcode аргумент
errsource аргумент
errstring аргумент

Считать аргумент целым числом и прочесть его с помощью strtol. Возвратить код ошибки gpg-error, источник ошибки или форматированную строку с кодом и источником ошибки.

+
-
*
/
%

Прочесть все аргументы в виде целых чисел типа long с помощью strtol и применить эту операцию. Деление на ноль дает пустую строку.

!
|
&

Прочесть все аргументы в виде целых чисел типа long с помощью strtol и применить логическую операцию НЕ, ИЛИ или И. Оператор НЕ действует только на последний аргумент.

/definq имя переменная

Использовать содержимое указанной переменной для запросов с указанным именем. Если в качестве имени задана звездочка (*), это соответствует любым запросам.

/definqfile имя файл

Использовать содержимое указанного файла для запросов с указанным именем. Если в качестве имени задана звездочка (*), это соответствует любым запросам.

/definqprog имя программа

Выполнять указанную программу для запросов с указанным именем, передавая всю строку в качестве аргументов командной строки.

/datafile имя

Записывать все строки данных из сервера в указанный файл. Файл открывается для записи и создается, если не существует. Из существующего файла данные удаляются. Данные записываются в файл в полностью декодированном виде. Если в качестве имени задан «-», данные записываются в стандартный поток вывода. Файл остается открытым до тех пор, пока не будет задан новый файл или эта команда не будет введена без аргумента.

/showdef

Вывести все определения

/cleardef

Сбросить все определения

/sendfd файл режим

Открыть указанный файл в заданном режиме (который должен быть допустимой строкой режима fopen) и выслать файловый дескриптор серверу. За этим обычно следует команда, подобная INPUT FD, чтобы установить источник ввода для других команд.

/recvfd

Пока не реализовано.

/open переменная файл [режим]

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

/close fd

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

/showopen

Показать список открытых файлов.

/serverpid

Отправить на сервер команду Assuan GETINFO pid и сохранить возвращенный идентификатор процесса для внутренних нужд.

/sleep

Заснуть на секунду.

/hex
/nohex

То же, что параметр командной строки --hex.

/decode
/nodecode

То же, что параметр командной строки --decode.

/subst
/nosubst

Включить и выключить подстановку переменных. В исходном состоянии выключена, если не задан параметр командной строки --subst. Если /subst включается один раз, из начала входных строк удаляются пробелы, чтобы их было легче читать.

/while условие
/end

С помощью этих команд вводятся циклы. Все строки между while и соответствующим end выполняются, пока результат вычисления условия равен ненулевому числу, строке true или строке yes. Числа определяются функцией strtol. Пример:

  /subst
  /let i 3
  /while $i
    /echo счетчик цикла равен $i
    /let i ${- $i 1}
  /end
/if условие
/end

С помощью этих команд вводится условное выполнение. Все строки между if и соответствующим end выполняются, если результат вычисления условия равен ненулевому числу, строке true или строке yes. Числа определяются функцией strtol.

/run файл

Выполнить команды из указанного файла.

/bye

Разорвать соединение и выйти из программы.

/help

Вывести список доступных управляющих команд.


Следующий: , Пред: , Вверх: Вспомогательные средства   [Содержание][Указатель]

8.8 Программа-клиент Dirmngr

Программа dirmngr-client представляет простое средство обращения к работающему dirmngr и проверки, отозван ли сертификат — либо перечислением в соответствующем списке отозванных сертификатов, либо по протоколу OCSP. Если dirmngr не работает, будут запускаться новые экземпляры, но в целом это не хорошо, потому что связано с огромной потерей производительности.

Обычно это средство запускают с помощью командной строки

dirmngr-client сертификат

или

dirmngr-client <сертификат

Где сертификат содержит закодированные по DER (двоичные) сертификаты X.509, которые нужно проверить. Командой возвращается значение:

0

Рассматриваемый сертификат достоверен, т.е. есть действительный список отозванных сертификатов, в котором он не перечислен, или запрос по OCSP показал, что сертификат достоверен.

1

Сертификат отозван

2 (и другие значения)

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

dirmngr-client можно вызывать со следующими параметрами:

--version

Вывести версию программы и лицензионные сведения. Эту команду нельзя сокращать (напр., как --versio).

--help, -h

Вывести подсказку по наиболее полезным параметрам командной строки. Эту команду нельзя сокращать (напр., как --hel).

--quiet, -q

Сократить вывод, подавив все информационные сообщения.

-v
--verbose

Выводить во время работы дополнительную информацию. Уровень подробности можно повышать, вводя параметр несколько раз, например, ‘-vv’.

--pem

Считать, что данный сертификат поступает в формате PEM (текстовом).

--ocsp

Проводить проверку по протоколу OCSP, не учитывая никаких списков отозванных сертификатов.

--force-default-responder

При проверке по протоколу OCSP принудительно пользоваться исходным ответчиком OCSP. Не пользоваться ответчиком, заданным в сертификате.

--ping

Проверить, работает ли демон dirmngr.

--cache-cert

Поместить данный сертификат в буфер работающего dirmngr. Это полезно в основном для отладки.

--validate

Проверить данный сертификат с помощью внутренней процедуры dirmngr. Это полезно в основном для отладки.

--load-crl

Команда ожидает список имен файлов, хранящих списки отозванных сертификатов в кодировке DER. С параметром --url ожидаются URL вместо имен файлов, они будут загружаться прямо из заданного адреса. Все списки отозванных сертификатов будут проверяться и загружаться в буфер dirmngr.

--lookup

Взять оставшиеся аргументы и выполнить команду поиска над каждым из них. Результаты кодируются в base-64 (без заголовочных строк). Этим можно пользоваться для извлечения сертификатов с сервера. Однако формат данных на выходе не очень удобен, когда возвращается более одного сертификата.

--url
-u

Задать URL в качестве аргумента в командах lookup и load-crl.

--local
-l

Ограничить команду lookup поиском в локальном буфере.

--squid-mode

Выполнить dirmngr-client в режиме вспомогательной программы для параметра Squid external_acl_type.


Следующий: , Пред: , Вверх: Вспомогательные средства   [Содержание][Указатель]

8.9 Разбор и аннотация почтового сообщения

gpgparsemail представляет утилиту, в настоящее время полезную только для отладки. Для справки вызывайте ее с параметром --help.


Следующий: , Пред: , Вверх: Вспомогательные средства   [Содержание][Указатель]

8.10 Вызов простого средства симметричного шифрования

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

Обратите внимание, что symcryptrun доступна, только когда GnuPG настроен с параметром ‘--enable-symcryptrun’ во время сборки.


Вверх: symcryptrun   [Содержание][Указатель]

8.10.1 Список всех команд и параметров

symcryptrun вызывается так:

symcryptrun --class класс --program программа --keyfile файл ключа
   [--decrypt | --encrypt] [входной файл]

Для шифрования открытый текст должен передаваться по стандартному потоку ввода или через аргумент входной файл, а зашифрованный текст будет выводиться в стандартный поток вывода. Для расшифровки — наоборот.

Аргумент класс описывает соглашения вызова внешнего средства. В настоящее время это должен быть ‘confucius’. Аргумент программа представляет полное имя этого внешнего средства.

Для класса ‘confucius’ параметр --keyfile обязателен; он задает имя файла, содержащего секретный ключ, который может быть защищен фразой-паролем. Подробности соглашений вызова см. в исходном тексте программы.

Обратите внимание, что на момент вызова symcryptrun должен работать gpg-agent.

Можно пользоваться следующими дополнительными параметрами:

-v
--verbose

Выводить во время работы дополнительные сведения.

-q
--quiet

Стараться выводить на экран как можно меньше.

--homedir каталог

Задать домашний каталог. Если этот параметр не используется, за домашний каталог принимается ~/.gnupg. Параметр учитывается только в командной строке. Он отменяет также любой домашний каталог, указанный в переменной среды GNUPGHOME или (в системах Windows) в пункте реестра HKCU\Software\GNU\GnuPG:HomeDir.

В системах Windows GnuPG можно установить как переносное приложение. В этом случае рассматривается только этот параметр командной строки, все другие способы задания домашнего каталога отключаются.

Для установки GnuPG в качестве переносного приложения под Windows создайте пустой файл под названием gpgconf.ctl в одном каталоге с gpgconf.exe. Тогда верхним каталогом установки будет этот каталог; или, если gpgconf.exe установлен непосредственно в каталоге под названием bin, на один уровень выше. Нужно также проверить, что следующие каталоги существуют и в них разрешена запись: ROOT/home для домашнего каталога GnuPG и ROOT/usr/local/var/cache/gnupg для внутренних буферных файлов.

--log-file файл

Дописывать протокол работы в указанный файл. Укажите socket://, если нужно протоколировать в сокет. По умолчанию эта информация выводится в стандартный поток ошибок.

Возможные коды выхода symcryptrun:

0

Успех.

1

Произошла ошибка.

2

Не получена верная фраза-пароль.

3

Операция отменена пользователем.


Пред: , Вверх: Вспомогательные средства   [Содержание][Указатель]

8.11 Зашифровать или подписать файлы в архив

gpg-zip шифрует и подписывает файлы в архив. Это gpg-ованный архив того же формата, что используется программой PGP Zip.

gpg-zip вызывается так:

gpg-zip [параметры] имя_файла1 [имя_файла2, ...] каталог [каталог2, ...]

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

--encrypt
-e

Зашифровать данные. Этот параметр можно комбинировать с --symmetric (чтобы вывод можно было расшифровывать секретным ключом или фразой-паролем).

--decrypt
-d

Расшифровать данные.

--symmetric
-c

Зашифровать симметричным шифром с помощью фразы-пароля. Исходный симметричный шифр — CAST5, но можно выбрать другой параметром --cipher-algo команды gpg.

--sign
-s

Сделать подпись. См. gpg.

--recipient пользователь
-r пользователь

Зашифровать для заданного идентификатора пользователя. См. gpg.

--local-user пользователь
-u пользователь

Подписать с помощью заданного ключа. См. gpg.

--list-archive

Вывести оглавление указанного архива.

--output файл
-o файл

Выводить данные в указанный файл.

--gpg команда

Пользоваться вместо gpg указанной командой.

--gpg-args аргументы

Передать в gpg указанные параметры.

--tar команда

Пользоваться вместо tar указанной командой.

--tar-args аргументы

Передать в tar указанные параметры.

--version

Вывести версию программы и завершить работу.

--help

Показать краткую справку и завершить работу.

Программа возвращает 0, если все в норме, в противном случае 1.

Несколько примеров:

Зашифровать содержимое каталога mydocs для пользователя Вова в файл test1:

gpg-zip --encrypt --output test1 --gpg-args -r Вова mydocs

Вывести оглавление архива test1:

gpg-zip --list-archive test1

Следующий: , Пред: , Вверх: Верх   [Содержание][Указатель]

9 Как делать определенные вещи

Здесь собраны небольшие памятки.


Вверх: Памятки   [Содержание][Указатель]

9.1 Создание сертификата TLS для сервера

Здесь вкратце описывается, как создать сертификат сервера. Эта процедура действительно использовалась для получения сертификата, который использовался на реальном сервере, из удостоверяющего центра. Она проверялась только на этом удостоверяющем центре, но с другими центрами тоже проблем быть не должно.

Начнем с создания запроса на подпись сертификата X.509. Файл настроек не нужен, можно просто ввести:

  $ gpgsm --generate-key >example.com.cert-req.pem
  Выберите тип ключа:
     (1) RSA
     (2) Имеющийся ключ
     (3) Имеющийся на карте ключ
  Ваш выбор? 1

Я выбрал создание ключа RSA. Другой вариант — воспользоваться уже существующим ключом, выбрав 2 и введя так называемый код ключа. Этот код вам покажет команда ‘gpgsm --dump-secret-key идентификатор пользователя’. Если выбрать 3, программа выведет другое меню для создания сертификата непосредственно из ключа, хранящегося на электронной карте.

Продолжим:

  Какой размер ключа Вам необходим? (2048)
  Запрошенный размер ключа - 2048 бит

Нажав «Enter», вы создадите обычный ключ RSA размером 2048 бит. Ключи меньшей длины для нынешнего Интернета слишком слабы. Если выбрать более длинный (более сильный) ключ, у сервера будет больше работы.

  Возможные действия для ключа RSA:
     (1) подпись, шифрование
     (2) подпись
     (3) шифрование
  Ваш выбор? 1

Если выбрать «подпись», ключ можно будет применять в механизмах обмена ключами Диффи-Хеллмана (DHE и ECDHE) в TLS, что предпочтительно, поскольку предлагает секретность в прямом направлении. Если выбрать «шифрование», ключ можно будет применять для механизмов обмена ключами RSA, которые до сих пор кое-где обычны. Если выбрать и то, и другое, можно будет пользоваться всеми механизмами обмена.

Теперь введем данные:

  Введите имя субъекта X.509: CN=example.com

Это самая важная величина для сертификата сервера. Введите здесь каноническое имя своей серверной машины. Имена других виртуальных серверов можно добавить позднее.

  Введите адреса электронной почты
  (завершите пустой строкой):
  > 

В сертификате TLS эти адреса не нужны, и удостоверяющий центр все равно проигнорировал бы их. Просто нажмите «Enter».

Если вы хотели бы создать клиентский сертификат для шифрования электронной почты, здесь можно было бы ввести свой адрес (напр., yi@test.mil). Можно вводить сколько угодно адресов, однако удостоверяющий центр может их не принять или отклонить весь запрос.

  Введите имена DNS
  (необязательно; завершите пустой строкой):
  > example.com
  > www.example.com
  > 

Здесь я ввел имена служб, которые в действительности предоставляет машина. Среди них почти всегда должно быть и каноническое имя. Браузеры будут принимать сертификат для любого из этих имен. Как обычно, удостоверяющий центр должен одобрить все эти имена.

  Введите URI:
  (необязательно; завершите пустой строкой):
  >

Можно вводить произвольные URI; для сертификата сервера они не имеют смысла.

  Создать самозаверенный сертификат? (y/N)

Поскольку мы создаем запрос на подпись сертификата, а не полный сертификат, здесь мы отвечаем отрицательно.

Итак, мы ввели все нужные данные, и программа gpgsm покажет, что она собрала, и спросит, нужно ли создавать запрос на подпись сертификата:

  Используются параметры:
      Key-Type: RSA
      Key-Length: 2048
      Key-Usage: sign, encrypt
      Name-DN: CN=example.com
      Name-DNS: example.com
      Name-DNS: www.example.com
  Продолжить создание? (y/N) y

Теперь gpgsm приступит к созданию запроса. Поскольку это сопряжено с созданием ключа RSA, это может занять некоторое время. За это время вас трижды попросят ввести фразу-пароль для защиты создаваемого секретного ключа в вашей системе. Будет появляться окно, в котором вас будут просить ввести его. Первые два запроса — для новой фразы-пароля и повторения его; третий нужен, чтобы создать запрос подписи сертификата.

По завершении вы должны увидеть сообщение:

  Готово. Данный запрос теперь следует передать в удостоверяющий центр.

Теперь заглянем в созданный запрос на подпись сертификата:

  $ cat example.com.cert-req.pem
  -----BEGIN CERTIFICATE REQUEST-----
  MIIClTCCAX0CAQAwFjEUMBIGA1UEAxMLZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3
  DQEBAQUAA4IBDwAwggEKAoIBAQDP1QEcbTvOLLCX4gAoOzH9AW7jNOMj7OSOL0uW
  h2bCdkK5YVpnX212Z6COTC3ZG0pJiCeGt1TbbDJUlTa4syQ6JXavjK66N8ASZsyC
  Rwcl0m6hbXp541t1dbgt2VgeGk25okWw3j+brw6zxLD2TnthJxOatID0lDIG47HW
  GqzZmA6WHbIBIONmGnReIHTpPAPCDm92vUkpKG1xLPszuRmsQbwEl870W/FHrsvm
  DPvVUUSdIvTV9NuRt7/WY6G4nPp9QlIuTf1ESPzIuIE91gKPdrRCAx0yuT708S1n
  xCv3ETQ/bKPoAQ67eE3mPBqkcVwv9SE/2/36Lz06kAizRgs5AgMBAAGgOjA4Bgkq
  hkiG9w0BCQ4xKzApMCcGA1UdEQQgMB6CC2V4YW1wbGUuY29tgg93d3cuZXhhbXBs
  ZS5jb20wDQYJKoZIhvcNAQELBQADggEBAEWD0Qqz4OENLYp6yyO/KqF0ig9FDsLN
  b5/R+qhms5qlhdB5+Dh+j693Sj0UgbcNKc6JT86IuBqEBZmRCJuXRoKoo5aMS1cJ
  hXga7N9IA3qb4VBUzBWvlL92U2Iptr/cEbikFlYZF2Zv3PBv8RfopVlI3OLbKV9D
  bJJTt/6kuoydXKo/Vx4G0DFzIKNdFdJk86o/Ziz8NOs9JjZxw9H9VY5sHKFM5LKk
  VcLwnnLRlNjBGB+9VK/Tze575eG0cJomTp7UGIB+1xzIQVAhUZOizRDv9tHDeaK3
  k+tUhV0kuJcYHucpJycDSrP/uAY5zuVJ0rs2QSjdnav62YrRgEsxJrU=
  -----END CERTIFICATE REQUEST-----
  $

Теперь можете войти в свою учетную запись на сайте удостоверяющего центра, выбрать Сертификаты Сервера - Новый, отметить подписать корневым сертификатом 3 класса, вставить приведенный выше блок в текстовое поле и нажать Отправить.

Если все хорошо, будет показан сертификат. Теперь выполните

$ gpgsm --import

и вставьте в терминале сертификат со страницы удостоверяющего центра, а затем нажмите Ctrl-D.

  -----BEGIN CERTIFICATE-----
  MIIEIjCCAgqgAwIBAgIBTDANBgkqhkiG9w0BAQQFADBUMRQwEgYDVQQKEwtDQWNl
   [...]
  rUTFlNElRXCwIl0YcJkIaYYqWf7+A/aqYJCi8+51usZwMy3Jsq3hJ6MA3h1BgwZs
  Rtct3tIX
  -----END CERTIFICATE-----
  gpgsm: не найден сертификат издателя: #/CN=CAcert Class 3 Ro[...]
  gpgsm: сертификат импортирован
  
  gpgsm: всего обработано: 1
  gpgsm:    импортировано: 1

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

Чтобы просмотреть содержимое своего сертификата, можно ввести:

  $ gpgsm -K example.com
  /home/foo/.gnupg/pubring.kbx
  ---------------------------
            S/N: 4C
         Issuer: /CN=CAcert Class 3 Root/OU=http:\x2f\x2fwww.[...]
        Subject: /CN=example.com
            aka: (dns-name example.com)
            aka: (dns-name www.example.com)
       validity: 2015-07-01 16:20:51 through 2016-07-01 16:20:51
       key type: 2048 bit RSA
      key usage: digitalSignature keyEncipherment
  ext key usage: clientAuth (suggested), serverAuth (suggested), [...]
    fingerprint: 0F:9C:27:B2:DA:05:5F:CB:33:D8:19:E9:65:B9:4F:BD:B1:98:CC:57

Я ввел параметр -K, чтобы перечислить только сертификаты, для которых есть секретный ключ. Если вместо -K ввести --dump-secret-keys, будет выведено больше подробностей.

Чтобы пользоваться сертификатом, надо его установить на своем сервере. Серверные программы обычно работают с файлом PKCS\#12, в котором записан ключ и сертификат. Такой файл создается командой:

  $ gpgsm --export-secret-key-p12 -a >example.com-cert.pem

Будет запрошена фраза-пароль, а также новая фраза-пароль для защиты файла PKCS\#12. Теперь в файле записан сертификат и секретный ключ:

  $ cat example-cert.pem
  Issuer ...: /CN=CAcert Class 3 Root/OU=http:\x2f\x2fwww.CA[...]
  Serial ...: 4C
  Subject ..: /CN=example.com
      aka ..: (dns-name example.com)
      aka ..: (dns-name www.example.com)
  
  -----BEGIN PKCS12-----
  MIIHlwIBAzCCB5AGCSqGSIb37QdHAaCCB4EEggd9MIIHeTk1BJ8GCSqGSIb3DQEu
  [...много других строк...]
  -----END PKCS12-----
  $

Скопируйте этот файл безопасным образом на сервер, установите его там, а затем удалите этот файл. Этот файл можно экспортировать снова в любое время, пока доступна база данных секретных ключей GnuPG.


Следующий: , Пред: , Вверх: Верх   [Содержание][Указатель]

10 Заметки, касающиеся определенных операционных систем

GnuPG разработана на системах GNU/Linux и заведомо работает почти на всех свободных операционных системах. На настоящий момент, видимо, должны поддерживаться все современные системы POSIX, однако есть, вероятно, множество небольших огрех, которые нам сначала нужно устранить. Основные проблемные области:


Вверх: Заметки о системах   [Содержание][Указатель]

10.1 Заметки по Microsoft Windows

Текущие ограничения:


Следующий: , Пред: , Вверх: Верх   [Содержание][Указатель]

11 Как решать проблемы

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

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


Следующий: , Вверх: Отладка   [Содержание][Указатель]

11.1 Средства отладки

В дистрибутив GnuPG входит пара средств, полезных для отыскания и решения проблем.


Вверх: Средства отладки   [Содержание][Указатель]

11.1.1 Инспектирование файла щита с ключами

Щит с ключами — это формат хранения открытых ключей вместе с индексами и сопутствующей информацией. Обычно используется pubring.kbx из каталога .gnupg. Он содержит все сертификаты X.509, а также ключи OpenPGP4.

При вызове обычным образом, например,

kbxutil ~/.gnupg/pubring.kbx

программа перечисляет все записи (т.н. blobs) вместе с сопутствующей информацией в формате, предназначенном для чтения человеком.

Для просмотра статистики данного щита с ключами набираем

kbxutil --stats ~/.gnupg/pubring.kbx

и видим что-то вроде:

Total number of blobs:       99
               header:        1
                empty:        0
              openpgp:        0
                 x509:       98
          non flagged:       81
       secret flagged:        0
    ephemeral flagged:       17

В этом примере мы видим, что на щите с ключами нет никаких ключей OpenPGP, но есть 98 сертификатов X.509, а также всего 17 ключей или сертификатов, которые помечены как одноразовые, это значит, что они только временно сохраняются на щите с ключами и не будут показаны обычными командами gpgsm или gpg. 81 сертификат хранится обычным образом и напрямую доступен из gpgsm.

Чтобы найти продублированные сертификаты и блоки ключей в файле щита с ключами (таких не должно быть, но иногда что-то бывает не так), набираем

kbxutil --find-dups ~/.gnupg/pubring.kbx


Следующий: , Пред: , Вверх: Отладка   [Содержание][Указатель]

11.2 Разные подсказки по отладке


Следующий: , Пред: , Вверх: Отладка   [Содержание][Указатель]

11.3 Часто возникающие проблемы


Пред: , Вверх: Отладка   [Содержание][Указатель]

11.4 Как все это работает внутри


Следующий: , Вверх: Архитектурные детали   [Содержание][Указатель]

11.4.1 Как связаны компоненты

модули GnuPG

Рис. 11.1: Обзор модулей GnuPG


Пред: , Вверх: Архитектурные детали   [Содержание][Указатель]

11.4.2 Связь между GnuPG 1.4 и 2.x

Вот небольшая иллюстрация, показывающая, как различные версии GnuPG пользуются электронной картой:

архитектура карт GnuPG

Рис. 11.2: архитектура карт GnuPG


Следующий: , Пред: , Вверх: Верх   [Содержание][Указатель]

GNU General Public License

Version 3, 29 June 2007
Copyright © 2007 Free Software Foundation, Inc. https://fsf.org/

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Preamble

The GNU General Public License is a free, copyleft license for software and other kinds of works.

The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program–to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.

To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it.

For the developers’ and authors’ protection, the GPL clearly explains that there is no warranty for this free software. For both users’ and authors’ sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions.

Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users’ freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users.

Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free.

The precise terms and conditions for copying, distribution and modification follow.

  1. Definitions.

    “This License” refers to version 3 of the GNU General Public License.

    “Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.

    “The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations.

    To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work.

    A “covered work” means either the unmodified Program or a work based on the Program.

    To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.

    To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.

    An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.

  2. Source Code.

    The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work.

    A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.

    The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.

    The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work’s System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.

    The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.

    The Corresponding Source for a work in source code form is that same work.

  3. Basic Permissions.

    All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.

    You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.

    Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.

  4. Protecting Users’ Legal Rights From Anti-Circumvention Law.

    No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.

    When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work’s users, your or third parties’ legal rights to forbid circumvention of technological measures.

  5. Conveying Verbatim Copies.

    You may convey verbatim copies of the Program’s source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.

    You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.

  6. Conveying Modified Source Versions.

    You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:

    1. The work must carry prominent notices stating that you modified it, and giving a relevant date.
    2. The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”.
    3. You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
    4. If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.

    A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation’s users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.

  7. Conveying Non-Source Forms.

    You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:

    1. Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.
    2. Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.
    3. Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.
    4. Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.
    5. Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.

    A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.

    A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.

    “Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.

    If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).

    The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.

    Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.

  8. Additional Terms.

    “Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.

    When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.

    Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:

    1. Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or
    2. Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or
    3. Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or
    4. Limiting the use for publicity purposes of names of licensors or authors of the material; or
    5. Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or
    6. Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.

    All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.

    If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.

    Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.

  9. Termination.

    You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).

    However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.

    Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.

    Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.

  10. Acceptance Not Required for Having Copies.

    You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.

  11. Automatic Licensing of Downstream Recipients.

    Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.

    An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party’s predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.

    You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.

  12. Patents.

    A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor’s “contributor version”.

    A contributor’s “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.

    Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor’s essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.

    In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.

    If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient’s use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.

    If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.

    A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.

    Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.

  13. No Surrender of Others’ Freedom.

    If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.

  14. Use with the GNU Affero General Public License.

    Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.

  15. Revised Versions of this License.

    The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

    Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.

    If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy’s public statement of acceptance of a version permanently authorizes you to choose that version for the Program.

    Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.

  16. Disclaimer of Warranty.

    THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  17. Limitation of Liability.

    IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

  18. Interpretation of Sections 15 and 16.

    If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.

How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.

one line to give the program's name and a brief idea of what it does.
Copyright (C) year name of author

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or (at
your option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, см. https://www.gnu.org/licenses/.

Also add information on how to contact you by electronic and paper mail.

If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode:

program Copyright (C) year name of author
This program comes with ABSOLUTELY NO WARRANTY; for details
type ‘show w’.  This is free software, and you are
welcome to redistribute it under certain conditions;
type ‘show c’ for details.

The hypothetical commands ‘show w’ and ‘show c’ should show the appropriate parts of the General Public License. Of course, your program’s commands might be different; for a GUI interface, you would use an “about box”.

You should also get your employer (if you work as a programmer) or school, if any, to sign a “copyright disclaimer” for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, см. https://www.gnu.org/licenses/.

The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read https://www.gnu.org/philosophy/why-not-lgpl.html.


Следующий: , Пред: , Вверх: Верх   [Содержание][Указатель]

Соразработчики GnuPG

Проект GnuPG выражает благодарность множеству людей, которые внесли в него свой вклад. С ними связано большинство достижений проекта. Все упущения в этом списке непреднамеренны. Свяжитесь, пожалуйста, с разработчиком, если вы или какой-то ваш вклад здесь не указан.

Девид Шоу, Метью Скала, Майкл Рот, Никлас Гернеус, Нильс Ельмерейх, Реми Гиомар, Стефан Беллон, Тимо Шульц и Вернер Кох писали программы. Биргер Лангер, Дениэл Ресэр, Докинакис Теофанис, Эдмунд Гримли Эванс, Гаэль Кери, Грегори Стейк, Наги Ференц Ласло, Иво Тиммерманс, Хакобо Таррио Баррейро, Януш Александр Урбанович, Джеди Лин, Йоуни Хильтунен, Лаурентиу Буздуган, Магда Прочазкова, Майкл Анкерт, Майкл Майер, Марко д’Итри, Нилгун Белма Бугунер, Педро Мораис, Теди Гериянто, Тьяго Юнг Бауэрман, Рафаэль Каэтано дос Сантос, Тоомас Сооме, Урко Луса, Вальтер Кох, Иида Ёсияки подготавливали официальные переводы. Майк Эшли написал и обновляет «Справочник по приватности GNU». Девид Скрайбнер является текущим редактором «Вопросов и ответов». Лоренцо Каппеллетти работает над сайтом.

Новая модульная архитектура gnupg 1.9, а также часть, реализующая X.509/CMS, разработана в проекте Ägypten. Прямой вклад в этот проект внесли: Бернард Герцог, который провел обширное тестирование и выловил множество ошибок. Бернард Рейтер, который следил за тем, чтобы мы вписывались в сроки и спецификации. Он провел обширное тестирование и внес множество предложений. Жан-Оливер Вагнер следил за тем, чтобы мы вписывались в сроки и спецификации. Он провел обширное тестирование и внес множество предложений. Карл-Гейнц Циммер и Марк Муц были вынуждены бороться со всеми ошибками и заблуждениями, работая над интеграцией с KDE. Маркус Бринкман расширял GPGME, вычищал программы Assuan, а также исправлял ошибки тут и там. Мориц Шульте взял на себя поддержку Libgcrypt и развил ее до стабильной и полезной библиотеки. Стефен Гансен провел работу над написанием dirmngr, затруднявшуюся плохо определенными протоколами. Томас Кестер провел обширное тестирование и выловил множество ошибок. Вернер Кох проектировал систему и написал большинство программ.

Следующие граждане оказали огромную помощь, предлагая усовершенствования, тестируя, исправляя ошибки, предоставляя ресурсы и выполняя другую важную работу: Адам Митчелл, Альберт Чин, Алек Габиг, Аллен Кларк, Ананд Кумрия, Андреас Гаумер, Энтони Малкей, Ариэль Т. Гленн, Боб Метьюс, Бодо Меллер, Брендан О’Ди, Бренно де Винтер, Браейн М. Карлсон, Брайен Мор, Брайен Уорнер, Брайен Фуллертон, Каски Л. Диксон, Кес ван дер Гринд, Шарль Левер, Чип Сальценберг, Крис Адамс, Кристиан Биэр, Кристиан Курц, Кристиан фон Рок, Кристофер Оливер, Кристиан Ректенвальд, Дан Уиншип, Даниэль Эйзенбуд, Даниэль Кэнинг, Дейв Дикстра, Девид К. Ними, Девид Чемпион, Девит Элмент, Девид Геллинен, Давид Голленберг, Девид Метог, Давид Р. Бергштейн, Детлеф Ланнерт, Дмитри, Дирк Латтерман, Дирк Мейер, Дисастри, Дуглас Келверт, Эд Борас, Эдмунд Гримли Эванс, Эдвин Воудт, Энцо Микеланджели, Эрнст Молитор, Фабио Коатти, Феликс фон Лейтнер, фиш стикъц, Флориан Веймер, Франческо Поторти, Френк Донахью, Френк Гекербах, Френк Стаджано, Френк Тобин, Габриэл Розенкеттер, Гаэль Кери, Джин Картер, Джофф Китинг, Георг Шварц, Джампаоло Томассони, Жильбер Фернандеш, Грег Луис, Грег Троксел, Грегори Стейк, Грегени Бартон, Гаральд Денкер, Хольгер Бауст, Гендрик Бушкамп, Хольгер Шуриг, Хольгер Смолински, Хольгер Трапп, Хью Дениэл, Нью Ли, Иэн Маккеллар, Иво Тиммерманс, Ян Крюгер, Ян Нигусман, Януш А. Урбанович, Джеймс Труп, Жан-Лу Галли, Джефф Лонг, Джеффри фон Ронне, Дженс Бачем, Йерун К. ван Гельдерен, Дж. Горацио МГ младший, Майкл Эшли, Джим Бауэр, Джим Смолл, Иоахим Бейкс, Джо Ретт, Джон А. Мартин, Джони Тевессен, Йорг Шиллинг, Джос Бекус, Джозеф Уолтон, Жуан Ф. Коданьон, Цзюнь Курияма, Кахиль Д. Джаллад, Карл Фогель, Карстен Тюгесен, Кацухиро Кондоу, Кацу Ямамото, Кит Клейтон, Кевин Райд, Клаус Сингфогель, Курт Гарлофф, Ларс Келлогг-Стедмен, Л. Сассаман, М. Тейлор, Марсель Вальдфогель, Марко д’Итри, Марко Паррон, Маркус Бринкман, Марк Адлер, Марк Эльбрехт, Марк Петти, Маркус Фридль, Мартин Калерт, Мартин Гамильтон, Мартин Шульте, Метт Крей, Метью Скала, Метью Уилкокс, Матиас Ульрихс, Макс Валянский, Михаэль Энгельс, Михаэль Фишер ф. Моллард, Майкл Рот, Михаил Соболев, Михаил Токарев, Николас Грейнер, Майк Макэван, Нил Г. Уолфильд, Нельсон Г. Ф. Биб, Нибе Ютака, Никлас Гернеус, Нимрод Цимерман, Н. Дж. Дой, Оливер Гакерт, Оскари Яскелайнен, Паскаль Шефферс, Поль Д. Смит, Пер Кедерквист, Фил Бленделл, Филипп Лалиберт, Петер Фалес, Петер Гутман, Питер Маршал, Питер Велчев, Петр Круковецки, Кинь-Лонь, Ральф Гиллен, Рет, Рейнхард Ворбст, Реми Гиомар, Рубен Самнер, Ричард Аутбридж, Роберт Джуп, Родди Стречен, Роджер Сондерман, Роланд Розенфельд, Роман Павлик, Росс Гольдер, Райен Мелейтер, Сэм Робертс, Сами Тольванен, Син Макленнан, Себастьян Клемке, Серж Мунгофен, СЛ Баур, Стефан Беллон, доктор Стефан Далибор, Стефан Карман, Стефан Келлер, Стефен Ульрих, Стефен Цан, Стивен Беккер, Стивен Мердок, Сусанна Шульц, Тед Кебин, Тьяго Юнг Бауэрман, Теймен Клок, Томас Ресслер, Тим Муни, Тимо Шульц, Тодд Фирлинг, Тогава Сатоси, Том Шпиндлер, Том Зеруча, Томас Фаст, Томми Комулайнен, Томас Клауснер, Томаш Козловский, Томас Миккельсен, Ульф Меллер, Урко Луса, Винсент П. Броман, Фолькер Кветшке, У. Льюис, Вальтер Гофман, Вальтер Кох, Уэйн Чапески, Уим Вандепутте, Уинона Браун, Иида Ёсияки, Ёсихиро Кадзики и Герлинда Клаэс.

Эти программы не могли бы быть написаны без предшествующей работы, которую провели Крис Уэджвуд, Жан-Лу Галли, Йон Каллас, Марк Адлер, Мартин Хеллман, Поль Кендалл, Филипп Р. Циммерман, Петер Гутман, Филипп А. Нельсон, Тахер эль Гамаль, Торбьерн Гранлунд, Уитфильд Диффи, некоторые неизвестные математики АНБ и все те, чьим упорным трудом были созданы полные свободные операционные системы.

Наконец, мы хотели бы поблагодарить каждого, кто пользуется этими программами, присылает отчеты об ошибках и вообще напоминает нам, для чего мы, собственно, ведем эту работу.


Следующий: , Пред: , Вверх: Верх   [Содержание][Указатель]

Термины и сокращения

ARL

Authority Revocation List (список отозванных центров) технически идентичен спискам отозванных сертификатов (CRL), но используется удостоверяющими центрами, а не конечными пользователями сертификатов.

Цепочная схема

Схема проверки для X.509, в которой дата создания подписи используется как дата, с которой начинается проверка; затем проверяется, был ли каждый сертификат выпущен в тех временных пределах, когда издающий сертификат был достоверен. Это позволяет проверять подписи после того, как срок действия сертификата удостоверяющего центра истек. Проверка также включает проверку статуса сертификата по сети. Цепочная модель требуется по немецкому закону об электронной подписи. См. также схема оболочки.

CMS

Cryptographic Message Standard (Стандарт криптографического сообщения) описывает формат сообщений для шифрования и цифровой подписи. Он тесно связан с форматом сертификатов X.509. CMS раньше был известен под названием PKCS#7 и описывается в RFC3369.

CRL

Certificate Revocation List (список отозванных сертификатов) представляет список сертификатов, отозванных издателем.

CSR

Certificate Signing Request (запрос на подпись сертификата) представляет сообщение, отправляемое в удостоверяющий центр, чтобы просить его выдать новый сертификат. Формат данных в таком запросе называется PCKS#10.

OpenPGP

Формат данных, используемый для построения инфраструктуры открытых ключей и для обмена зашифрованными и подписанными сообщениями. В отличие от X.509, в OpenPGP входит формат сообщений, но не оговаривается конкретная инфраструктура открытых ключей. Однако на протоколе OpenPGP может быть построена любого рода инфраструктура открытых ключей.

Код ключа

Этот термин применяется в GnuPG для 20-байтного хеша, используемого для идентификации определенного ключа без ссылки на конкретный протокол. Он используется внутри для доступа к секретному ключу. Обычно он показывается и вводится в виде 40-значной форматированной шестнадцатеричной строки.

OCSP

Online Certificate Status Protocol (сетевой протокол состояния сертификатов) применяется в качестве альтернативы спискам отозванных сертификатов. Он описан в RFC 2560.

PSE

Personal Security Environment (личная среда безопасности) обозначает базу данных для хранения секретных ключей. Это либо электронная карта, либо совокупность файлов на диске; последнее часто называется Soft-PSE.

Схема оболочки

Стандартная схема проверки сертификатов в X.509. На момент проверки все сертификаты должны быть достоверными и не просроченными. См. также цепочная схема.

X.509

Описание инфраструктуры открытых ключей, применяемой со Стандартом криптографического сообщения (CMS). Например, оно определяется в RFC3280.


Следующий: , Пред: , Вверх: Верх   [Содержание][Указатель]

Указатель параметров

Jump to:   A   B   C   D   E   F   G   H   I   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y  
Указатель Entry  Section

A
add-servers: Параметры dirmngr
agent-program: Параметры настроек GPG
agent-program: Параметры настроек
agent-program: Вызов gpg-connect-agent
allow-admin: Параметры Scdaemon
allow-emacs-pinentry: Параметры агента
allow-freeform-uid: Эзотерические параметры GPG
allow-loopback-pinentry: Параметры агента
allow-multiple-messages: Эзотерические параметры GPG
allow-non-selfsigned-uid: Эзотерические параметры GPG
allow-ocsp: Параметры dirmngr
allow-preset-passphrase: Параметры агента
allow-secret-key-import: Эзотерические параметры GPG
allow-version-check: Параметры dirmngr
allow-weak-digest-algos: Эзотерические параметры GPG
always-trust: Не рекомендованные параметры
armor: Ввод и вывод GPG
armor: Ввод и вывод
ask-cert-expire: Эзотерические параметры GPG
ask-cert-level: Параметры настроек GPG
ask-sig-expire: Эзотерические параметры GPG
assume-armor: Ввод и вывод
assume-base64: Ввод и вывод
assume-binary: Ввод и вывод
attribute-fd: Эзотерические параметры GPG
attribute-file: Эзотерические параметры GPG
auto-check-trustdb: Параметры настроек GPG
auto-issuer-key-retrieve: Параметры сертификатов
auto-key-locate: Параметры настроек GPG
auto-key-retrieve: Параметры настроек GPG

B
base64: Ввод и вывод
batch: Параметры агента
batch: Параметры настроек GPG
bzip2-compress-level: Параметры настроек GPG
bzip2-decompress-lowmem: Параметры настроек GPG

C
c: Параметры dirmngr
cache-cert: dirmngr-client
call-dirmngr: Команды операций GPGSM
call-protect-tool: Команды операций GPGSM
card-edit: Команды операций GPG
card-status: Команды операций GPG
card-timeout: Параметры Scdaemon
cert-digest-algo: Эзотерические параметры GPG
cert-notation: Эзотерические параметры GPG
cert-policy-url: Эзотерические параметры GPG
change-passphrase: Управление ключами OpenPGP
change-passphrase: Управление сертификатами
change-pin: Команды операций GPG
check-passphrase-pattern: Параметры агента
check-signatures: Команды операций GPG
check-sigs: Команды операций GPG
check-trustdb: Команды операций GPG
cipher-algo: Эзотерические параметры GPG
cipher-algo: Параметры CMS
clear-sign: Команды операций GPG
clearsign: Команды операций GPG
command-fd: Эзотерические параметры GPG
command-file: Эзотерические параметры GPG
comment: Эзотерические параметры GPG
compliance: Параметры совместимости
compliant-needed: Параметры настроек GPG
compress-algo: Эзотерические параметры GPG
compress-level: Параметры настроек GPG
connect-quick-timeout: Параметры dirmngr
connect-timeout: Параметры dirmngr
create-socketdir: Вызов gpgconf
csh: Параметры агента
csh: Параметры dirmngr
ctapi-driver: Параметры Scdaemon

D
daemon: Команды агента
daemon: Команды dirmngr
daemon: Команды Scdaemon
dearmor: Команды операций GPG
debug: Параметры агента
debug: Параметры dirmngr
debug: Эзотерические параметры GPG
debug: Эзотерические параметры
debug: Параметры Scdaemon
debug-all: Параметры агента
debug-all: Параметры dirmngr
debug-all: Эзотерические параметры GPG
debug-all: Эзотерические параметры
debug-all: Параметры Scdaemon
debug-allow-core-dump: Эзотерические параметры
debug-allow-core-dump: Параметры Scdaemon
debug-assuan-log-cats: Параметры Scdaemon
debug-disable-ticker: Параметры Scdaemon
debug-ignore-expiration: Эзотерические параметры
debug-iolbf: Эзотерические параметры GPG
debug-level: Параметры агента
debug-level: Параметры dirmngr
debug-level: Эзотерические параметры GPG
debug-level: Эзотерические параметры
debug-level: Параметры Scdaemon
debug-log-tid: Параметры Scdaemon
debug-no-chain-validation: Эзотерические параметры
debug-pinentry: Параметры агента
debug-quick-random: Параметры агента
debug-wait: Параметры агента
debug-wait: Параметры dirmngr
debug-wait: Параметры Scdaemon
debug-wait: Параметры Scdaemon
decode: Вызов gpg-connect-agent
decrypt: Команды операций GPG
decrypt: Команды операций GPGSM
decrypt: gpg-zip
decrypt-files: Команды операций GPG
default-cache-ttl: Параметры агента
default-cache-ttl: Параметры агента
default-cert-expire: Эзотерические параметры GPG
default-cert-level: Параметры настроек GPG
default-key: Параметры настроек GPG
default-key: Ввод и вывод
default-keyserver-url: Эзотерические параметры GPG
default-new-key-algo строка: Эзотерические параметры GPG
default-preference-list: Эзотерические параметры GPG
default-recipient: Параметры настроек GPG
default-recipient-self: Параметры настроек GPG
default-sig-expire: Эзотерические параметры GPG
delete-keys: Команды операций GPG
delete-keys: Управление сертификатами
delete-secret-and-public-key: Команды операций GPG
delete-secret-keys: Команды операций GPG
deny-admin: Параметры Scdaemon
desig-revoke: Управление ключами OpenPGP
detach-sign: Команды операций GPG
digest-algo: Эзотерические параметры GPG
dirmngr: Вызов gpg-connect-agent
dirmngr-program: Параметры настроек GPG
dirmngr-program: Параметры настроек
dirmngr-program: Вызов gpg-connect-agent
disable-application: Параметры Scdaemon
disable-ccid: Параметры Scdaemon
disable-check-own-socket: Параметры агента
disable-check-own-socket: Параметры dirmngr
disable-cipher-algo: Эзотерические параметры GPG
disable-crl-checks: Параметры сертификатов
disable-dsa2: Параметры настроек GPG
disable-http: Параметры dirmngr
disable-ipv4: Параметры dirmngr
disable-ipv6: Параметры dirmngr
disable-large-rsa: Параметры настроек GPG
disable-ldap: Параметры dirmngr
disable-mdc: Параметры OpenPGP
disable-ocsp: Параметры сертификатов
disable-pinpad: Параметры Scdaemon
disable-policy-checks: Параметры сертификатов
disable-pubkey-algo: Эзотерические параметры GPG
disable-scdaemon: Параметры агента
disable-signer-uid: Параметры OpenPGP
disable-trusted-cert-crl-check: Параметры сертификатов
display: Параметры агента
display-charset: Параметры настроек GPG
display-charset:iso-8859-1: Параметры настроек GPG
display-charset:iso-8859-15: Параметры настроек GPG
display-charset:iso-8859-2: Параметры настроек GPG
display-charset:koi8-r: Параметры настроек GPG
display-charset:utf-8: Параметры настроек GPG
dry-run: Эзотерические параметры GPG
dump-cert: Управление сертификатами
dump-chain: Управление сертификатами
dump-external-keys: Управление сертификатами
dump-keys: Управление сертификатами
dump-options: Команды агента
dump-options: Команды dirmngr
dump-options: Общие команды GPG
dump-options: Общие команды GPGSM
dump-options: Команды Scdaemon
dump-secret-keys: Управление сертификатами

E
edit-card: Команды операций GPG
edit-key: Управление ключами OpenPGP
emit-version: Эзотерические параметры GPG
enable-crl-checks: Параметры сертификатов
enable-dsa2: Параметры настроек GPG
enable-extended-key-format: Параметры агента
enable-large-rsa: Параметры настроек GPG
enable-ocsp: Параметры сертификатов
enable-passphrase-history: Параметры агента
enable-pinpad-varlen: Параметры Scdaemon
enable-policy-checks: Параметры сертификатов
enable-progress-filter: Эзотерические параметры GPG
enable-putty-support: Параметры агента
enable-special-filenames: Эзотерические параметры GPG
enable-special-filenames: gpgv
enable-ssh-support: Параметры агента
enable-trusted-cert-crl-check: Параметры сертификатов
enarmor: Команды операций GPG
encrypt: Команды операций GPG
encrypt: Команды операций GPGSM
encrypt: gpg-zip
encrypt-files: Команды операций GPG
encrypt-to: Параметры ключей
enforce-passphrase-constraints: Параметры агента
escape-from-lines: Эзотерические параметры GPG
exec: Вызов gpg-connect-agent
exec-path: Параметры настроек GPG
exit-on-status-write-error: Параметры настроек GPG
expert: Параметры настроек GPG
export: Команды операций GPG
export: Управление сертификатами
export-filter: Ввод и вывод GPG
export-options: Ввод и вывод GPG
export-ownertrust: Команды операций GPG
export-secret-key-p12: Управление сертификатами
export-secret-key-p8: Управление сертификатами
export-secret-key-raw: Управление сертификатами
export-secret-keys: Команды операций GPG
export-secret-subkeys: Команды операций GPG
export-ssh-key: Команды операций GPG
extra-digest-algo: Эзотерические параметры
extra-socket: Параметры агента

F
faked-system-time: Параметры агента
faked-system-time: Эзотерические параметры GPG
faked-system-time: Эзотерические параметры
fast-list-mode: Эзотерические параметры GPG
fetch-crl: Команды dirmngr
fetch-keys: Команды операций GPG
fingerprint: Команды операций GPG
fixed-list-mode: Ввод и вывод GPG
flush: Команды dirmngr
for-your-eyes-only: Эзотерические параметры GPG
force: Параметры dirmngr
force: watchgnupg
force-crl-refresh: Параметры сертификатов
force-default-responder: dirmngr-client
force-mdc: Параметры OpenPGP
forget: Вызов gpg-preset-passphrase
full-gen-key: Управление ключами OpenPGP
full-generate-key: Управление ключами OpenPGP

G
gen-key: Управление ключами OpenPGP
gen-key: Управление сертификатами
gen-prime: Команды операций GPG
gen-random: Команды операций GPG
gen-revoke: Управление ключами OpenPGP
generate-designated-revocation: Управление ключами OpenPGP
generate-key: Управление ключами OpenPGP
generate-key: Управление сертификатами
generate-revocation: Управление ключами OpenPGP
gnupg: Параметры совместимости
gnutls-debug: Параметры dirmngr
gpg: gpg-zip
gpg-agent-info: Параметры настроек GPG
gpg-args: gpg-zip
gpgconf-list: Эзотерические параметры GPG
gpgconf-test: Эзотерические параметры GPG
group: Параметры ключей

H
help: Команды агента
help: Команды dirmngr
help: Общие команды GPG
help: Общие команды GPGSM
help: Команды Scdaemon
help: watchgnupg
help: dirmngr-client
help: gpg-zip
hex: Вызов gpg-connect-agent
hidden-encrypt-to: Параметры ключей
hidden-recipient: Параметры ключей
hidden-recipient-file: Параметры ключей
homedir: Параметры агента
homedir: Параметры настроек GPG
homedir: Параметры настроек
homedir: Параметры Scdaemon
homedir: gpgv
homedir: Вызов gpg-connect-agent
homedir: Вызов symcryptrun
honor-http-proxy: Параметры dirmngr
http-proxy: Параметры dirmngr

I
ignore-cache-for-signing: Параметры агента
ignore-cert-extension: Параметры dirmngr
ignore-cert-extension: Параметры сертификатов
ignore-crc-error: Эзотерические параметры GPG
ignore-http-dp: Параметры dirmngr
ignore-ldap-dp: Параметры dirmngr
ignore-mdc-error: Эзотерические параметры GPG
ignore-ocsp-service-url: Параметры dirmngr
ignore-time-conflict: Эзотерические параметры GPG
ignore-time-conflict: gpgv
ignore-valid-from: Эзотерические параметры GPG
import: Команды операций GPG
import: Управление сертификатами
import-filter: Ввод и вывод GPG
import-options: Ввод и вывод GPG
import-ownertrust: Команды операций GPG
include-certs: Параметры CMS
input-size-hint: Ввод и вывод GPG
interactive: Эзотерические параметры GPG

K
keep-display: Параметры агента
keep-tty: Параметры агента
keydb-clear-some-cert-flags: Управление сертификатами
keyedit:addcardkey: Управление ключами OpenPGP
keyedit:addkey: Управление ключами OpenPGP
keyedit:addphoto: Управление ключами OpenPGP
keyedit:addrevoker: Управление ключами OpenPGP
keyedit:adduid: Управление ключами OpenPGP
keyedit:bkuptocard: Управление ключами OpenPGP
keyedit:check: Управление ключами OpenPGP
keyedit:clean: Управление ключами OpenPGP
keyedit:cross-certify: Управление ключами OpenPGP
keyedit:delkey: Управление ключами OpenPGP
keyedit:delsig: Управление ключами OpenPGP
keyedit:deluid: Управление ключами OpenPGP
keyedit:disable: Управление ключами OpenPGP
keyedit:enable: Управление ключами OpenPGP
keyedit:expire: Управление ключами OpenPGP
keyedit:key: Управление ключами OpenPGP
keyedit:keyserver: Управление ключами OpenPGP
keyedit:keytocard: Управление ключами OpenPGP
keyedit:lsign: Управление ключами OpenPGP
keyedit:minimize: Управление ключами OpenPGP
keyedit:notation: Управление ключами OpenPGP
keyedit:nrsign: Управление ключами OpenPGP
keyedit:passwd: Управление ключами OpenPGP
keyedit:pref: Управление ключами OpenPGP
keyedit:primary: Управление ключами OpenPGP
keyedit:quit: Управление ключами OpenPGP
keyedit:revkey: Управление ключами OpenPGP
keyedit:revsig: Управление ключами OpenPGP
keyedit:revuid: Управление ключами OpenPGP
keyedit:save: Управление ключами OpenPGP
keyedit:setpref: Управление ключами OpenPGP
keyedit:showphoto: Управление ключами OpenPGP
keyedit:showpref: Управление ключами OpenPGP
keyedit:sign: Управление ключами OpenPGP
keyedit:toggle: Управление ключами OpenPGP
keyedit:trust: Управление ключами OpenPGP
keyedit:tsign: Управление ключами OpenPGP
keyedit:uid: Управление ключами OpenPGP
keyid-format: Параметры настроек GPG
keyring: Параметры настроек GPG
keyring: gpgv
keyserver: Параметры dirmngr
keyserver: Параметры настроек GPG
keyserver-options: Параметры настроек GPG
kill: Вызов gpgconf

L
launch: Вызов gpgconf
lc-ctype: Параметры агента
lc-messages: Параметры агента
ldap-proxy: Параметры dirmngr
ldapserverlist-file: Параметры dirmngr
ldaptimeout: Параметры dirmngr
learn-card: Управление сертификатами
legacy-list-mode: Ввод и вывод GPG
limit-card-insert-tries: Параметры настроек GPG
list-archive: gpg-zip
list-chain: Управление сертификатами
list-clrs: Команды dirmngr
list-config: Эзотерические параметры GPG
list-gcrypt-config: Эзотерические параметры GPG
list-keys: Команды операций GPG
list-keys: Управление сертификатами
list-keys: Управление сертификатами
list-only: Эзотерические параметры GPG
list-options: Параметры настроек GPG
list-options:show-keyring: Параметры настроек GPG
list-options:show-keyserver-urls: Параметры настроек GPG
list-options:show-notations: Параметры настроек GPG
list-options:show-photos: Параметры настроек GPG
list-options:show-policy-urls: Параметры настроек GPG
list-options:show-sig-expire: Параметры настроек GPG
list-options:show-sig-subpackets: Параметры настроек GPG
list-options:show-std-notations: Параметры настроек GPG
list-options:show-uid-validity: Параметры настроек GPG
list-options:show-unusable-keys: Параметры настроек GPG
list-options:show-unusable-uids: Параметры настроек GPG
list-options:show-usage: Параметры настроек GPG
list-options:show-user-notations: Параметры настроек GPG
list-packets: Команды операций GPG
list-secret-keys: Команды операций GPG
list-secret-keys: Управление сертификатами
list-signatures: Команды операций GPG
list-sigs: Команды операций GPG
load-crl: Команды dirmngr
load-crl: dirmngr-client
local-user: Параметры ключей
local-user: Ввод и вывод
local-user: gpg-zip
locate-keys: Команды операций GPG
lock-multiple: Параметры настроек GPG
lock-never: Параметры настроек GPG
lock-once: Параметры настроек GPG
log-file: Параметры агента
log-file: Параметры dirmngr
log-file: Эзотерические параметры GPG
log-file: Параметры настроек
log-file: Параметры Scdaemon
log-file: gpgv
log-file: Вызов symcryptrun
logger-fd: Эзотерические параметры GPG
logger-fd: gpgv
lookup: dirmngr-client
lsign-key: Управление ключами OpenPGP

M
mangle-dos-filenames: Параметры настроек GPG
marginals-needed: Параметры настроек GPG
max-cache-ttl: Параметры агента
max-cache-ttl-ssh: Параметры агента
max-cert-depth: Параметры настроек GPG
max-output: Ввод и вывод GPG
max-passphrase-days: Параметры агента
max-replies: Параметры dirmngr
min-cert-level: Параметры настроек GPG
min-passphrase-len: Параметры агента
min-passphrase-nonalpha: Параметры агента
multi-server: Команды Scdaemon
multifile: Команды операций GPG

N
nameserver: Параметры dirmngr
no: Параметры настроек GPG
no-allow-external-cache: Параметры агента
no-allow-loopback-pinentry: Параметры агента
no-allow-mark-trusted: Параметры агента
no-armor: Ввод и вывод GPG
no-auto-key-retrieve: Параметры настроек GPG
no-autostart: Параметры настроек GPG
no-autostart: Параметры настроек
no-autostart: Вызов gpg-connect-agent
no-batch: Параметры настроек GPG
no-common-certs-import: Эзотерические параметры
no-default-keyring: Эзотерические параметры GPG
no-default-recipient: Параметры настроек GPG
no-detach: Параметры агента
no-detach: Параметры Scdaemon
no-encrypt-to: Параметры ключей
no-expensive-trust-checks: Эзотерические параметры GPG
no-ext-connect: Вызов gpg-connect-agent
no-grab: Параметры агента
no-greeting: Параметры настроек GPG
no-groups: Параметры ключей
no-keyring: Эзотерические параметры GPG
no-literal: Эзотерические параметры GPG
no-mangle-dos-filenames: Параметры настроек GPG
no-mdc-warning: Параметры настроек GPG
no-options: Параметры настроек GPG
no-random-seed-file: Параметры настроек GPG
no-secmem-warning: Параметры настроек GPG
no-secmem-warning: Параметры настроек
no-sig-cache: Параметры настроек GPG
no-skip-hidden-recipients: Параметры ключей
no-tty: Параметры настроек GPG
no-use-standard-socket: Параметры агента
no-verbose: Параметры настроек GPG
not-dash-escaped: Эзотерические параметры GPG

O
ocsp: dirmngr-client
ocsp-current-period: Параметры dirmngr
ocsp-max-clock-skew: Параметры dirmngr
ocsp-max-period: Параметры dirmngr
ocsp-responder: Параметры dirmngr
ocsp-signer: Параметры dirmngr
only-ldap-proxy: Параметры dirmngr
openpgp: Параметры совместимости
options: Параметры агента
options: Параметры dirmngr
options: Параметры dirmngr
options: Параметры настроек GPG
options: Параметры настроек
options: Параметры Scdaemon
output: Ввод и вывод GPG
output: Ввод и вывод
output: gpgv
output: gpg-zip
override-session-key: Эзотерические параметры GPG

P
p12-charset: Ввод и вывод
passphrase: Эзотерические параметры GPG
passphrase: Вызов gpg-preset-passphrase
passphrase-fd: Эзотерические параметры GPG
passphrase-fd: Эзотерические параметры
passphrase-file: Эзотерические параметры GPG
passphrase-repeat: Эзотерические параметры GPG
passwd: Управление ключами OpenPGP
passwd: Управление сертификатами
pcsc-driver: Параметры Scdaemon
pem: dirmngr-client
permission-warning: Параметры настроек GPG
personal-cipher-preferences: Параметры OpenPGP
personal-compress-preferences: Параметры OpenPGP
personal-digest-preferences: Параметры OpenPGP
pgp6: Параметры совместимости
pgp7: Параметры совместимости
pgp8: Параметры совместимости
photo-viewer: Параметры настроек GPG
pinentry-invisible-char: Параметры агента
pinentry-mode: Эзотерические параметры GPG
pinentry-mode: Эзотерические параметры
pinentry-program: Параметры агента
pinentry-timeout: Параметры агента
pinentry-touch-file: Параметры агента
ping: dirmngr-client
policy-file: Параметры настроек
prefer-system-dirmngr: Параметры настроек
preserve-permissions: Эзотерические параметры GPG
preset: Вызов gpg-preset-passphrase
primary-keyring: Параметры настроек GPG
print-md: Команды операций GPG

Q
q: Вызов gpg-connect-agent
q: Вызов symcryptrun
quick-add-key: Управление ключами OpenPGP
quick-add-uid: Управление ключами OpenPGP
quick-generate-key: Управление ключами OpenPGP
quick-lsign-key: Управление ключами OpenPGP
quick-revoke-uid: Управление ключами OpenPGP
quick-set-expire: Управление ключами OpenPGP
quick-set-primary-uid: Управление ключами OpenPGP
quick-sign-key: Управление ключами OpenPGP
quiet: Параметры агента
quiet: Параметры настроек GPG
quiet: gpgv
quiet: Вызов gpgconf
quiet: Вызов gpg-connect-agent
quiet: dirmngr-client
quiet: Вызов symcryptrun

R
raw-socket: Вызов gpg-connect-agent
reader-port: Параметры Scdaemon
rebuild-keydb-caches: Команды операций GPG
receive-keys: Команды операций GPG
recipient: Параметры ключей
recipient: Ввод и вывод
recipient: gpg-zip
recipient-file: Параметры ключей
recursive-resolver: Параметры dirmngr
recv-keys: Команды операций GPG
refresh-keys: Команды операций GPG
reload: Вызов gpgconf
remove-socketdir: Вызов gpgconf
require-cross-certification: Параметры настроек GPG
require-secmem: Параметры настроек GPG
resolver-timeout: Параметры dirmngr
rfc2440: Параметры совместимости
rfc4880: Параметры совместимости
rfc4880bis: Параметры совместимости
run: Вызов gpg-connect-agent

S
s: Параметры dirmngr
s2k-cipher-algo: Параметры OpenPGP
s2k-count: Параметры OpenPGP
s2k-digest-algo: Параметры OpenPGP
s2k-mode: Параметры OpenPGP
scdaemon-program: Параметры агента
search-keys: Команды операций GPG
secret-keyring: Параметры настроек GPG
send-keys: Команды операций GPG
sender: Параметры ключей
server: Команды агента
server: Команды dirmngr
server: Команды операций GPGSM
server: Команды Scdaemon
set-filename: Эзотерические параметры GPG
set-filesize: Эзотерические параметры GPG
set-notation: Эзотерические параметры GPG
set-policy-url: Эзотерические параметры GPG
sh: Параметры агента
sh: Параметры dirmngr
show-keyring: Не рекомендованные параметры
show-notation: Не рекомендованные параметры
show-photos: Не рекомендованные параметры
show-policy-url: Не рекомендованные параметры
show-session-key: Эзотерические параметры GPG
shutdown: Команды dirmngr
sig-keyserver-url: Эзотерические параметры GPG
sig-notation: Эзотерические параметры GPG
sig-policy-url: Эзотерические параметры GPG
sign: Команды операций GPG
sign: Команды операций GPGSM
sign-key: Управление ключами OpenPGP
skip-hidden-recipients: Параметры ключей
skip-verify: Эзотерические параметры GPG
squid-mode: dirmngr-client
ssh-fingerprint-digest: Параметры агента
standard-resolver: Параметры dirmngr
status-fd: Эзотерические параметры GPG
status-fd: gpgv
status-file: Эзотерические параметры GPG
store: Команды операций GPG
subst: Вызов gpg-connect-agent
supervised: Команды агента
supervised: Команды dirmngr
symmetric: Команды операций GPG

T
tar: gpg-zip
tar-args: gpg-zip
textmode: Параметры OpenPGP
throw-keyids: Эзотерические параметры GPG
time-only: watchgnupg
tofu-default-policy: Параметры настроек GPG
tofu-policy: Команды операций GPG
trust-model: Параметры настроек GPG
trust-model:always: Параметры настроек GPG
trust-model:auto: Параметры настроек GPG
trust-model:classic: Параметры настроек GPG
trust-model:direct: Параметры настроек GPG
trust-model:pgp: Параметры настроек GPG
trust-model:tofu: Параметры настроек GPG
trust-model:tofu+pgp: Параметры настроек GPG
trustdb-name: Параметры настроек GPG
trusted-key: Параметры настроек GPG
try-all-secrets: Параметры ключей
try-secret-key: Параметры ключей
ttyname: Параметры агента
ttytype: Параметры агента

U
ungroup: Параметры ключей
update-trustdb: Команды операций GPG
url: dirmngr-client
url: dirmngr-client
use-agent: Параметры настроек GPG
use-embedded-filename: Эзотерические параметры GPG
use-standard-socket: Параметры агента
use-standard-socket-p: Параметры агента
use-tor: Параметры dirmngr
utf8-strings: Параметры настроек GPG

V
v: Параметры dirmngr
v: Параметры настроек
v: Параметры Scdaemon
v: dirmngr-client
validate: dirmngr-client
validation-model: Параметры сертификатов
verbose: Параметры агента
verbose: Параметры dirmngr
verbose: Параметры настроек GPG
verbose: Параметры настроек
verbose: Параметры Scdaemon
verbose: watchgnupg
verbose: gpgv
verbose: Вызов gpg-preset-passphrase
verbose: Вызов gpg-connect-agent
verbose: dirmngr-client
verbose: Вызов symcryptrun
verify: Команды операций GPG
verify: Команды операций GPGSM
verify-files: Команды операций GPG
verify-options: Параметры настроек GPG
verify-options:pka-lookups: Параметры настроек GPG
verify-options:pka-trust-increase: Параметры настроек GPG
verify-options:show-keyserver-urls: Параметры настроек GPG
verify-options:show-notations: Параметры настроек GPG
verify-options:show-photos: Параметры настроек GPG
verify-options:show-policy-urls: Параметры настроек GPG
verify-options:show-primary-uid-only: Параметры настроек GPG
verify-options:show-std-notations: Параметры настроек GPG
verify-options:show-uid-validity: Параметры настроек GPG
verify-options:show-unusable-uids: Параметры настроек GPG
verify-options:show-user-notations: Параметры настроек GPG
version: Команды агента
version: Команды dirmngr
version: Общие команды GPG
version: Общие команды GPGSM
version: Команды Scdaemon
version: watchgnupg
version: dirmngr-client
version: gpg-zip

W
warranty: Общие команды GPG
warranty: Общие команды GPGSM
weak-digest: Эзотерические параметры GPG
weak-digest: gpgv
with-colons: Ввод и вывод GPG
with-ephemeral-keys: Эзотерические параметры
with-fingerprint: Ввод и вывод GPG
with-icao-spelling: Ввод и вывод GPG
with-key-data: Эзотерические параметры GPG
with-key-data: Ввод и вывод
with-keygrip: Ввод и вывод GPG
with-secret: Ввод и вывод GPG
with-secret: Ввод и вывод
with-subkey-fingerprint: Ввод и вывод GPG
with-validation: Ввод и вывод
with-wkd-hash: Ввод и вывод GPG

X
xauthority: Параметры агента

Y
yes: Параметры настроек GPG

Jump to:   A   B   C   D   E   F   G   H   I   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y  

Следующий: , Пред: , Вверх: Верх   [Содержание][Указатель]

Указатель переменных среды и файлов

Jump to:   .   ~  
A   C   D   G   H   L   O   P   Q   R   S   T   X  
Указатель Entry  Section

.
.gpg-v21-migrated: Настройки GPG

~
~/.gnupg: Настройки GPG

A
ASSUAN_DEBUG: Параметры Scdaemon

C
COLUMNS: Настройки GPG
com-certs.pem: Настройки GPGSM

D
dirmngr.conf: Настройки dirmngr
DISPLAY: GPGSM OPTION

G
GNUPGHOME : Параметры агента
GNUPGHOME : Параметры настроек GPG
GNUPGHOME: Настройки GPG
GNUPGHOME : Параметры настроек
GNUPGHOME : Параметры Scdaemon
GNUPGHOME : gpgv
GNUPGHOME : Вызов gpg-connect-agent
GNUPGHOME : Вызов symcryptrun
gpg-agent.conf: Настройки агента
gpg.conf: Настройки GPG
gpgconf.ctl: Параметры агента
gpgconf.ctl: Параметры настроек GPG
gpgconf.ctl: Параметры настроек
gpgconf.ctl: Параметры Scdaemon
gpgconf.ctl: gpgv
gpgconf.ctl: Вызов gpg-connect-agent
gpgconf.ctl: Вызов symcryptrun
gpgsm.conf: Настройки GPGSM
GPG_TTY: Вызов GPG-AGENT
GPG_TTY: GPGSM OPTION

H
help.txt: Настройки GPGSM
HKCU\Software\GNU\GnuPG:DefaultLogFile: Параметры агента
HKCU\Software\GNU\GnuPG:HomeDir: Параметры агента
HKCU\Software\GNU\GnuPG:HomeDir: Параметры настроек GPG
HKCU\Software\GNU\GnuPG:HomeDir: Параметры настроек
HKCU\Software\GNU\GnuPG:HomeDir: Параметры Scdaemon
HKCU\Software\GNU\GnuPG:HomeDir: gpgv
HKCU\Software\GNU\GnuPG:HomeDir: Вызов gpg-connect-agent
HKCU\Software\GNU\GnuPG:HomeDir: Вызов symcryptrun
HOME: Настройки GPG
http_proxy: Параметры dirmngr

L
LANGUAGE: Настройки GPG
LC_CTYPE: GPGSM OPTION
LC_MESSAGES: GPGSM OPTION
LINES: Настройки GPG

O
openpgp-revocs.d/: Настройки GPG

P
PATH: Параметры настроек GPG
PINENTRY_USER_DATA: Настройки GPG
PINENTRY_USER_DATA: GPGSM OPTION
policies.txt: Настройки GPGSM
private-keys-v1.d: Настройки агента
pubring.gpg: Настройки GPG
pubring.kbx: Настройки GPG
pubring.kbx: Настройки GPGSM

Q
qualified.txt: Настройки GPGSM

R
random_seed: Настройки GPG
random_seed: Настройки GPGSM

S
S.gpg-agent: Настройки GPGSM
secring.gpg: Настройки GPG
SHELL: Параметры агента
sshcontrol: Настройки агента

T
TERM: GPGSM OPTION
trustdb.gpg: Настройки GPG
trustlist.txt: Настройки агента

X
XAUTHORITY: GPGSM OPTION

Jump to:   .   ~  
A   C   D   G   H   L   O   P   Q   R   S   T   X  

Пред: , Вверх: Верх   [Содержание][Указатель]

Указатель

Jump to:   G   R   S   П   С  
Указатель Entry  Section

G
gpgconf.conf: Файлы gpgconf

R
relax: Настройки агента

S
scd-event: Настройки Scdaemon
scdaemon.conf: Настройки Scdaemon
SIGHUP: Сигналы агента
SIGHUP: Сигналы dirmngr
SIGINT: Сигналы агента
SIGINT: Сигналы dirmngr
SIGTERM: Сигналы агента
SIGTERM: Сигналы dirmngr
SIGUSR1: Сигналы агента
SIGUSR1: Сигналы dirmngr
SIGUSR2: Сигналы агента
swdb.lst: Файлы gpgconf

П
параметры команды: Вызов GPG-AGENT
параметры команды: Вызов DIRMNGR
параметры команды: Вызов GPG
параметры команды: Вызов GPGSM
параметры команды: Вызов SCDAEMON
Параметры команды DIRMNGR: Вызов DIRMNGR
Параметры команды GPG: Вызов GPG
параметры команды GPG-AGENT: Вызов GPG-AGENT
Параметры команды GPGSM: Вызов GPGSM
Параметры команды SCDAEMON: Вызов SCDAEMON
параметры, команда DIRMNGR: Вызов DIRMNGR
параметры, команда GPG: Вызов GPG
параметры, команда GPG-AGENT: Вызов GPG-AGENT
параметры, команда GPGSM: Вызов GPGSM
параметры, команда SCDAEMON: Вызов SCDAEMON

С
соразработчики: Соразработчики

Jump to:   G   R   S   П   С  

Footnotes

(1)

Для оболочек могло бы быть полезно средство gpgconf, поскольку оно позволяет редактировать этот файл настроек с помощью строк, экранированных процентом.

(2)

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

(3)

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

(4)

Правда, ключи OpenPGP не реализованы, gpg все еще пользуется файлом pubring.gpg.