[linux-support] Enigmail: "Error - message was not integrity-protected"

Niklaus vimja Hofer niklaus at mykolab.ch
Sun Jun 24 22:51:10 CEST 2018


Uhu,

On Fri, 2018-06-01 14:19, Markus Wernig wrote:
> Hi all
> 
> Nachdem ich mich gestern mit verschlüsselten Emails herumgeschlagen
> habe, die Enigmail plötzlich nicht mehr entschlüsseln konnte:
> 
> https://sourceforge.net/p/enigmail/forum/support/thread/03ebee57/
> 
> Enigmail betrachtet die entsprechende Meldung von gnupg (message was not
> integrity-protected) jetzt als Fehler, und wegen Efail [1] wird die
> Nachricht nicht mehr angezeigt.
> 
> Damit GnuPG-Entschlüsselung mit Enigmail noch funktioniert, muss der
> Absender MDC für seinen Key aktiviert haben:
> 
> gpg --edit-key 0xYourKeyId setpref save
> 

An meinem Talk an der CoSin hast du dich erkundigt, ob man denn mit den
vorgestellten Werkzeugen testen könne, ob ein PGP Zertifikat das
entsprechende Feature aktiviert habe. Zu dem Zeitpunkt konnte ich deine
Frage nicht beantworten, jetzt habe ich mir das noch einmal angeschaut.

Kapitel 5.2.3.24 von RFC4880 [0] beschreibt, wie dass ein PGP Zertifikat
zu erkennen geben kann, dass das genante Feature unterstützt wird.

pgpdump zeigt das entsprechend an. Hier gezeigt mit meinem aktuellen
Key:

| 
| gpg --armor --export --export-options export-minimal B8A370B45E3400FC | gpg --list-packets
| 

|
| [...]
| # off=1172 ctb=b4 tag=13 hlen=2 plen=46
| :user ID packet: "Niklaus Manuel Hofer <niklaus.hofer at gmail.com>"
| # off=1220 ctb=89 tag=2 hlen=3 plen=574
| :signature packet: algo 1, keyid B8A370B45E3400FC
| 	version 4, created 1446838888, md5len 0, sigclass 0x13
| 	digest algo 2, begin of digest de 4d
| 	hashed subpkt 27 len 1 (key flags: 03)
| 	hashed subpkt 11 len 5 (pref-sym-algos: 9 8 7 3 2)
| 	hashed subpkt 21 len 5 (pref-hash-algos: 8 2 9 10 11)
| 	hashed subpkt 22 len 3 (pref-zip-algos: 2 3 1)
| 	hashed subpkt 30 len 1 (features: 01)
| 	hashed subpkt 23 len 1 (keyserver preferences: 80)
| 	hashed subpkt 2 len 4 (sig created 2015-11-06)
| 	hashed subpkt 9 len 4 (key expires after 5y218d1h52m)
| 	subpkt 16 len 8 (issuer key ID B8A370B45E3400FC)
| 	data: [4095 bits]
| [...]
|

Wie im RFC erklärt und hier zu sehen, ist das Flag spezifisch pro User
Identity (UID) um Subpaket 30. Entscheidend ist die Zeile

|
| hashed subpkt 30 len 1 (features: 01)
| 

Das Feature 01 bedeutet (Zitat aus dem RFC):

> 
> 0x01 - Modification Detection (packets 18 and 19)
> 

pgpdump, wie üblich, stellt das etwas Menschenlesbarer dar:

| 
| gpg -a --export --export-options export-minimal B8A370B45E3400FC | pgpdump
|

|
| [...]
| Old: User ID Packet(tag 13)(41 bytes)
|     User ID - Niklaus Manuel Hofer <niklaus at mykolab.ch>
| Old: Signature Packet(tag 2)(578 bytes)
|     Ver 4 - new
|     Sig type - Positive certification of a User ID and Public Key packet(0x13).
|     Pub alg - RSA Encrypt or Sign(pub 1)
|     Hash alg - SHA1(hash 2)
|     Hashed Sub: key flags(sub 27)(1 bytes)
|         Flag - This key may be used to certify other keys
|         Flag - This key may be used to sign data
|     Hashed Sub: preferred symmetric algorithms(sub 11)(6 bytes)
|         Sym alg - AES with 256-bit key(sym 9)
|         Sym alg - AES with 192-bit key(sym 8)
|         Sym alg - AES with 128-bit key(sym 7)
|         Sym alg - CAST5(sym 3)
|         Sym alg - Triple-DES(sym 2)
|         Sym alg - IDEA(sym 1)
|     Hashed Sub: preferred hash algorithms(sub 21)(5 bytes)
|         Hash alg - SHA256(hash 8)
|         Hash alg - SHA1(hash 2)
|         Hash alg - SHA384(hash 9)
|         Hash alg - SHA512(hash 10)
|         Hash alg - SHA224(hash 11)
|     Hashed Sub: preferred compression algorithms(sub 22)(3 bytes)
|         Comp alg - ZLIB <RFC1950>(comp 2)
|         Comp alg - BZip2(comp 3)
|         Comp alg - ZIP <RFC1951>(comp 1)
|     Hashed Sub: features(sub 30)(1 bytes)
|         Flag - Modification detection (packets 18 and 19)
| [...]
|

Der entscheidende Teil hier ist:

|     Hashed Sub: features(sub 30)(1 bytes)
|         Flag - Modification detection (packets 18 and 19)

Hokey aus dem HopenPGP Paket stellt das Feature leider nicht dar.
Zumindest ist das in der von mir getesteten Version 0.20 der Fall.
Version 0.21 bricht bei mir beim Kompilieren mit einer Fehlermeldung ab,
weshalb ich das nicht testen konnte.

[0] https://tools.ietf.org/html/rfc4880#section-5.2.3.24

Gruss
-- 
Niklaus 'vimja' Hofer
niklaus at mykolab.ch
xmpp: vimja at xmpp.honet.ch



More information about the Linux-support mailing list