GnuPG/ru

Это руководство научит Gentoo Linux пользователя основам использования GnuPG; инструмента для защищенной передачи сообщений.

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

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

Другое программное обеспечение
At a very basic level GnuPG must be emerged. Many applications today have some sort of support for PGP, so having  as a USE variable is a good idea. When desiring an email client capable of using GnuPG any of the following options are well suited:
 * PinePGP ;
 * Mutt — A small but very powerful text-based mail client;
 * Thunderbird — Mozilla's e-mail solution;
 * Evolution — A GNOME Microsoft Outlook work alike;
 * KMail — KDE's mail client.
 * Installing KGPG might be of interest when using the KDE desktop environment. This small program allows for the generation of key pairs, importing keys from ASCII files, signing imported keys, exporting keys, among a few other nifty features.

Создание ключа
Чтобы создать ключ, используйте команду. При первом запуске, она создаст несколько каталогов необходимые для правильной работы GnuPG; запустите её снова чтобы создать ключи:

Здесь можно выбрать тип ключа. Большинство пользователей предпочтут алгоритмы по умолчанию: RSA и RSA. Далее идет размер ключа. Запомните, что чем больше, тем лучше, но не используйте размер больший чем 2048 с ключами DSA/ElGamal. В основном, 2048 более чем достаточно для нормальной почтовой связи.

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

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

Now enter a key passphrase twice. It is a good idea to use a strong password. If someone is able to get a hold of the associated private key and cracks the password they will be able to impersonate the user by sending signed messages just as the user would. The malicious user could dupe the victims contacts into believing the e-mails or messages were sent by the victim. This could cause major problems.

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

Генерация сертификата отзыва
После создания ключей нужно создать сертификат отзыва. Выполнение этого позволит отозвать ключ в случае если с ключом произойдет что-то неприятное (кто-то злонамеренно завладеет ключом/парольной фразой).

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

Экспорт ключей
Для экспорта ключа, введите. Вы можете почти всегда использовать ID ключа или что-нибудь, что идентифицирует ключ (в этом примере использовался email адрес). Теперь Larry имеет файл, который он может отправить своим друзьям, или разместить на своей веб-странице, чтобы другие люди могли с ним безопасно связаться.

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

Теперь, мы будем добавлять открытый ключ Луиса Пинто (моего друга) в нашу связку открытых ключей. После звонка по телефону и запрашивания отпечатка его ключа, я сравню отпечаток с результатом команды. В случае если ключ подлинный, я добавлю его в связку открытых ключей. В этом частном случае, ключ Луиса истечет на 2003-12-01, поэтому у меня будет спрошено желаю ли я, чтобы моя подпись этого ключа истекла в то же время.

Отправка ключей на сервер
Now that a key has been generated, it is probably a good idea to send it to a world key server. There are a lot of key servers in the world and most of them exchange keys. In this next example Larry the cow's key will be sent to the keys.gnupg.net server. Sending keys uses HTTP, so if a proxy is used for HTTP traffic do not forget to set it accordingly. The command for sending the key is: where   is the key ID. If a HTTP proxy is not needed then the  option can be removed.

Sending other people's keys that Larry has signed signed to the key server is also a good idea. We could send Luis Pinto's key to the key server. This way someone who trusts Larry's key can use the signature that he has placed there to trust Luis's key.

Получение ключей с сервера
Now we are going to search for Gustavo Felisberto's key and add it to the keyring of Larry the cow (just in case you did not notice Gustavo Felisberto is the author this guide :)).

From the server response it is possible to see few keys have been submitted to the key server, however only  is used. Now Larry the cow can get the key and sign it if he trusts it.

Что такое GPG agent?
Sometimes working with certain applications requires the use of a GPG key very frequently, which means that a passphrase must be frequently entered. In the past many applications supported a passphrase caching mechanism. This would make life easier for users because passphrases were automatically entered. However, this disallowed sharing this cache across programs (how secure would that be?) and forced applications to reinvent the wheel over and over again.

A GPG agent is a separate application that GPG uses to cache the passphrase in a standard and secure way. It allows applications to use GPG concurrently: if the passphrase is entered while working in one application, the other application can work with GPG without reiterating the request for the passphrase to unlock the key — if the GPG Agent is configured to allow so, of course.

Gentoo provides a few GPG agent applications. The package contains what could be considered the reference one, and will be the primary choice used in this article.

Конфигурация gpg-agent и pinentry
GnuPG includes. Pinentry is a helper application that  uses to request the passphrase in a graphical window. It comes in three flavors: it can popup a window using the GTK+, QT, or curses libraries (depending on the USE flags set in ).

If was installed with more than one popup window type, it is possible to choose between the windows with the  command:

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

Затем, настройте GnuPG на использование agent, когда это уместно. Отредактируйте и добавьте следующую строчку:

