This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.

Please visit our production wiki at https://wiki.gentoo.org

GnuPG

From Gentoo Wiki (test)
Jump to:navigation Jump to:search
This page is a translated version of the page GnuPG and the translation is 100% complete.
 As of March 3rd, 2015, the information in this article is probably outdated. You can help the Gentoo community by verifying and updating this article.

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

Введение

О чем будет рассказано в этом руководстве

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

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

Установка

USE-флаги

USE flags for app-crypt/gnupg The GNU Privacy Guard, a GPL OpenPGP implementation

bzip2 Enable bzip2 compression support
doc Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
ldap Add LDAP support (Lightweight Directory Access Protocol)
nls Add Native Language Support (using gettext - GNU locale utilities)
readline Enable support for libreadline, a GNU line-editing library that almost everyone wants
selinux  !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
smartcard Build scdaemon software. Enables usage of OpenPGP cards. For other type of smartcards, try app-crypt/gnupg-pkcs11-scd. Bring in dev-libs/libusb as a dependency; enable scdaemon.
ssl Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security)
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
tofu Enable support for Trust on First use trust model; requires dev-db/sqlite.
tools Install extra tools (including gpgsplit and gpg-zip).
tpm Enable TPM support via app-crypt/tpm2-tss and build tpm2d.
usb Build direct CCID access for scdaemon; requires dev-libs/libusb.
user-socket try a socket directory which is not removed by init manager at session end
verify-sig Verify upstream signatures on distfiles
wks-server Install the wks-server

Emerge

root #emerge --ask app-crypt/gnupg

Другое программное обеспечение

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

  • PinePGP (mail-client/pinepgp).
  • Mutt (mail-client/mutt) — Небольшой, но мощный текстовый почтовый клиент.
  • Thunderbird (mail-client/thunderbird) — E-mail решение от Mozilla.
  • Evolution (mail-client/evolution) — Почтовый клиент GNOME, похожий на Microsoft Outlook.
  • KMail (kde-apps/kmail) — Почтовый клиент KDE.
    • При использовании окружения рабочего стола KDE, возможно, имеет смысл установить KGPG (kde-apps/kgpg). Среди прочих возможностей, эта небольшая программа позволяет создавать пары ключей, импортировать ключи из файлов ASCII, подписывать импортированные ключи и экспортировать ключи.

Использование

Генерация ключа и добавление в связку открытых ключей

Создание ключа

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

user $gpg --full-gen-key
gpg (GnuPG) 2.1.18; Copyright (C) 2017 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
 
Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection? 1

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

Разрабочикам Gentoo (особенно тем, которые работают с ебилдами), настоятельно рекомендуется использовать 4096-битные ключи.

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

Код Выбор размера ключа
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
Requested keysize is 2048 bits       
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) 0
Key does not expire at all

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

Код Заполнение информации о пользователе
Is this correct (y/n)? y
                          
GnuPG needs to construct a user ID to identify your key.
  
Real name: Larry the cow
Email address: larry@gentoo.org
Comment: Gentoo's own
You selected this USER-ID:
"Larry the cow (Gentoo's own) <larry@gentoo.org>"
  
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O 
You need a Passphrase to protect your secret key.    
  
Enter passphrase:

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

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

Генерация сертификата отзыва

Важно
Эта часть очень важна и необходимо сделать это СЕЙЧАС.

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

