HTTP/1.1 200 OK Date: Tue, 09 Apr 2002 06:10:20 GMT Server: Apache/1.3.20 (Unix) Last-Modified: Sat, 02 Mar 1996 14:08:21 GMT ETag: "361b3b-2a7b-31385655" Accept-Ranges: bytes Content-Length: 10875 Connection: close Content-Type: text/plain Network Working Group Internet Engineering Task Force Internet Draft Privacy Enhanced Mail Working Group J. I. Schiller MIT October 1993 An Alternative PEM MIME Integration 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. Internet Drafts may be updated, replaced, or obsoleted by other documents at any time. It is not appropriate to use Internet Drafts as reference material or to cite them other than as a "working draft" or "work in progress." Please check the I-D abstract listing contained in each Internet Draft directory to learn the current status of this or any other Internet Draft. Distribution of this memo is unlimited. Please send comments to the mailing list. This is the second document to describe a mechanism to enclose MIME messages within PEM and vica versa. This document is an independent effort to be considered as an alternative to the previous document. This is *not* a revision of that document and the authors of it do not necessarily endorse the approach described here. Introduction This document describes a mechanism for providing Privacy Enhanced Mail (PEM) functionality within the context of MIME messages. Background MIME (RFC1341-1342) and PEM (RFC1421-1424) have taken separate evolution paths. Specifically PEM was designed and specified to handle RFC822 (non-MIME) messages. The goal of this document is to describe a method for using PEM to protect MIME messages, and to define a way to enclose PEM processed messages within MIME messages. To accomplish these goals requires an additional profile for RFC1421 (Content-Domain: MIME) and the definition of a new MIME "application" (application/pem-1421). There are four possibilities for interaction between PEM and MIME. They are: * A MIME message transporting an RFC1421 PEM message which itself contains an RFC822 message (Content-Domain: RFC822). * A MIME message transporting an RFC1421 PEM message which itself contains a MIME object (Content-Domain: MIME). Expires: April 28, 1994 [Page 1] Network Working Group Internet Engineering Task Force Internet Draft Privacy Enhanced Mail Working Group J. I. Schiller MIT October 1993 * A PEM message which contains a RFC822 message (as specified by RFC1421). * A PEM message which contains a MIME message or object (Content- Domain: MIME). Definition of "Content-Domain: MIME" within an RFC1421 PEM message When a PEM message contains a MIME object, as opposed to a simple text message, the value of the Content-Domain field of the PEM headers shall be the string "MIME". An RFC1421 PEM message of Content-Domain "MIME" shall contain a MIME "object" that begins with a "Content-Type" MIME header. The PEM body, upon completion of successful PEM processing is handed to a MIME interpreter for further processing. Content-Domain "MIME" messages may be protected with either ENCRYPTED, MIC-ONLY or MIC-CLEAR PEM services. However if MIC-CLEAR is chosen, the MIME content should be in a canonical 7bit form. In other words, if the enclosed MIME object is encoded in such fashion as to be 7bit transportable, then MIC-CLEAR may be (and perhaps should be) used. Other non-encrypted messages should be encoded via the MIC-ONLY mechanism. Enclosing a PEM message within a MIME object An RFC1421 PEM message may be enclosed in a MIME message by defining it to be of Content Type "application/pem-1421" by preceding the PEM processed body with: Content-Type: application/pem-1421 Note that the application subtype is defined to be "pem-1421" and that the representation *must* be text/plain; charset=us-ascii. This is because these are correct characterizations of what a RFC1421 message appears as. The behavior of a MIME mail reader with PEM capability A MIME mail reader with PEM capability will be able to fully process a MIME message which includes a PEM portion (which may either be the entire message or only part of a multi-part message). The MIME reader will process a message which contains a PEM portion as it would any other MIME message. Upon encountering a "application/pem-1421" body part, it will invoke PEM processing on the enclosed PEM message. If the PEM message contains a Content- Domain "MIME" body, it will invoke MIME recursively on the successfully processed PEM body. If the Content-Domain is RFC822, the PEM software will either display the enclosed text, or prepend the necessary headers such that it can be fed to a MIME reader which will treat it as an RFC822 mail message. Expires: April 28, 1994 [Page 2] Network Working Group Internet Engineering Task Force Internet Draft Privacy Enhanced Mail Working Group J. I. Schiller MIT October 1993 The behavior of a MIME mail reader without PEM capability A MIME mail reader will process a MIME message with PEM contents as any other MIME message. If an application/pem-1421 object is found and the MIME reader does not support PEM, then the MIME reader may handle the enclosed PEM message in the same or similar fashion as it handles any other application subtype for which it has no support software. The behavior of a non-MIME but PEM capable mail reader A PEM mail reader that does not understand MIME will be able to process a MIME/PEM message provided that the message itself is a PEM message. In other words, if the whole message is PEM processed as the last step prior to transmission, then a PEM capable, but non-MIME capable mail reader will be able to process the PEM message and then display the enclosed MIME object in the same fashion that a non-MIME mail reader handles a MIME (but non-PEM) message today. It is likely that a non-MIME compliant mail reading agent may not be able to parse a MIME message in order to discover an enclosed "application/pem-1421" component containing a PEM message. However an end-user may be able to manually reformat the incoming message so as to make it amenable to PEM processing. Discussion Prior approaches to integrating PEM and MIME have suggested a significant departure from the RFC1421 PEM encapsulation mechanism. Specifically it has been recommended that PEM messages be represented as MIME multi-part messages. One part of the multi-part would contain what in RFC1421 is described as the PEM headers, and the other would contain the PEM body that is protected by the PEM mechanisms specified in the PEM header part. This document intentionally does not recommend such an approach. This is because it is important for MIME interpreters to *not* reach down into the structure of a PEM body until PEM processing has been performed. The reason for this requirement has to do with the requirement that PEM body parts be immutable so that digital signatures computed on them can be verified. If a PEM body part is decomposeable by MIME readers, then it is quite possible that MIME gateways could reassemble PEM body parts in a fashion semantically equivalent to the original message, but sufficiently different (i.e., different in one bit is sufficient) to cause signature verification to later fail. It is important to understand that the signature verification requirement mandates that PEM messages be carried within MIME as "application" objects and not as "message", "multipart" or other types of body parts. Once this is recognized, it no longer matters whether or not the object within the "application" enclosure appears to be a MIME object upon visual inspection, for it is now outside the realm of what a MIME interpreter may attempt to parse without the aid of the application processor (PEM in this case). Expires: April 28, 1994 [Page 3] Network Working Group Internet Engineering Task Force Internet Draft Privacy Enhanced Mail Working Group J. I. Schiller MIT October 1993 By using the RFC1421 based encapsulation technology we benefit from the experience gained in debugging existing PEM implementations as well as ease backward compatibility with non-MIME based PEM agents. Examples Date: Sun, 30 May 93 23:59:39 EST From: jis@MIT.EDU (Jeffrey I. Schiller) To: pem-dev@tis.com Subject: Example PEM MIME Interaction MIME-Version: 1.0 Content-Type: application/pem-1421 -----BEGIN PRIVACY-ENHANCED MESSAGE----- Proc-Type: 4,MIC-CLEAR Content-Domain: MIME Originator-Certificate: MIIB+jCCAWMCAQIwDQYJKoZIhvcNAQECBQAwSj... Issuer-Certificate: MIIB+jCCAWMCAQQwDQYJKoZIhvcNAQECBQAwRDELMA... MIC-Info: RSA-MD5,RSA,dlSRMLFiwcK7FDvFef8gJfLWwMM4uxMSNtKGlLz9xxw fAyvaFuzp85davcwX4q7EImDs4K46Uwh0oL2GueLnv6b4s1gg25mMg/Y5Bd7/HaE cvkV77tKWGXZrDGEgGSDA Content-Type: text/plain; charset=us-ascii This is a test message. -----END PRIVACY-ENHANCED MESSAGE----- Author's Address Jeffrey I. Schiller Massachusetts Institute of Technology MIT Room E40-311 1 Amherst Street Cambridge, MA 02139 U.S.A. Tel: +1 (617) 253-0161 Fax: +1 (617) 258-8736 Email: jis@mit.edu