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

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

Что такое 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 получил файл, который зашифрован им. Такая команда расшифрует файл. Она расшифрует документ и проверит подпись (если таковая имеется).

Шифрование и расшифровка без ключей
Также возможно шифрование файлов с использованием паролей вместо ключей. Пароль, сам по себе, будет функционировать как ключ — он будет использован в качестве симметричного шифра. Файл может быть зашифрован, используя ; расшифровка использует ту же команду о которой писалось ранее.

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, старый способ и новый способ. По старому способу, сообщения будут появляться в виде простого текста, без возможного форматирования, а любые вложенные файлы будут не подписаны/не зашифрованы. Здесь приведен пример сообщения, подписанного старым способом:

Сообщения этого рода не имеют смысла в сегодняшнем мире, так как есть удобные графические интерфейсы пользователя и программы чтения электронной почты, которые понимают 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 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
Если установлен USE-флаг, KMail скомпилируется с поддержкой gpg, и сможет шифровать и расшифровывать встроенные в почту в виде текста PGP автоматически, также как шифровать почту OpenPGP/MIME. Для расшифровки OpenPGP/MIME почты (что необходимо большинству пользователей), GPG agent должен быть запущен.

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

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

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

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

Некоторые из проблем
У меня были некоторые проблемы с использованием фото в ключах. Проверьте версию которой вы пользуетесь. Если у вас GnuPG 1.2.1-r1 и выше, то всё, вероятно, в порядке. Более старые версии могут иметь проблемы. Также, большинство серверов ключей не работают с ключами с фото, поэтому будет лучше если Вы не станете добавлять фотографии.

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

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

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

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

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

Everyone in the team you guys rock.

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