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.