GnuPG/ru

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

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

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

Другое программное обеспечение
Как минимум GnuPG должен быть установлен. Сегодня многие приложения поддерживают PGP, поэтому включение USE-флага crypt является хорошей идеей. Если требуется почтовый клиент, поддерживающий GnuPG, подойдет любой из следующих вариантов:


 * PinePGP.
 * Mutt — Небольшой но мощный текстовый почтовый клиент.
 * Thunderbird — E-mail решение от Mozilla.
 * Evolution — Почтовый клиент GNOME, похожий на Microsoft Outlook.
 * KMail — Почтовый клиент KDE.
 * При использовании окружения рабочего стола KDE, возможно, имеет смысл установить KGPG . Среди прочих возможностей, эта небольшая программа позволяет создавать пары ключей, импортировать ключи из файлов ASCII, подписывать импортированные ключи и экспортировать ключи.

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

Можно выбрать тип ключа, но большинство пользователей предпочтут вариант по умолчанию, RSA и RSA. Далее следует размер ключа — помните, что чем он больше, тем лучше, но не используйте размер более 2048 с ключами DSA/ElGamal. 2048 более чем достаточно для обычной коммуникации по электронной почте.

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

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

Теперь введите парольную фразу дважды. Имеет смысл использовать сильную парольную фразу. Если кому-либо удастся заполучить соответствующий закрытый ключ и взломать пароль, то он получит возможность выдавать себя за пользователя, отправляя подписанные сообщения от его имени. Злоумышленник сможет заставить абонентов жертвы поверить, что почта или сообщения отправляются жертвой.

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

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

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

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

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

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

Отправка ключей на сервер
Теперь, когда ключ сгенерирован, неплохой идеей будет отправить его на публичный сервер ключей. В мире существует множество серверов ключей и большинство из них обмениваются ключами. В следующем примере ключ Larry the cow будет отправлен на сервер keys.gnupg.net. Отправка ключей использует HTTP, поэтому, если для трафика HTTP используется прокси-сервер, не забудьте настроить его соответствующим образом. Ключ отправляется с помощью следующей команды:, где  — идентификатор ключа. Если HTTP прокси не используется, то можно убрать параметр.

Также хорошей идеей будет отправить на сервер ключей ключи других людей, подписанные Larry. Мы могли бы отправить ключ Luis Pinto на сервер ключей. Тогда те, кто доверяет ключу Larry, могут использовать подпись, размещенную им на сервере для доверия ключу Luis.

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

Как видно из ответа сервера, отправлено несколько ключей на сервер, но используется только. Теперь Larry the cow может получить ключ и подписать его, если он ему доверяет.

Что такое GPG agent?
Иногда, при работе с определенными приложениями, возникает необходимость часто использовать ключ GPG, что означает, что необходимо часто вводить парольную фразу. В прошлом многие приложения поддерживали механизм кэширования парольных фраз. Это облегчало жизнь пользователям, поскольку парольные фразы вводились автоматически. Однако нельзя было разделять этот кэш между несколькими программами (это довольно небезопасно) и это вынуждало приложения снова и снова изобретать велосипед.

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

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

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

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

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

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

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

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

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

When using a desktop environment other than KDE, put the above lines in if  is used to start X.org or  if XDM, GDM, KDM, etc. are used.

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

To encrypt:

To sign:

To encrypt and sign:

This will create binary files. To create ASCII files, just add the  option to the beginning of the command.

Расшифровка и проверка подписей
Suppose that Larry has received an encrypted file. 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 cipher. The file can be encrypted using ; decrypting uses the same command mentioned above.

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

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

Uncomment the two lines above. With this modification, 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 an attempt to fetch the public key 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 keyring from there. It is capable of searching for revoked keys, new IDs, and new signatures on keys. It is a wise idea to 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, старый способ и новый способ. По старому способу, сообщения будут появляться в виде простого текста, без возможного форматирования, а любые вложенные файлы будут не подписаны/не зашифрованы. Здесь приведен пример сообщения, подписанного старым способом:

Сообщения этого рода не имеют смысла в сегодняшнем мире, так как есть удобные графические интерфейсы пользователя и программы чтения электронной почты, которые понимают HTML.

Для того, чтобы решить эту проблему, к стандарту MIME (Multipurpose Internet Mail Extensions) было создано дополнение. Оно добавило поле в email сообщение, которое сообщает программе чтения почты, что все содержимое этого сообщения подписано и/или зашифровано. Проблема заключается в том, что не все программы чтения почты поддерживают такие функции. Некоторые даже портят содержимое (Microsoft Outlook знаменит своими отказами с этим работать).

Kgpg
Kgpg is a wonderful GUI for GnuPG. The main screen provides an area to paste text to sign or encrypt. The reverse is also true: ASCII armored text to be decrypted can also be entered.

Seahorse
Seahorse aims to be a GnuPG GUI interface for the GNOME desktop. The software has been evolving fast, but it still lacks many important features that can be found in Kgpg or the command line version.

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 (which most users want) a GPG agent must be running.

Чтобы проверить, правильно ли сконфигурирован KMail, перейдите в. GpgME backend должен отобразиться в списке и установлен флажок рядом с OpenPGP. Если он находится в списке, но затенен, нажмите на. Если backend, основанный на GpgME, остается затененным, KMail не будет работать как надо.

Если не получается заставить KMail работать должным образом, посмотрите страницу официальная страница KMail PGP, чтобы получить больше информации.

Claws-Mail
Этот почтовый клиент очень быстро работает с большими почтовыми ящиками, имеет все приятные в работе функции, которые требуются от программ чтения электронной почты и хорошо работает с GPG. Только одна проблема заключается в том, что она не работает со старыми подписями PGP, поэтому, при получении таких писем, проверять подписи придется вручную.

Чтобы использовать GPG ключ с Claws-Mail, перейдите к пункту. Как только это сделано, выберите какой ключ нужно использовать, возможно, большинству пользователей подойдет ключ по умолчанию.

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

The latest versions of GnuPG seem to have broken, which was used to send all keys in a keyring to the public server.

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

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

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

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

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

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