next up previous
Nächste Seite: Historische Verfahren zur GnuPG Aufwärts: gnupg+mua_de Vorherige Seite: Übersicht

Protokolle

Das von GnuPG unterstützte Protokoll ist OpenPGP, welches auf den Formaten von PGP 2 aufbaut. Es ist im RFC2440[3] definiert. Allerdings sagt dieses Protokoll nichts zur Verwendung in Email aus und man hat hierzu auf weitere Protokolle zurückzugreifen.

Traditionell wurde das in OpenPGP definierte ASCII Armor Encoding direkt auch von Email Programmen benutzt, wobei hier ein MIME-Typ
application/pgp-encrypted benutzt wird. Dieses sehr simple Protokoll hat jedoch einige entscheidende Nachteile, insbesondrs ist es nicht moglich eine Mail aus mehreren Teilen (Attachments) zusammenzusetzen. Aus diesem Grund und wegen einiger weiterer Probleme, sollte es möglichst nicht benutzt werden. Wenn möglich sollte ein MUA dieses ASCII Armor Format allerdings verstehen; dieses Format zu erzeugen is zu vermieden.

Basierend auf dem MIME Standard[5] wurde das MOSS Protokoll[6] entworfen, welches die Basis für den RFC2015[2] (MIME Security wth Pretty Good Privacy) darstellt. Dieses Protokoll sollte unbedingt zur Anwendung kommen. Im Weiteren wird es auch als PGP/MIME bezeichnet.

PGP/MIME definiert 2 Protokolltypen: PGP Encrypted Data und PGP Signed Data. Beide können auch kombiniert werden. Hier eine kurze Darstellung der Funktionsweise -- Details sind dem RFC2015[2] zu entnehmen.

PGP Encrypted Data ist eine MIME Multipart Message mit 2 Teilen in einem Content-Type von multipart/encrypted mit dem Parameter protocol="application/pgp-encrypted". Der erste Teil hat nun den Content-Type application/pgp-encrypted und besteht lediglich aus einer Zeile mit dem String Version: 1. Der zweite Teil hat den Content-Type application/octet-stream und besteht aus der OpenPGP ASCII Armored Nachricht. Der Plaintext dieser Nachricht ist nun ein normaler MIME Body und kann durchaus auch wieder eine Multipart Message sein.

PGP Signed Data ist etwas komplizierter, da wir hier sicherstellen müssen, daß die Nachricht auf dem Transport nicht verändert wird. Details hierzu sind wiederum im RFC2015[2] zu finden. Es handelt sich auch hier um eine MIME Multipart Message mit 2 Teilen. Die gesamte Nachricht hat den Content-Type von multipart/signed mit dem Parameter protocol="application/pgp-signature". Der erste Teil stellt die eigentliche Nachricht dar und kann eine beliebiges Mime Objekt sein. Dieses gesamte Objekt wird signiert. Oft handelt es sich bei diesem Objekt dann auch um ein Multipart Object welches die eigentliche Nachricht mit ihren Attachments darstellt. Der zweite Teile hat den Content-Type application/pgp-signature und beinhalted eine ``Detached Signature'' im Textmodus als OpenPGP ASCII Armor. Als Besonderheit muß der Haupt MIME Content-Type noch den Parameter micalg=foo enthalten, wobei foo hier durch den verwendeten Hash Algorithmus zu ersetzen ist. Unter OpenPGP macht dieser Parameter allerdings wenig Sinn (er stammt aus dem MOSS Framework) und sollte von Anwedungen zwar korrekt gesetzt werden, ansonsten ist er aber zu ignorieren.


next up previous
Nächste Seite: Historische Verfahren zur GnuPG Aufwärts: gnupg+mua_de Vorherige Seite: Übersicht
Werner Koch 2001-02-14