Следующий: , Пред: , Вверх: Вызов 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), то *очень* легко подглядеть вашу фразу-пароль!

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

При неинтерактивном применении gpg применяйте машинный протокол, а не исходный протокол, предназначенный для непосредственного использования людьми. Машинный протокол предоставляет стабильный и хорошо документированный интерфейс, независимый от настроек локализации и будущих изменений gpg. Чтобы перейти на этот протокол, воспользуйтесь параметрами --with-colons и --status-fd. Для определенных операций может оказаться удобным и параметр --command-fd. Описание протокола см. на этой странице руководства и в файле DETAILS. Заметьте, что документация info GnuPG, так же как версия PDF руководства GnuPG, включает главу об автоматическом применении GnuPG. Вместо этого в качестве абстракции высокого уровня для этого интерфейса можно применять библиотеку GPGME.

СОВМЕСТИМОСТЬ С ДРУГИМИ ПРОГРАММАМИ 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   [Содержание][Указатель]