Теперь система (почти) готова для использования GPG agent.

Автоматический запуск GPG agent
If KDE is used as the desktop environment, edit the following (system-wide) or  (local user) file. Add the following command to the appropriate file to have KDE automatically starting the GPG Agent:

Additionally, uncomment the following lines in (system-wide) or add it to  (local user):

When using a desktop environment other than KDE, put that line (the same as mentioned above) in the file (if the  command is used to invoke the GUI) or the  file (if XDM, GDM, KDM are used).

Шифрование и подпись
Lets say that Larry has a file he wishes to send Luis. Larry can encrypt it, sign it, or encrypt it and sign it. Encrypting means that only Luis will be able to open it. The signature tells Luis that it was really Larry who created the file.

Следующие три команды как раз это и сделают: зашифруют, подпишут и зашифруют/подпишут.

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

Расшифровка и проверка подписей
Suppose that Larry has received a file which is encrypted to him. The command used to decrypt it is. This will decrypt the document and verify the signature (if there is one).

Шифрование и расшифровка без ключей
It is possible to encrypt files using passwords instead of keys. The password itself will function as the key — it will be used as a symmetric cypher. The file can be encrypted using ; decrypting uses the same command as mentioned previously.

GnuPG запросит парольную фразу и ее подтверждение.

Расширенные функции
В GnuPG есть несколько приятных расширенных функций. Чтобы их найти, откройте файл.

Search for the above two lines and uncomment them. With this modification made, any time GnuPG needs to check a signature and does not find the public key on the local keyring it will contact the key server at keys.gnupg.net in attempt to fetch the public key from from the server.

Another nice command is. This will contact the key server defined in the configuration file and refresh the public keys in the local key ring from there. It is capable of searching for revoked keys, new IDs, and new signatures on keys. It is a wise idea run this command once or twice a month; if a user revokes their key this can provide a notification the key can no longer be trusted.

О подписях электронной почты
95% of the time GnuPG is used with email by signing/encrypting outgoing messages or reading signed/encrypted messages.

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

Messages this way are not good in today's world, where there are nice GUIs and email readers that understand HTML.

To solve this an addition to the MIME (Multipurpose Internet Mail Extensions) was created. This adds a field to the email that tells the mail reader that the full content of the message is signed and/or encrypted. The problem with this is that not all mail readers support such features. Some even mess up the content (Microsoft's Outlook is famous for not working with this).

Kgpg
Kgpg is a wonderful GUI for GnuPG. The main screen provides an area to paste text to signed or encrypted, the reverse is also true; ASCII armored text to be decrypted can also be entered.

From within the main screen text decrypted (a password is needed), files encrypted, and pasted text can be signed.

Seahorse
Seahorse ориентирована на то, чтобы быть графическим интерфейсом GnuPG для рабочего стола Gnome. Программа быстро развивается, но все еще не имеет множества важных функций, которые могут быть найдены в Kgpg или командной строке.

KMail
If the  USE flag is set, KMail will be compiled with gpg support, and will be able to encrypt and decrypt inline PGP mails automatically as well as encrypting OpenPGP/MIME mails. To decrypt OpenPGP/MIME mails as well (most users want) a GPG agent must be running.

To verify if KMail is properly configured navigate to. A GpgME-based backend should be listed and the OpenPGP checkbox should be checked. If it is listed but grayed out, click on. If the GpgME-based backend remains grayed out, KMail is not working properly.

When unable to get KMail to behave, see the official KMail PGP page for more information.

Claws-Mail
This mail client is very fast with big mailboxes, has all the nice features one wants in mail readers and works well with GPG. The only problem is that it does not work with the old PGP signatures, so when receiving those kind of mails the signatures must be hand-checked.

To use a GPG key with Claws-Mail navigate to. Once there choose which key to use, most users should go with the default key.

Некоторые из проблем
I had some problems with photos in keys. Check the version you are using. If you have GnuPG 1.2.1-r1 and up you are probably OK, older versions may have problems. Also most key servers do not like keys with photos, so you are better if you don't add photos.

The latest versions of GnuPG do not seem to work with the that was used to send all keys in a keyring to the public server.

О чем здесь не написано
is a very complex tool, it lets user do much more than what has been covered here. This document is for users who are new to GnuPG. For more information check out the official GnuPG website.

This article does not cover tools such as pgp4pine, gpgpine, evolution, and or Windows GPG tools.

Благодарности
Настольная Книга GnuPG от John Michaeil Ashley - очень хорошая книга для новичков.

Swift (Sven Vermeulen) за подталкивание меня к переписанию этого руководства.

Каждого из команды #gentoo-doc. Парни, вы рулите.

Tiago Serra, за мое возвращение обратно на путь конфиденциальности.