Отсутствует пароль, но Enigmail / Pinentry не запрашивает пароль - PullRequest
0 голосов
/ 09 сентября 2018

Я несколько раз пытался выполнить описанные ниже операции, я думаю, что важно упомянуть об этом, потому что это может объяснить некоторые проблемы.

Ниже я объясню вторую и последующие попытки.

У меня естьимпортировал мою пару закрытых / открытых ключей в Enigmail, этот ключ защищен паролем.Во время импорта Enigmail запросил кодовую фразу, и все было в порядке.

Я отправил зашифрованное письмо самому себе и смог расшифровать это письмо как во входящих, так и в отправленных папках.Enigmail не запрашивал пароль для расшифровки этого письма.Это было сделано с первой попытки с окном Pinentry, насколько я помню.

Затем я перезагружаю Thunderbird и начинаются проблемы ...

Когда я нажимаю на эту зашифрованную электронную почту Enigmail (в папке «Входящие«Отправленные папки» говорит: «Отсутствует пароль» - нажмите на кнопку «Подробности» для получения дополнительной информации ».Но нет никакого способа ввести парольную фразу, нет окна Pinentry ...

Enigmail no passphrase message

Я следовал этому руководству по устранению неполадок: Решение проблем с GnuPG2.x и gpg-agent .Но все выглядит нормально с gpg-agent и pinentry.

Я собрал столько информации, сколько мог, вот они:

Я использую:

  • Voyager 18.04 LTS (на основе Xubuntu 18.04 LTS)
  • Thunderbird 52.9.1
  • Enigmail 2.0.8
  • gpg (GnuPG) 2.2.4
  • gpg-connect-agent 2.2.4

Моя версия pinentry - pinentry-gnome3 1.1.0-1

/ usr / bin / pinentry -> / etc / alternatives / pinentry ->/ usr / bin / pinentry-gnome3

Это мой $ HOME / .gnupg / gpg-agent.conf

# Created by pEpEngine
# GPGConf disabled this option here at Sat Sep  8 22:07:14 2018 CEST
# default-cache-ttl 300
# GPGConf disabled this option here at Sat Sep  8 22:07:14 2018 CEST
# max-cache-ttl 1200
###+++--- GPGConf ---+++###
default-cache-ttl 60
max-cache-ttl 600
###+++--- GPGConf ---+++### Sun Sep  9 15:12:48 2018 CEST
# GPGConf edited this configuration file.
# It will disable options before this marked block, but it will
# never change anything below these lines.

Вот вывод команды gpgconf

gpgconf
gpg:OpenPGP:/usr/bin/gpg
gpg-agent:Private Keys:/usr/bin/gpg-agent
scdaemon:Smartcards:/usr/lib/gnupg/scdaemon
gpgsm:S/MIME:/usr/bin/gpgsm
dirmngr:Network:/usr/bin/dirmngr
pinentry:Passphrase Entry:/usr/bin/pinentry

И журналы enigmail

2018-09-09 17:40:01.188 [DEBUG] enigmailMessengerOverlay.js: messageFrameUnload
2018-09-09 17:40:01.188 [DEBUG] enigmailMessengerOverlay.js: messageCleanup
2018-09-09 17:40:01.188 [DEBUG] enigmailMessengerOverlay.js: setAttachmentReveal
2018-09-09 17:40:01.188 [DEBUG] enigmailMsgHdrViewOverlay.js: this.messageUnload
2018-09-09 17:40:01.188 [DEBUG] uris.jsm: forgetEncryptedUri: uri=imap-message://user@imap.domain.tld/INBOX#35158
2018-09-09 17:40:01.200 [DEBUG] enigmailMsgHdrViewOverlay.js: _listener_onStartHeaders
2018-09-09 17:40:01.200 [DEBUG] enigmailMessengerOverlay.js: setAttachmentReveal
2018-09-09 17:40:01.200 [DEBUG] windows.jsm: getFrame: user@domain.tld=messagepane
2018-09-09 17:40:01.200 [DEBUG] enigmailMsgHdrViewOverlay.js: setWindowCallback
2018-09-09 17:40:01.212 [DEBUG] enigmailMsgHdrViewOverlay.js: _listener_onEndHeaders
2018-09-09 17:40:01.214 [DEBUG] enigmailMessengerOverlay.js: setAttachmentReveal
2018-09-09 17:40:01.214 [DEBUG] pgpmimeHandler.js: PgpMimeHandler()
2018-09-09 17:40:01.214 [DEBUG] pgpmimeHandler.js: onStartRequest
2018-09-09 17:40:01.214 [DEBUG] pgpmimeHandler.js: ct= multipart/encrypted; protocol="application/pgp-encrypted";
    boundary="3VzqdH1YMSTPOoMxLxCc7reSPX9w7Lham"
2018-09-09 17:40:01.214 [DEBUG] mimeDecrypt.jsm: MimeDecryptHandler()
2018-09-09 17:40:01.214 [DEBUG] mimeDecrypt.jsm: onStartRequest
2018-09-09 17:40:01.214 [DEBUG] mimeDecrypt.jsm: onStartRequest: uri='imap://user@imap.domain.tld:993/fetch%3EUID%3E/INBOX%3E35156'
2018-09-09 17:40:01.218 [DEBUG] uris.jsm: msgIdentificationFromUrl: url.pathQueryRef=/fetch%3EUID%3E/INBOX%3E35156
2018-09-09 17:40:01.218 [DEBUG] uris.jsm: msgIdentificationFromUrl: msgNum=35156 / folder=/fetch>UID>/INBOX
2018-09-09 17:40:01.218 [DEBUG] mimeDecrypt.jsm: checking MIME structure for 1 / imap://user@imap.domain.tld:993/fetch%3EUID%3E/INBOX%3E35156
2018-09-09 17:40:01.218 [DEBUG] decryption.jsm: decryptMessageStart: verifyOnly=false
2018-09-09 17:40:01.220 execution.jsm: execStart: command = /usr/bin/gpg --charset utf-8 --display-charset utf-8 --no-auto-check-trustdb --batch --no-tty --no-verbose --status-fd 2 --log-file /tmp/gpgOutput.OesdhL --sender user@domain.tld --max-output 639200 --decrypt, needPassphrase=true, domWindow=[object ChromeWindow], listener=[object Object]
2018-09-09 17:40:01.220 [CONSOLE] enigmail> /usr/bin/gpg --charset utf-8 --display-charset utf-8 --no-auto-check-trustdb --batch --no-tty --no-verbose --status-fd 2 --log-file /tmp/gpgOutput.OesdhL --sender user@domain.tld --max-output 639200 --decrypt
2018-09-09 17:40:01.222 [DEBUG]   enigmail> DONE
2018-09-09 17:40:01.222 [DEBUG] mimeDecrypt.jsm: onStopRequest: pipe not yet ready
2018-09-09 17:40:01.240 [DEBUG] mimeDecrypt.jsm: stdin()
2018-09-09 17:40:01.244 [DEBUG] mimeDecrypt.jsm: stdin: closing pipe
2018-09-09 17:40:01.346 [DEBUG] errorHandling.jsm: Process terminated. Human-readable output from gpg:
-----
2018-09-09 17:40:01 gpg[13290] encrypted with 4096-bit RSA key, ID xxxxxxxxxxxxxxxx, created 2018-09-08
      "First Last <user@domain.tld>"
2018-09-09 17:40:01 gpg[13290] public key decryption failed: No passphrase given
2018-09-09 17:40:01 gpg[13290] decryption failed: No secret key
-----
2018-09-09 17:40:01.346 [DEBUG] decryption.jsm: decryptMessageEnd: uiFlags=8, verifyOnly=false, noOutput=false
2018-09-09 17:40:01.346 [DEBUG] decryption.jsm: decryptMessageEnd: stderrStr=
[GNUPG:] ENC_TO xxxxxxxxxxxxxxxx 1 0
[GNUPG:] KEY_CONSIDERED xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0
[GNUPG:] PINENTRY_LAUNCHED 13292 gnome3 1.1.0 - - :0.0
[GNUPG:] KEY_CONSIDERED xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0
[GNUPG:] ERROR pkdecrypt_failed 67109041
[GNUPG:] BEGIN_DECRYPTION
[GNUPG:] DECRYPTION_FAILED
[GNUPG:] END_DECRYPTION

2018-09-09 17:40:01.346 [DEBUG] errorHandling.jsm: parseErrorOutputWith: status message: 
[GNUPG:] ENC_TO xxxxxxxxxxxxxxxx 1 0
[GNUPG:] KEY_CONSIDERED xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0
[GNUPG:] PINENTRY_LAUNCHED 13292 gnome3 1.1.0 - - :0.0
[GNUPG:] KEY_CONSIDERED xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 0
[GNUPG:] ERROR pkdecrypt_failed 67109041
[GNUPG:] BEGIN_DECRYPTION
[GNUPG:] DECRYPTION_FAILED
[GNUPG:] END_DECRYPTION

2018-09-09 17:40:01.346 [DEBUG] errorHandling.jsm: missingPassphrase: missing passphrase
2018-09-09 17:40:01.348 [DEBUG] errorHandling.jsm: parseErrorOutputWith: statusFlags = 00410800
2018-09-09 17:40:01.348 [DEBUG] errorHandling.jsm: parseErrorOutputWith: return with c.errorMsg = 
2018-09-09 17:40:01.348 [DEBUG] execution.jsm: EnigmailExecution.fixExitCode: agentType: gpg exitCode: undefined statusFlags 6359040
2018-09-09 17:40:01.348 [DEBUG] decryption.jsm: decryptMessageEnd: process: Phrase de passe manquante
2018-09-09 17:40:01.348 [DEBUG] decryption.jsm: decryptMessageEnd: process: 
2018-09-09 17:40:01.348 [DEBUG] decryption.jsm: decryptMessageEnd: command execution exit code: undefined
2018-09-09 17:40:01.348 [DEBUG] mimeDecrypt.jsm: displayStatus
2018-09-09 17:40:01.348 [DEBUG] mimeDecrypt.jsm: displayStatus for uri imap://user@imap.domain.tld:993/fetch%3EUID%3E/INBOX%3E35156
2018-09-09 17:40:01.348 [DEBUG] enigmailMsgHdrViewOverlay.js: EnigMimeHeaderSink.processDecryptionResult:
2018-09-09 17:40:01.348 [DEBUG] enigmailMsgHdrViewOverlay.js: actionType= modifyMessageHeaders, mimePart=1
2018-09-09 17:40:01.348 [DEBUG] enigmailMsgHdrViewOverlay.js: EnigMimeHeaderSink.isCurrentMessage: uri.spec=imap://user@imap.domain.tld:993/fetch%3EUID%3E/INBOX%3E35156
2018-09-09 17:40:01.348 [DEBUG] uris.jsm: msgIdentificationFromUrl: url.pathQueryRef=/fetch%3EUID%3E/INBOX%3E35156
2018-09-09 17:40:01.348 [DEBUG] uris.jsm: msgIdentificationFromUrl: msgNum=35156 / folder=/fetch>UID>/INBOX
2018-09-09 17:40:01.348 [DEBUG] uris.jsm: msgIdentificationFromUrl: url.pathQueryRef=/fetch%3EUID%3E/INBOX%3E35156
2018-09-09 17:40:01.350 [DEBUG] uris.jsm: msgIdentificationFromUrl: msgNum=35156 / folder=/fetch>UID>/INBOX
2018-09-09 17:40:01.350 [DEBUG] enigmailMsgHdrViewOverlay.js: EnigMimeHeaderSink.isCurrentMessage: url=imap://user@imap.domain.tld:993/fetch%3EUID%3E/INBOX%3E35156
2018-09-09 17:40:01.350 [DEBUG] enigmailMsgHdrViewOverlay.js: EnigMimeHeaderSink.isCurrentMessage: true
2018-09-09 17:40:01.350 [DEBUG] enigmailMsgHdrViewOverlay.js: EnigMimeHeaderSink.modifyMessageHeaders:
2018-09-09 17:40:01.350 [DEBUG] enigmailMsgHdrViewOverlay.js: updateSecurityStatus: mimePart=1
2018-09-09 17:40:01.350 [DEBUG] enigmailMsgHdrViewOverlay.js: EnigMimeHeaderSink.isCurrentMessage: uri.spec=imap://user@imap.domain.tld:993/fetch%3EUID%3E/INBOX%3E35156
2018-09-09 17:40:01.350 [DEBUG] uris.jsm: msgIdentificationFromUrl: url.pathQueryRef=/fetch%3EUID%3E/INBOX%3E35156
2018-09-09 17:40:01.350 [DEBUG] uris.jsm: msgIdentificationFromUrl: msgNum=35156 / folder=/fetch>UID>/INBOX
2018-09-09 17:40:01.350 [DEBUG] uris.jsm: msgIdentificationFromUrl: url.pathQueryRef=/fetch%3EUID%3E/INBOX%3E35156
2018-09-09 17:40:01.350 [DEBUG] uris.jsm: msgIdentificationFromUrl: msgNum=35156 / folder=/fetch>UID>/INBOX
2018-09-09 17:40:01.350 [DEBUG] enigmailMsgHdrViewOverlay.js: EnigMimeHeaderSink.isCurrentMessage: url=imap://user@imap.domain.tld:993/fetch%3EUID%3E/INBOX%3E35156
2018-09-09 17:40:01.350 [DEBUG] enigmailMsgHdrViewOverlay.js: EnigMimeHeaderSink.isCurrentMessage: true
2018-09-09 17:40:01.350 [DEBUG] enigmailMsgHdrViewOverlay.js: this.updateHdrIcons: exitCode=undefined, statusFlags=6359040, keyId=, userId=, 
2018-09-09 17:40:01.350 [DEBUG] enigmailMessengerOverlay.js: createArtificialAutocryptHeader
2018-09-09 17:40:01.350 [DEBUG] enigmailMsgHdrViewOverlay.js: this.updateMsgDb
2018-09-09 17:40:01.350 [DEBUG] mimeDecrypt.jsm: returnData: 0 bytes
2018-09-09 17:40:01.352 [DEBUG] mimeDecrypt.jsm: onStopRequest: process terminated
2018-09-09 17:40:01.358 [DEBUG] enigmailMsgHdrViewOverlay.js: this.messageLoad
2018-09-09 17:40:01.358 [DEBUG] enigmailMessengerOverlay.js: messageAutoDecrypt:
2018-09-09 17:40:01.358 [DEBUG] enigmailMessengerOverlay.js: messageDecrypt: null
2018-09-09 17:40:01.358 [DEBUG] enigmailMessengerOverlay.js: movePEPsubject:
2018-09-09 17:40:01.358 [DEBUG] windows.jsm: getFrame: user@domain.tld=messagepane
2018-09-09 17:40:01.358 [DEBUG] enigmailMessengerOverlay.js: messageDecryptCb:
2018-09-09 17:40:01.358 [DEBUG] enigmailMessengerOverlay.js: messageDecryptCb: mimeMsg is null
2018-09-09 17:40:01.360 [DEBUG] enigmailMessengerOverlay.js: header content-transfer-encoding: ''
2018-09-09 17:40:01.360 [DEBUG] enigmailMessengerOverlay.js: header x-enigmail-version: ''
2018-09-09 17:40:01.360 [DEBUG] enigmailMessengerOverlay.js: header x-pgp-encoding-format: ''
2018-09-09 17:40:01.360 [DEBUG] enigmailMessengerOverlay.js: header autocrypt-setup-message: ''
2018-09-09 17:40:01.362 [DEBUG] autocrypt.jsm: processAutocryptHeader(): from==?UTF-8?Q?name?= <user@domain.tld>
2018-09-09 17:40:01.364 [DEBUG] autocrypt.jsm: openAutocryptDb()
2018-09-09 17:40:01.364 [DEBUG] autocrypt.jsm: _openAutocryptDb_inner()
2018-09-09 17:40:01.372 [DEBUG] autocrypt.jsm: checkDatabaseStructure
2018-09-09 17:40:01.372 [DEBUG] autocrypt.jsm: checkDatabaseStructure - success
2018-09-09 17:40:01.372 [DEBUG] autocrypt.jsm: findUserRecord
2018-09-09 17:40:01.372 [DEBUG] autocrypt.jsm: findUserRecord - got row
2018-09-09 17:40:01.372 [DEBUG] autocrypt.jsm: got 1 rows
2018-09-09 17:40:01.372 [DEBUG] autocrypt.jsm: updateUser
2018-09-09 17:40:01.372 [DEBUG] autocrypt.jsm: updateUser: not a new latest message
2018-09-09 17:40:01.374 [DEBUG] autocrypt.jsm: OK - closing connection
2018-09-09 17:40:05.090 [DEBUG] enigmailMessengerOverlay.js: updateOptionsDisplay: 
2018-09-09 17:40:05.090 [DEBUG] funcs.jsm: collapseAdvanced:
2018-09-09 17:40:08.244 [DEBUG] enigmailMessengerOverlay.js: updateOptionsDisplay: 
2018-09-09 17:40:08.244 [DEBUG] funcs.jsm: collapseAdvanced:
2018-09-09 17:40:09.776 [DEBUG] enigmailHelp.js: enigLoadPage
2018-09-09 17:40:09.778 [DEBUG] windows.jsm: getFrame: user@domain.tld=contentFrame

Я провел дальнейшие исследования со времени своего первоначального поста, и вот что я нашел.

Из Thunderbird я сохранил зашифрованную электронную почту на свой рабочий столи затем я попытался расшифровать его с помощью команды:

gpg -d -vvv encrypted.eml

, и вот интересная часть результата:

gpg: pinentry launched (18664 gnome3 1.1.0 /dev/pts/0 xterm-256color :0.0)
# off=798 ctb=d2 tag=18 hlen=2 plen=0 partial new-ctb
:encrypted data packet:
length: unknown
mdc_method: 2

Он говорит, что пинентри была запущенано в терминале нигде нет окон ввода или запроса в терминале, запрашивающего фразу-пароль ...

Затем я попытался изменить программу ввода-вывода по умолчанию, добавив эту строку в мой $ HOME / .gnupg / gpg-agent.conf

pinentry-program /usr/bin/pinentry-gtk-2

и перезагрузите gpg-connect-agent:

gpg-connect-agent reloadagent /bye

Я попытался расшифровать письмо еще раз:

gpg -d -vvv encrypted.eml

Мы видим, что пинентрипрограмма изменилась, но все еще нет возможности ввести фразу-пароль ...

gpg: pinentry launched (18739 gtk2 1.1.0 /dev/pts/0 xterm-256color :0.0)
# off=798 ctb=d2 tag=18 hlen=2 plen=0 partial new-ctb
:encrypted data packet:
length: unknown
mdc_method: 2

Мне наконец-то удалось ввести фразу-пароль в терминале следующим образом:

Я установил pinentry-tty

sudo apt install pinentry-tty

Я изменил программу pinentry по умолчанию, добавив эту строку в мой $ HOME / .gnupg / gpg-agent.conf

pinentry-program /usr/bin/pinentry-tty

и перезагрузив gpg-connect-agent:

gpg-connect-agent reloadagent /bye

Я попытался расшифровать письмо еще раз:

gpg -d -vvv encrypted.eml

и, наконец, pinentry запросил пароль в терминале, и письмо было правильно расшифровано.

ЗатемЯ открыл Thunderbird и смог расшифровать все моизашифрованные сообщения.

Итак, на этом этапе я могу сказать, что pinentry-tty работает, но pinentry-gnome3 и pinentry-gtk2 не работают.

Я также пытался установить и использовать pinentry-qtно Enigmail отправляет мне сообщение об ошибке, в котором говорится, что pinentry не работает.

Затем я решил установить использование pinentry-fltk, и оно работает.Когда я нажимаю на зашифрованное сообщение в Thunderbird, открывается (очень некрасивое) окно, и я могу набрать свою фразу-пароль и расшифровать письмо.

Для меня это всего лишь обходной путь.Я хотел бы понять, почему я не могу использовать pinentry-gtk2.

Спасибо за вашу помощь

...