Как Enigmail получает открытый ключ для того, кто отправляет вам зашифрованное письмо? Вам нужно импортировать его самостоятельно или он получает ключ от сервера ключей?
Ключ (обычно) пишется в заголовки сообщения. Но эта (зашифрованная) почта не содержит никакой информация об отправителе, если это не подписывается. Давайте проанализируем то, что содержится в OpenPGP сообщения.
OpenPGP Вы видите это при списке пакетов, содержавшихся в зашифрованном сообщении:
$ echo foo | gpg --encrypt --recipient 0xa4ff2279 | gpg --list-packets
вывод запускается с "публично" видимых, незашифрованных заголовков, которые содержат подключ, для которого шифруется сообщение:
:pubkey enc packet: version 3, algo 1, keyid CC73B287A4388025
data: [4092 bits]
После ввода пароля, GnuPG также распечатает остающиеся пакеты:
:encrypted data packet:
length: 63
mdc_method: 2
gpg: encrypted with 4096-bit RSA key, ID A4388025, created 2014-03-26
"Jens Erat (born 1988-01-19 in Stuttgart, Germany)"
:compressed packet: algo=2
:literal data packet:
mode b (62), created 1402861918, name="",
raw data: 4 bytes
OpenPGP Со знаком подписалось , сообщение содержит подписание (sub) ключевой идентификатор отправителя, посмотрите :signature packet
строка (четвертый пакет).
$ echo foo | gpg --sign | gpg --list-packets
(GnuPG просит пароль подписание)
:compressed packet: algo=1
:onepass_sig packet: keyid 8E78E44DFB1B55E9
version 3, sigclass 0x00, digest 2, pubkey 1, last=1
:literal data packet:
mode b (62), created 1402862406, name="",
raw data: 4 bytes
:signature packet: algo 1, keyid 8E78E44DFB1B55E9
version 4, created 1402862406, md5len 0, sigclass 0x00
digest algo 2, begin of digest 9a d2
hashed subpkt 2 len 4 (sig created 2014-06-15)
subpkt 16 len 8 (issuer key ID 8E78E44DFB1B55E9)
data: [4095 bits]
зашифрованное сообщение OpenPGP могло, конечно, также быть подписано. Я оставляю создание команд для проверки этого как осуществление заинтересованному читателю.
Используя ключевой идентификатор, полученный из , подписалось сообщение, можно выбрать ключ от серверов ключей. Большинство почтовых клиентов (плагины) сделает это автоматически для Вас:
$ gpg --recv-keys 0x8E78E44DFB1B55E9
gpg: requesting key FB1B55E9 from hkp server pool.sks-keyservers.net
gpg: key A4FF2279: "Jens Erat (born 1988-01-19 in Stuttgart, Germany)" not changed
gpg: Total number processed: 1
gpg: unchanged: 1
, Если сообщение не подписывается, Вы (или Ваш клиент OpenPGP) могли бы искать серверы ключей почтовый адрес другого. Результатом является то же, Вы все еще не можете быть уверены в законности того ключа.
Так, я следовал более прямым маршрутом к обнаружению об этом вопросе. Enigmail имеет хороший веб-сайт и хорошее руководство, которое объясняет много о, это - операция для обычного пользователя как я, кто любит шифрование, но заблудился в кодировании.
раздел In 8 из версия HTML руководства , Enigmail требует, чтобы использование открытый ключ получателя зашифровало сообщение для них для чтения. Если у Вас уже нет их открытого ключа, то, по-видимому, он мог бы быть в состоянии найти открытый ключ на keyserver. Это покрыто в раздел 7 из руководства .