Описание GNU Privacy Guard
. |  | След.

# 1. Быстрый старт

GnuPG - инструмент для защиты коммуникаций. Эта глава коротко описывает основы работы с GnuPG, включая создание пар ключей, обмен ключами и их проверку, зашифровку и расшифровку документов, заверение документов цифровой подписью. Она не описывает в деталях принципы криптографии с открытым ключом, шифрования и цифровых подписей. Эти вопросы рассматриваются в главе 2. Здесь, также, не рассматриваются тонкости использования GnuPG. Эти вопросы рассматриваются в главах 3 и 4.

GnuPG использует криптографию с открытым ключом. Каждый пользователь имеет пару ключей (keypair), состоящую из секретного (private) и открытого (public) ключей. Секретный ключ является секретом пользователя и не может быть передан другому лицу, ни при каких обстоятельствах. Открытый ключ передается всем людям, с которыми пользователь будет обмениваться сообщениями. GnuPG использует несколько более хитроумную схему, при которой пользователь имеет первичную пару ключей и, возможно, дополнительно несколько подчиненных. Первичная и подчиненные пары объединены, для упрощения их использования, и эта связка, зачастую, может рассматриваться просто, как одна пара ключей.

# Генерация новой пары ключей

Для создания первичной пары ключей используется команда `--gen-key`

    alice% gpg --gen-key
    gpg (GnuPG) 0.9.4; Copyright (C) 1999 Free Software Foundation, Inc.
    This program comes with ABSOLUTELY NO WARRANTY.
    This is free software, and you are welcome to redistribute it
    under certain conditions. See the file COPYING for details.

    Please select what kind of key you want:
       (1) DSA and ElGamal (default)
       (2) DSA (sign only)
       (4) ElGamal (sign and encrypt)
    Your selection?

GnuPG может создавать несколько разных типов ключей, но первичный ключ должен быть пригоден для создания подписи (signature). Поэтому есть только три варианта. Вариант 1 создает две пары ключей. DSA - первичная, используемая только для подписи. ElGamal - подчиненная, используемая для шифрования. Вариант 2 похож, но создает только пару DSA. Вариант 4[1] создает только пару ElGamal, используемую и для подписи и для шифрования. В любом случае, позже можно создать дополнительные пары ключей для подписи и шифрования. Большинству пользователей подойдет вариант 1.

Также Вы должны выбрать размер ключа. Размер ключа DSA должен быть между 512 и 1024 бит. Ключ ElGamal может быть любого размера. Обычно, GnuPG требует ключи не короче 768 бит. Таким образом, если Вы выбрали вариант 1 и размер ключа больше 1024 бит, то ключ ElGamal будет иметь указанный размер, а ключ DSA - 1024 бита.

    About to generate a new ELG-E keypair.
                  minimum keysize is  768 bits
                  default keysize is 1024 bits
        highest suggested keysize is 2048 bits
    What keysize do you want? (1024)

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

Наконец, Вы должны указать срок действия ключа. В случае варианта 1, указанный срок используется для обоих ключей.

    Please specify how long the key should be valid.
             0 = key does not expire
          <n>  = key expires in n days
          <n>w = key expires in n weeks
          <n>m = key expires in n months
          <n>y = key expires in n years
    Key is valid for? (0)

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

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

    Для идентификации ключа необходим идентификатор пользователя; программа
    конструирует его из полного имени пользователя, комментария и адреса email в виде:
        "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

    Real name:

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

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

    You need a Passphrase to protect your private key.

    Enter passphrase:

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

## Создание отзывающего сертификата

После создания пары ключей, Вам следует создать отзывающий сертификат (revokation certificate) для первичного открытого ключа, используя команду `--gen-revoke`. Если Вы забудете пароль, либо Ваш секретный ключ будет похищен или утерян, этот сертификат может быть разослан для уведомления о том, что открытый ключ нельзя больше использовать. Отозванный открытый ключ может использоваться для проверки сделанных Вами подписей и дальше, но он не может быть использован для зашифровки сообщений для Вас. Также Вы сохраняете возможность расшифровки посланных Вам сообщений, при наличии секретного ключа.

    alice% gpg --output revoke.asc --gen-revoke mykey
    [...]

Аргумент `mykey` - идентификатор Вашей первичной пары ключей или любая часть идентификатора пользователя Вашей пары ключей. Сгенерированный сертификат будет сохранен в файле `revoke.asc`. Если опция `--output` опущена, результат помещается в стандартный вывод. Вы можете вывести сертификат на принтер и хранить его где-нибудь в надежном месте (банковский сейф подойдет). Если сертификат попадет в чужие руки и будет опубликован, то открытый ключ утратит свое действие.

###

[1] | Вариант 3 генерирует пару ElGamal, которая не пригодна для подписи.

. |  | След.
Описание GNU Privacy Guard |  | Обмен ключами