Глава 1. Быстрый старт

$Id: c1.xml 5 2005-10-02 16:50:06Z zwon $

Содержание

Генерация новой пары ключей
Создание отзывающего сертификата
Обмен ключами
Экспорт открытого ключа
Импорт открытого ключа
Шифрование
Генерация подключа.
Зашифрование и расшифрование документов
Цифровые подписи и их проверка
Прозрачно подписанные(Clearsigned) документы
Отделённая подпись

GnuPG - инструмент для защиты коммуникаций. В этой главе кратко описываются основы работы с GnuPG, включая создание пары ключей, обмен ключами и их проверку, зашифрование и расшифрование документов, заверение документов цифровой подписью. Здесь не описываются в деталях принципы криптографии с открытым ключом, шифрования и цифровых подписей, эти вопросы более подробно рассмотрены в главе "Основы криптографии" (желательно прочитать её до того, как Вы начнёте использовать GnuPG для практических целей). Здесь, также, не рассматриваются тонкости использования GnuPG, эти вопросы рассматриваются в главах "Управление ключами" и "Повседневное использование".

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

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

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

alice$ gpg --gen-key gpg (GnuPG) 1.4.0; Copyright (C) 2004 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) (5) RSA (sign only) Your selection?

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

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

Your selection? 1 DSA keypair will have 1024 bits. ELG-E keys may be between 1024 and 4096 bits long. What keysize do you want? (2048)

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

Наконец, Вы должны указать срок действия ключа. В случае варианта 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)

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

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

You need a User-ID to identify your key; the software constructs the user id from Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>" Real name: Alice Email address: alice@wonderland.uk Comment: test key You selected this USER-ID: "Alice (test key) <alice@wonderland.uk>" Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?

Для того, чтобы принять данный идентификатор введите 'O'. Если Вы хотите изменить имя, коментарий или адрес e-mail введите, соответственно, 'N', 'C' или 'E'. Ввод символа 'Q' приведёт к выходу из программы. При генерации ключа создается только один идентификатор пользователя, но возможно создание дополнительных идентификаторов, если Вы хотите использовать ключ в нескольких контекстах; например, как инженер на работе и как политический деятель после нее. Идентификатор пользователя не может быть отредактирован после создания.

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

You need a Passphrase to protect your private key. Enter passphrase:

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

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

We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. ++++++++++++++++++++++++++++++.+++++++++++++++.+++++.++++++++++...+++++.+++++.++ +++++++++++++...++++++++++++++++++++.+++++...+++++..++++++++++..+++++.+++++.>+++ ++............<+++++>+++++...................................................... .+++++ We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. +++++.++++++++++++++++++++++++++++++..++++++++++++++++++++.+++++.+++++.+++++.+++ ++.++++++++++...+++++.+++++.+++++++++++++++.+++++++++++++++...++++++++++++++++++ ++>++++++++++>..+++++........................................................... ...............................................................+++++^^^^^ gpg: /home/alice/.gnupg/trustdb.gpg: trustdb created gpg: key 5715A306 marked as ultimately trusted public and secret key created and signed. gpg: checking the trustdb gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u pub 1024D/5715A306 2005-04-09 Key fingerprint = F62B 2DBE A548 8077 6AA1 088F F69B 1489 5715 A306 uid alice (test key) <alice@wonderland.uk> sub 2048g/4710371E 2005-04-09

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

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

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

Аргумент mykey - идентификатор Вашей первичной пары ключей или любая часть идентификатора пользователя Вашей пары ключей. В нашем случае в качестве аргумента можно указать, например: 'alice', 'alice@wonderland.uk', '5715A306'. '5715A306' -- это идентификатор ключа, он был выведен при выполнении команды --gen-key после генерации ключа (см. предыдущий раздел). Сгенерированный сертификат будет сохранен в файле revoke.asc. Если опция --output опущена, результат помещается в стандартный вывод. Кроме того, GnuPG запрашивает причину генерации отзывающего сертификата.

alice% gpg --output revoke.asc --gen-revoke alice@wonderland.uk sec 1024D/5715A306 2005-04-09 alice (test key) <alice@wonderland.uk> Create a revocation certificate for this key? y Please select the reason for the revocation: 0 = No reason specified 1 = Key has been compromised 2 = Key is superseded 3 = Key is no longer used Q = Cancel (Probably you want to select 1 here) Your decision? 1 Enter an optional description; end it with an empty line: > Reason for revocation: Key has been compromised (No description given) Is this okay? y

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