Network Working Group N. Borenstein, First Virtual
Internet Draft C. Plumb
Category: Informational P. Zimmermann
Boulder Software Engineering
May 1994
The application/pgp MIME Content-type
Status of this Memo
This document is an Internet-Draft. Internet-Drafts are
working documents of the Internet Engineering Task Force
(IETF), its areas, and its working groups. Note that other
groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of
six months and may be updated, replaced, or obsoleted by
other documents at any time. It is inappropriate to use
Internet- Drafts as reference material or to cite them other
than as ``work in progress.''
To learn the current status of any Internet-Draft, please
check the ``1id-abstracts.txt'' listing contained in the
Internet- Drafts Shadow Directories on ds.internic.net (US
East Coast), nic.nordu.net (Europe), ftp.isi.edu (US West
Coast), or munnari.oz.au (Pacific Rim).
Abstract
MIME [RFC-1341, RFC-1521] defines a format and general
framework for the representation of a wide variety of data
types in Internet mail. This document defines one
particular type of MIME data, the application/pgp type, for
"pretty good" privacy, authentication, and encryption in
Internet mail. The application/pgp MIME type is intended to
facilitate the wider interoperation of private mail across a
wide variety of hardware and software platforms.
The application/pgp MIME type
This document defines an extremely simple subtype of the
MIME content-type "application", the "application/pgp"
subtype. This subtype was designed to meet the following
Borenstein [Page 1]
Expires 11/20/draft-borenstein-pgp-mime-00.txt May 1994
criteria:
1. Maximal backward-compatibility with pre-MIME
implementations of PGP for ASCII text mail.
2. Ability to use PGP to enhance the privacy of
MIME mail with non-ASCII or non-text data.
3. Ability to optionally differentiate "key-only"
messages from more complex PGP data, for different
treatment by user agent software
4. Ease of implementation.
This document defines a new MIME content-type,
"application/pgp". The content-type line for this type may
have one optional parameters, "format", as described below.
The MIME content-type "application/pgp" is a very simple
adaptation of PGP. When a MIME entity has a content-type of
"application/pgp", the data within it is assumed to be in
PGP format. [PGP]
PGP's data format is ASCII text that includes blocks of
privacy-enhanced text. Such text might be authenticated
(signed), or encrypted. The PGP data is self-describing
with regard to format and content. In current versions of
PGP, only textual data can be encrypted. Beginning with a
future version of PGP, it is expected that arbitrary MIME
data can also be encrypted, but the fact that the data is in
MIME format is not evident from the outside of the PGP data.
Thus even the content-type of data being transmitted may be
made private by PGP.
Of course, once any decryption or verification is performed,
the resulting data must be displayed to the user. A future
version of PGP will include a command line option that will
guarantee that ALL output will be in MIME format, regardless
of whether it was initially encrypted as MIME or text. With
this option, the decrypted result of any application/pgp
MIME entity may be used as input to any general-purpose
MIME-viewing tool.
The "Format" Parameter
Borenstein [Page 2]
Expires 11/20/draft-borenstein-pgp-mime-00.txt May 1994
The optional parameter "format" may be included on the
Content-line for PGP data, to declare the type of encrypted
data enclosed, as follows:
Content-type: application/pgp; format=mime
or
Content-type: application/pgp; format=keys-only
or
Content-type: application/pgp; format=text
This memo defines only three possible values for the format
parameter, namely "text", "mime", and "keys-only".
It should be stressed that the format parameter is
completely optional. Further, it is expected that a future
release of PGP will make this parameter completely
unnecessary for any desired functionality, by building
knowledge about encapsulated MIME into the PGP data
structures. However, the parameter may remain a convenience
for some implementors, and in the interim the "format=mime"
parameter makes it possible for existing MIME and PGP
implementations to be configured to interoperate smoothly
for the automatic encryption and decryption of non-textual
data. In the absence of the "format" parameter, the
decrypted data from non-MIME-aware versions of PGP should
generally be treated as ASCII text by mail readers.
Format=text
If present, the parameter "format=text" indicates that the
result of decrypting the application/pgp entity is textual
data, including data encrypted by pre-MIME versions of PGP.
No further MIME-related processing is called for after
decryption.
Text is the default value of the format parameter. That is,
the following two Content-type specifications should be
treated as equivalent by user agents:
Content-type: application/pgp
Borenstein [Page 3]
Expires 11/20/draft-borenstein-pgp-mime-00.txt May 1994
Content-type: application/pgp; format=text
However, it should be noted that the latter form is more
explicit, and should be generated whenever an encrypting
agent has definite knowledge that the data being encrypted
are simply non-MIME text.
Format=mime
If present, the parameter "format=mime" indicates that the
result of decrypting the application/pgp entity should be
treated as another MIME entity. That is, it should be
inspected for Content-type, etc. and parsed recursively as
a MIME entity.
Format=keys-only
If present, the parameter "format=keys-only" indicates that
the application/pgp entity contains no encrypted or other
data, only PGP keys. A user agent that so chooses may treat
such entities specially, e.g. by providing the user with a
special key-management interface. A user agent without such
specialized understanding may ignore the "keys-only"
parameter, and (for example) pass all "application/pgp"
entities directly to the pgp program.
A Note on Transfer Encodings
One area where MIME and PGP have redundant mechanisms is in
the transformation of binary data into a mail-safe form.
For this purpose, PGP uses "ASCII armor" and MIME uses the
base64 content-transfer-encoding. As it happens, these
mechanisms are virtually identical, but are flagged in
different manners. The PGP mechanism is self-identifying,
while the MIME mechanism uses a "Content-Transfer-Encoding"
header field.
The application/pgp content-type has been carefully designed
to let either of these mechanisms be used. If PGP is used
in a manner that produces "ASCII armor", then no MIME
content-transfer-encoding is needed (or "7bit" may be used).
If PGP is used in a manner that produces binary data, then a
MIME content-transfer-encoding of "base64" may be used, and
a MIME agent will restore the data to its binary form before
processing it as PGP data.
Borenstein [Page 4]
Expires 11/20/draft-borenstein-pgp-mime-00.txt May 1994
This duality of mechanisms implies, however, that the PGP-
processing routines must be prepared to receive PGP data in
either binary OR ASCII armor forms.
Security Considerations
Security issues are not discussed in this memo, which only
describes how PGP usage is labelled in MIME. PGP itself, of
course, is a technology focused on issues of security and
privacy, and the PGP documentation is replete with helpful
information and advice about the security issues PGP seeks
to address.
Authors' Addresses
For more information, the author of this document may be
contacted via Internet mail:
Nathaniel S. Borenstein
First Virtual Holdings
25 Washington Avenue
Morristown, NJ 07960 USA
Email:
[email protected]
Phone: +1 201 540 8967
Fax: +1 201 993 3032
Colin Plumb
43 Farnham Ave.
Toronto, Ontario M4V 1H6 Canada
Email:
[email protected]
Phone: +1 416 968 1261
Philip Zimmermann
3021 11th Street
Boulder, Colorado 80304 USA
Email:
[email protected]
Phone: +1 303 541 0140
Acknowledgements
The authors wish to thank Derek Atkins for his helpful
comments on earlier drafts of this memo.
<<Need to fill in others????>>
Borenstein [Page 5]
Expires 11/20/draft-borenstein-pgp-mime-00.txt May 1994
References
[RFC-1341] Borenstein, N., and N. Freed, "MIME
(Multipurpose Internet Mail Extensions): Mechanisms for
Specifying and Describing the Format of Internet Message
Bodies", RFC 1341, Bellcore, Innosoft, June, 1992.
[RFC-1521] Borenstein, N., and N. Freed, "MIME
(Multipurpose Internet Mail Extensions) Part One:
Mechanisms for Specifying and Describing the Format of
Internet Message Bodies", RFC 1521, Bellcore, Innosoft,
September, 1993.
[PGP] ****NEED TO FILL IN ****
Borenstein [Page 6]
Expires 11/20/draft-borenstein-pgp-mime-00.txt May 1994
Table of Contents
Status of this Memo...................................... 1
Abstract................................................. 1
The application/pgp MIME type............................ 1
2 The
Format=text........................................ 3
Format=mime........................................ 4
Format=keys-only................................... 4
A Note on Transfer Encodings............................. 4
Security Considerations.................................. 5
Authors' Addresses....................................... 5
Acknowledgements......................................... 5
References............................................... 6
Borenstein [Page 7]