user $gpg --list-keys
/home/humpback/.gnupg/pubring.gpg
---------------------------------
pub  1024D/75447B14 2002-12-08 Larry the cow (Gentoo's own) <larry@gentoo.org>
sub  2048g/96D6CDAD 2002-12-08
user $gpg --output revoke.asc --gen-revoke 75447B14
sec  1024D/75447B14 2002-12-08   Larry the cow (Gentoo's own) <larry@gentoo.org>
  
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:
> Someone cracked me and got my key and passphrase
>
Reason for revocation: Key has been compromised
Someone cracked me and got my key and passphrase
Is this okay? y
  
You need a passphrase to unlock the secret key for
user: "Larry the cow (Gentoo's own) <larry@gentoo.org>"
1024-bit DSA key, ID 75447B14, created 2002-12-08
  
ASCII armored output forced.
Revocation certificate created.
  
Please move it to a medium which you can hide away; if Mallory gets
access to this certificate he can use it to make your key unusable.
It is smart to print this certificate and store it away, just in case
your media become unreadable.  But have some caution:  The print system of
your machine might store the data and make it available to others!

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

Заметка
Если пользователь имеет несколько email адресов, которые он хотели бы использовать с этим ключом, то пользователь может запустить gpg --edit-key <USER_ID> и затем использовать команду adduid. Она запросит имя, email и комментарий для второго ID, который будет использоваться.

Экспорт ключей

Чтобы экспортировать ключ, запустите команду gpg --armor --output larry.asc --export larry@gentoo.org. Почти всегда можно использовать идентификатор ключа или что-либо, что его идентифицирует (в этом примере используется адрес электронной почты). Теперь у Larry есть файл larry.asc, который он может отправить своим друзьям или разместить на своей веб-странице, чтобы другие могли вступить с ним в безопасную коммуникацию.

Импорт ключей

Чтобы добавить ключи в связку открытых ключей необходимо сделать следующее:

  1. импортировать ключ
  2. проверить отпечаток ключа
  3. после проверки отпечатка ключа нужно проверить его.
Заметка
Будьте осторожны при проверке ключей. Это одно из слабых мест криптографии с открытым ключом.

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

user $gpg --import luis.asc
gpg: key 462405BB: public key imported
gpg: Total number processed: 1
gpg:               imported: 1
user $gpg --list-keys
/home/humpback/.gnupg/pubring.gpg
---------------------------------
pub  1024D/75447B14 2002-12-08 Larry the cow (Gentoo's own) <larry@gentoo.org>
sub  2048g/96D6CDAD 2002-12-08
  
pub  1024D/462405BB 2002-12-01 Luis Pinto <lmpinto@student.dei.uc.pt>
uid                            Luis Pinto <lmpinto@dei.uc.pt>
sub  4096g/922175B3 2002-12-01 [expires: 2003-12-01]
user $gpg --edit-key lmpinto@dei.uc.pt
gpg (GnuPG) 1.0.7; Copyright (C) 2002 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.
  
gpg: checking the trustdb
gpg: checking at depth 0 signed=0 ot(-/q/n/m/f/u)=0/0/0/0/0/1
pub  1024D/462405BB  created: 2002-12-01 expires: 2003-12-01 trust: -/-
sub  4096g/922175B3  created: 2002-12-01 expires: 2003-12-01
(1)  Luis Pinto <lmpinto@dei.uc.pt>
(2). Luis Pinto <lmpinto@student.dei.uc.pt>
Command>fpr
pub  1024D/462405BB 2002-12-01 Luis Pinto <lmpinto@dei.uc.pt>
             Fingerprint: F056 3697 ADE3 CF98 B80B  8494 0AD3 E57B 4624 05BB
Command>sign
Really sign all user IDs? y
                           
pub  1024D/462405BB  created: 2002-12-01 expires: 2003-12-01 trust: -/-
             Fingerprint: F056 3697 ADE3 CF98 B80B  8494 0AD3 E57B 4624 05BB
  
     Luis Pinto <lmpinto@dei.uc.pt>
     Luis Pinto <lmpinto@student.dei.uc.pt>
  
This key is due to expire on 2003-12-01.
Do you want your signature to expire at the same time? (Y/n) Y
How carefully have you verified the key you are about to sign actually belongs
to the person named above?  If you don't know what to answer, enter "0".
  
   (0) I will not answer. (default)
   (1) I have not checked at all.
   (2) I have done casual checking.
   (3) I have done very careful checking.
  
   Your selection? 3
Are you really sure that you want to sign this key
with your key: "Larry the cow (Gentoo's own) <larry@gentoo.org>"
  
I have checked this key very carefully.
  
Really sign? y
              
You need a passphrase to unlock the secret key for
user: "Larry the cow (Gentoo's own) <larry@gentoo.org>"
1024-bit DSA key, ID 75447B14, created 2002-12-08
Command>check
uid  Luis Pinto <lmpinto@dei.uc.pt>
sig!3       462405BB 2002-12-01   [self-signature]
sig!3       75447B14 2002-12-08   Larry the cow (Gentoo's own) <larry@gentoo.org>
uid  Luis Pinto <lmpinto@student.dei.uc.pt>
sig!3       462405BB 2002-12-01   [self-signature]
sig!3       75447B14 2002-12-08   Larry the cow (Gentoo's own) <larry@gentoo.org>

Обмен ключами с серверами ключей

Отправка ключей на сервер

Теперь, когда ключ сгенерирован, неплохой идеей будет отправить его на публичный сервер ключей. В мире существует множество серверов ключей и большинство из них обмениваются ключами. В следующем примере ключ Larry the cow будет отправлен на сервер keys.gnupg.net. Отправка ключей использует HTTP, поэтому, если для трафика HTTP используется прокси-сервер, не забудьте настроить его соответствующим образом (export http_proxy=http://proxy_host:port/). Ключ отправляется с помощью следующей команды: gpg --keyserver keys.gnupg.net --keyserver-options honor-http-proxy --send-key 75447B14, где 75447B14 — идентификатор ключа. Если HTTP прокси не используется, то можно убрать параметр --keyserver-options honor-http-proxy.

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

Получение ключей с сервера

Теперь мы осуществим поиск ключа Gustavo Felisberto (автора данного руководства :)) и добавим его в связку Larry the cow.

user $gpg --keyserver keys.gnupg.net --keyserver-options honor-http-proxy --search-keys humpback@felisberto.net
gpg: searching for "humpback@felisberto.net" from hkp server keys.gnupg.net
(1)	Gustavo Felisberto <humpback@gmail.com>
	Gustavo Felisberto <humpback@gentoo.org>
	Gustavo Felisberto <humpback@gentoopt.org>
	Gustavo Felisberto <gustavo@felisberto.net>
	Gustavo Felisberto <humpback@gentoo-pt.org>
	Gustavo Felisberto <humpback@felisberto.net>
	Gustavo Felisberto <gustavo@student.dei.uc.pt>
	Gustavo Felisberto <humpback@student.dec.uc.pt>
	Gustavo Felisberto (apt-get install anarchy) <humpback@felisberto.net>
	  1024 bit DSA key B9F2D52A, created: 2002-12-06
(2)	Gustavo Adolfo Silva Ribeiro Felisberto <humpback@altavista.net>
	  1024 bit DSA key 26471D8F, created: 2001-09-05
(3)	Gustavo Felisberto <humpback@altavista.net>
	  1024 bit DSA key E97E0B46, created: 1999-08-04, expires: 2000-08-04 (expired)
(4)	Gustavo A.S.R. Felisberto <humpback@altavista.net>
	  1024 bit DSA key B59AB043, created: 1998-12-10
(5)	Gustavo Adolfo Silva Ribeiro Felisberto <humpback@altavista.net>
	  1024 bit DSA key 39EB133D, created: 1998-08-27
(6)	Gustavo Adolfo Silva Ribeiro Felisberto <humpback@altavista.net>
	  1024 bit DSA key AE02AF87, created: 1998-06-15
Enter number(s), N)ext, or Q)uit > 1
gpg: requesting key B9F2D52A from hkp server keys.gnupg.net
gpg: key B9F2D52A: public key "Gustavo Felisberto <humpback@felisberto.net>" imported
gpg: 3 marginal(s) needed, 1 complete(s) needed, classic trust model
gpg: depth: 0  valid:   4  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 4u
gpg: next trustdb check due at 2015-06-28
gpg: Total number processed: 1
gpg:               imported: 1

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

Использование GPG agent

Что такое GPG agent?

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

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

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

Конфигурация gpg-agent и pinentry

GnuPG включает в себя gpg-agent. Pinentry (app-crypt/pinentry) — это приложение, которое gpg-agent использует для запроса парольной фразы в графическом окне. Оно существует во множестве вариантах, включая gtk2 и 3, qt4 и 5, tty и curses. Рекомендуется всегда компилировать с поддержкой ncurses. Установите соответствующие USE-флаги.

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

root #eselect pinentry list
Available pinentry binary implementations:
  [1]   pinentry-gnome3 *
  [2]   pinentry-gtk-2
  [3]   pinentry-curses
  [4]   pinentry-tty
root #eselect pinentry set 1

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

Файл ~/.gnupg/gpg-agent.conf
pinentry-program /usr/bin/pinentry-gtk-2
no-grab
default-cache-ttl 1800

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

Файл ~/.gnupg/gpg.confНастройка GnuPG для использования GPG agent
use-agent

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

Автоматический запуск GPG agent

Если в качестве окружения рабочего стола используется KDE, отредактируйте /etc/plasma/startup/10-agent-startup.sh (для общесистемных настроек; в KDE4 это /etc/kde/startup/agent-startup.sh) или ~/.config/plasma-workspace/env/gpg-agent.sh (для локального пользователя; в KDE4 это ~/.kde4/env/gpg-agent.sh). Добавьте следующую команду в соответствующий файл, чтобы KDE автоматически запускал GPG Agent:

Файл /etc/plasma/startup/10-agent-startup.shАвтоматический запуск GPG agent в Plasma
if [ -x /usr/bin/gpg-agent ]; then
 eval "$(/usr/bin/gpg-agent --daemon)"
fi

Также раскомментируйте следующие строки в /etc/plasma/shutdown/10-agent-shutdown.sh (для общесистемных настроек; в KDE4 это /etc/kde/shutdown/agent-shutdown.sh) или ~/.config/plasma-workspace/shutdown/gpg-agent.sh (для локального пользователя; в KDE4 это ~/.kde4/shutdown/gpg-agent.sh):

Файл /etc/plasma/shutdown/10-agent-shutdown.shЗакрытие GPG agent с помощью Plasma
if [ -n "${GPG_AGENT_INFO}" ]; then
  kill $(echo ${GPG_AGENT_INFO} | cut -d':' -f 2) >/dev/null 2>&1
fi

При использовании окружения рабочего стола, отличного от KDE, поместите вышеприведенные строки в ~/.xinitrc, если для запуска X используется startx, или в ~/.xsession, если используется XDM, GDM, KDM и так далее.

Работа с документами

Шифрование и подпись

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

Чтобы зашифровать:

user $gpg --output doc.gpg --encrypt --recipient lmpinto@dei.uc.pt doc_to_encrypt

Чтобы подписать:

user $gpg --output doc.gpg --sign --recipient lmpinto@dei.uc.pt doc_to_sign

Чтобы зашифровать и подписать:

user $gpg --output doc.gpg --encrypt --sign --recipient lmpinto@dei.uc.pt doc_to_encrypt_and_sign

Это создаст двоичные файлы. Чтобы создать ASCII файлы, добавьте параметр --clearsign в начале команды.

Расшифровка и проверка подписей

Предположим, что Larry получил зашифрованный файл. Расшифровать его можно с помощью команды gpg --output document --decrypt encrypted_doc.gpg. Эта команда расшифрует документ и проверит подпись, если она есть.

Шифрование и расшифровка без ключей

Можно зашифровать файлы с помощью паролей вместо ключей. Сам пароль будет выступать в качестве ключа — в качестве симметричного шифра. Файл можно зашифровать с помощью команды gpg --symmetric; расшифровка осуществляется с помощью команды, упомянутой выше.

user $gpg --output document.gpg --symmetric document

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

Расширенные функции

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

Файл ~/.gnupg/gpg.conf
#keyserver x-hkp://keys.gnupg.net
#keyserver-options auto-key-retrieve include-disabled include-revoked

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

Еще одна хорошая команда — gpg --refresh-keys. Она свяжется с сервером ключей, установленном в конфигурационном файле, и обновит открытые ключи в локальной связке. Эта команда способна осуществлять поиск отозванных ключей, новых идентификаторов и новых подписей на ключах. Неплохой идеей будет запускать эту команду один-два раза в месяц; если пользователь отзовет ключ, это может уведомить о том, что ключу более нельзя доверять.

Интерфейсы GnuPG

О подписях электронной почты

95% времени, GnuPG будет использоваться в электронной почте для подписывая/шифрования исходящих сообщений или чтения подписанных/зашифрованных сообщений.

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

Код Подпись как простой текст
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
  
Test message
  
-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 6.5.8 for non-commercial use
  
iQA/AwUBP8461jMX0745gR7AEQIEOwCg011GbufXO3ED3FkLWXmfzg7xm1cAoJD0
0EU3Kd2EKNCqataEqM5qjpPs
=LchZ
-----END PGP SIGNATURE-----

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

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

Kgpg

Kgpg (kde-base/kmail) является замечательным интерфейсом для GnuPG. Основной экран содержит область для вставки текста, который можно подписать и зашифровать. Обратное также верно: ASCII armored текст можно ввести и расшифровать.

Seahorse

Целью Seahorse (app-crypt/seahorse) является создание графического интерфейса GnuPG для рабочего стола GNOME. Эта программа быстро развивается, но в ней по-прежнему отсутствуют многие важные возможности, которые можно найти в Kgpg и в версии для командной строки.

KMail

Если установлен USE-флаг crypt, KMail будет собран с поддержкой gpg, и он сможет зашифровывать и расшифровывать почту PGP автоматически, а также зашифровывать почту OpenPGP/MIME. Чтобы расшифровать почту OpenPGP/MIME (это нужно большинству пользователей), GPG agent должен быть запущен.

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

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

Claws-Mail

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

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

Криптография с Открытым Ключом

Введение в Криптографию с Открытым Ключом

Заключительные мысли и благодарности

Некоторые из проблем

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

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

О чем здесь не написано

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

В этой статье не описаны такие утилиты, как pgp4pine, gpgpine, evolution и утилиты Windows GPG.

Благодарности

GnuPG Handbook от John Michaeil Ashley. Это очень хорошая книга для новичков.

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

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

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

Внешние ресурсы

  • https://www.void.gr/kargig/blog/2013/12/02/creating-a-new-gpg-key-with-subkeys/ - Статья, объясняющая создание подключей.
    This page is based on a document formerly found on our main website gentoo.org.
    The following people contributed to the original document: Gustavo Felisberto, John P. Davis, Joshua Saddler (nightmorph)
    They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.