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.

Получение ключей с сервера
Теперь мы собираемся найти ключ Gustavo Felisberto и добавить его в связку ключей Larry the cow (на случай, если вы не заметили, Gustavo Felisberto - автор этого руководства :&#41;).

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.

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

Gentoo предоставляет несколько приложений GPG agent. Пакет содержит то, что можно рассматривать как эталон, и будет основным, что будет использоваться в этой статье.

Конфигурация gpg-agent и pinentry
GnuPG включает. Pinetry — это вспомогательное приложение, которое  использует для запроса парольной фразы в графическом окне. Оно бывает трех видов: отображение окна с использованием GTK+, QT или библиотек curses (в зависимости от установленных USE-флагов в ).

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

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

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

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

Автоматический запуск GPG agent
Если используется KDE в качестве рабочей среды, отредактируйте следующее (глобально) или  (для локального пользователя) файл, чтобы KDE автоматически запускал GPG agent:

Дополнительно, раскомментируйте следующую строку в (глобально) или добавьте в  (для локального пользователя):

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).

Шифрование и подпись
Давайте предположим, что у Larry есть файл, который он хотел бы отправить Луису. Larry может его зашифровать, подписать, или зашифровать и подписать одновременно. Шифрование означает что только Луис сможет его открыть. Подпись говорит Луису о том что Larry действительно тот кто создал этот файл.

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

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

Расшифровка и проверка подписей
Предположим, Larry получил файл, который зашифрован им. Такая команда расшифрует файл. Она расшифрует документ и проверит подпись (если таковая имеется).

Шифрование и расшифровка без ключей
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 есть несколько приятных расширенных функций. Чтобы их найти, откройте файл.

Найдите две линии выше и раскомментируйте их. С таким изменением, всякий раз когда GnuPG потребуется проверить подпись и он не найдет открытый ключ в локальной связке, GnuPG соединится с сервером ключей по адресу keys.gnupg.net и попытается загрузить открытый ключ с сервера.

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% времени, GnuPG будет использоваться в электронной почте для подписывая/шифрования исходящих сообщений или чтения подписанных/зашифрованных сообщений.

Существует два способа подписать/зашифровать почту с 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.

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

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

Эта статья не рассказывает о таких инструментах как, , или о инструментах GPG для Windows.

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

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

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

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