From mbauer at gmx.org Mon Apr 7 05:23:58 2014 From: mbauer at gmx.org (Mathias Bauer) Date: Mon, 7 Apr 2014 05:23:58 +0200 Subject: kmail signaturverfahren In-Reply-To: <25859751.sd14JaWcBL@tabin.local> References: <25859751.sd14JaWcBL@tabin.local> Message-ID: <20140407032358.GA17981@gmx.org> Hallo! * Sandro Knauß schrieb am So, 30. Mär 2014, um 12:59 (+0200): > ich selber beschäftige mich mit dem crypto support von kmail > und hier ist eine Frage aufgetaucht, die ich auch nach > Recherchen nicht vollständig beantworten kann. Nämlich, wo ist > der Unterschied zwischen clearsign und binary Signaturen. > > RFC 3156 [1] spricht leider kein bevorzugtes Signaturverfahren > aus. RFC 3156 "MIME Security with OpenPGP" hat mit "clearsign" nichts zu tun. Der von dir zitierte Abschnitt 5 enthält sogar explizit: When the OpenPGP digital signature is generated: [...] (6) The signature MUST be generated detached from the signed data so that the process does not alter the signed data in any way. Du meinst vermutlich clear text-Signaturen, wie sie gpg --clearsign erzeugt, oder? > Und so kam es wie es kommen musste :) thunderbird/enigmail > erzeugt clearsign mode und kmail den binary mode. Was kam? Bitte verwende die Terminologie genauer, da es sonst nur Missverständnisse gibt. Einen "binary mode" gibt es im Zusammenhang mit GnuPG-Signaturen nicht. GnuPG bzw. der OpenPGP- Standard RFC 4880 unterscheiden zwischen Signaturen von Binärdokumenten und "canonical text"-Dokumenten; in Abschnitt 5.2.1 gibt es noch weitere Typen. Grundsätzlich muss man zwischen zwei Seiten unterscheiden, zwischen GnuPG und dem jeweiligen Mailprogramm: GnuPG kann "clear text" Signaturen erstellen, oder losgelöste ("detached") Signaturen, die wiederum im ASCII- oder Binärformat als separate Dateien erzeugt werden. Was dabei signiert wird ist egal. Es funktioniert z. B. $ gpg --clearsign --output ls.clearsig /bin/ls was eine Binärdatei liefert auch wenn sie die bekannten und lesbaren Anfangs- und Endteile besitzt. Trotzdem ist das Ergebnis eine Signatur vom Typ "canonical text document". Mailprogramme behandeln Signaturen, zunächst einmal ganz grob formuliert, wie alle anderen Daten auch. Beim Versand wird alles für den Transport geeignet konvertiert und verpackt und beim Empfänger an die "lokale (System-)Umgebung" ausgepackt und angepasst. Für alle diese Vorgänge gibt es Standards und nicht jedes Mailprogramm kennt bzw. befolgt diese genau. Komplizierter wird es mit Signaturen. Macht sich ein Mailprogramm die Arbeit einfach, lässt es GnuPG vom Text (mit gpg --clearsign...) eine clear text-Signatur erstellen und verschickt diese anstelle des ursprünglichen Texts. Ein Problem ist offensichtlich: Text ist nicht gleich Text (z. B. Kodierung in UTF-8 auf der Sender- und in ISO-8859-1 auf Empfängerseite). Die Prüfung der Signatur wird fehlschlagen, obwohl der Text nicht verändert wurde... Kurz: Clear text-Signaturen (oder Inline-PGP, wie es manchmal auch genannt wird) und E-Mail sind problematisch! Daniel Kahn Gillmor hat weitere Probleme zusammengefasst: https://dkg.fifthhorseman.net/notes/inline-pgp-harmful https://www.debian-administration.org/users/dkg/weblog/108 > Es wäre jedoch nicht schlimm, wenn alles glatt laufen > würde. Jedoch ist der binary mode deutlich strenger was > erlaubte Veränderungen angeht, Bitte genauer! Was würde "glatt laufen" und was sollen "erlaubte Veränderungen" sein? Das ist, gelinde gesagt, mehrdeutig. Entweder kann eine Signatur korrekt überprüft werden oder nicht. Abstufungen ("strenger") machen hier keinen Sinn. > so dass thunderbird öfters mails als "ungültige signatur" > anzeigt [2]. Obwohl cmd line und auch kmail eine korrete > Signatur anzeigen[3]. Sowohl Thunderbird/Enigmail als auch KMail beherrschen PGP/MIME: http://kde.org/applications/internet/kmail https://www.enigmail.net/documentation/per-account.php Offenbar geht es um (Kodierungs-)Probleme von Mailprogrammen und ist daher eher OT auf einer GnuPG-Mailinglisten - zumindest solange nicht der Zusammenhang genauer oder eine Fragestellung konkreter beschrieben wird. > Gibt es irgendwelche Recommends, welchen mode ein Mailprogramm > nutzen sollte? Ja, eindeutig PGP/MIME. > Welche Veränderungen sind im clearsign mode alles erlaubt? Ist > dies die richtige Mailingliste; oder doch eher -devel? Was meinst du mit Veränderungen? Im Zusammenhang mit Signaturen s. o. Die Themen Kodierungen, Zeilenumbrüche, etc. betreffen alle eher die "E-Mail-Seite" als die von GnuPG. Das Bindeglied ist der schon erwähnte RFC 3156. Viele Grüße Mathias From bugs at sandroknauss.de Wed Apr 30 18:34:40 2014 From: bugs at sandroknauss.de (Sandro =?ISO-8859-1?Q?Knau=DF?=) Date: Wed, 30 Apr 2014 18:34:40 +0200 Subject: kmail signaturverfahren In-Reply-To: <20140407032358.GA17981@gmx.org> References: <25859751.sd14JaWcBL@tabin.local> <20140407032358.GA17981@gmx.org> Message-ID: <2099162.1TMfY9dZBD@tabin.local> Moin, sorry hat etwas länger gedauert mit der Antwort. Aber vielen Dank für deine sehr ausführliche Antwort. Leider habe ich nicht geschafft meine Frage richtig zu formulieren, deswegen probiere ich es nochmal. Das Problem ist das bei gnupg vieles ähnlich heißt bzw. nicht genau benannt ist. Einerseits gibt es zwei Signaturverfahren: inline und mime. Desweiteren gibt es noch verschiedene Signaturklassen: binary(sigclass 0x00) - Zum Bespiel bekomme ich diese durch den Befehl: gpg -b -o /tmp/signature textmode (sigclass 0x01) [die option --textmode; wird auch "canonical text signature" genannt] Erzeugen kann ich dass über den folgenden Befehl: gpg -b -t -o /tmp/signature Ich will im weiteren nur über MIME Nachrichten reden. Meine ganzen Fragen zielen auf den Unterschied der beiden Signaturklassen ab und ob es eine Empfehlung zu einer Signaturklasse für mailprogramme gibt. Egal welche Daten ich signieren will, steht mir ja immer frei die eine oder die andere Signaturvariante zu wählen & nutzen. Enigmail hat für ihre Signaturen sigclass 0x01 gewählt und kmail sigclass 0x00. Das RFC 3156 spricht keine Präferenz für eine Klasse aus. Soweit ich das verstanden habe, lässt sigclass 0x01 einige Veränderungen zu und die signatur weiterhin korrekt ist (z.B. Zeilenenden). Jedoch fehlt mir das Wissen, ob noch weitere Modifikationen erlaubt sind. Somit folgt darauf für mich die Frage, ob es Gründe gibt für ein Mailprogramm die eine Klasse der anderen vorzuziehen? Attachments werden ja vor dem versenden in Base64 umgewandelt und sind somit auch wieder Text, so dass die Modikationen die sigclass 0x01 erlaubt, die Attachments nicht verändert, oder? Oder konkret: gibt es Szenarien in denen bei einer Mail eine binary signatur (0x00) eine Modifikation der Mail verhindert die den Inhalt verändert, die eine textmode signatur 0x01 nicht verhindert? > Komplizierter wird es mit Signaturen. Macht sich ein > Mailprogramm die Arbeit einfach, lässt es GnuPG vom Text (mit gpg > --clearsign...) eine clear text-Signatur erstellen und verschickt > diese anstelle des ursprünglichen Texts. Ein Problem ist > offensichtlich: Text ist nicht gleich Text (z. B. Kodierung in > UTF-8 auf der Sender- und in ISO-8859-1 auf Empfängerseite). Die > Prüfung der Signatur wird fehlschlagen, obwohl der Text nicht > verändert wurde... Kodierungsprobleme gibt es doch aber nur bei Inline messages, oder? Bei mime wird ja auch der komplette header des Part mit gesignt und der Inhalt einfach als Datastream betrachtet und gar nicht interpretiert. > Kurz: Clear text-Signaturen (oder Inline-PGP, wie es manchmal > auch genannt wird) und E-Mail sind problematisch! well das inline scheiße ist und in vielen Fällen Probleme macht ist klar. Wie gesagt mir geht es nicht um MIME vs. inline. > > Es wäre jedoch nicht schlimm, wenn alles glatt laufen > > würde. Jedoch ist der binary mode deutlich strenger was > > erlaubte Veränderungen angeht, > > Bitte genauer! Was würde "glatt laufen" und was sollen "erlaubte > Veränderungen" sein? Das ist, gelinde gesagt, mehrdeutig. > Entweder kann eine Signatur korrekt überprüft werden oder nicht. > Abstufungen ("strenger") machen hier keinen Sinn. Wie gesagt ich rede von den Signaturklassen 0x00 und 0x01. Wobei 0x01 eine veränderung von Zeilenenden erlaubt; 0x00 jedoch nicht. > > Gibt es irgendwelche Recommends, welchen mode ein Mailprogramm > > nutzen sollte? > > Ja, eindeutig PGP/MIME. :) Das ist ja schon so, jedoch bleibt die Frage nach der empfohlenen Signaturklasse. > > Welche Veränderungen sind im clearsign mode alles erlaubt? Ist > > dies die richtige Mailingliste; oder doch eher -devel? > > Was meinst du mit Veränderungen? Im Zusammenhang mit Signaturen > s. o. Ich hoffe ich habe jetzt geschafft klar zumachen was meine Frage ist. Und dass ich es jetzt geschafft rüberzubekommen, was ich fragen will :) Grüße sandro -------------- n�chster Teil -------------- Ein Dateianhang mit Bin�rdaten wurde abgetrennt... Dateiname : signature.asc Dateityp : application/pgp-signature Dateigr��e : 836 bytes Beschreibung: This is a digitally signed message part. URL :