view Side-By-Side changes
Network Working Group Steve Crocker INTERNET DRAFT Ned Freeddraft-ietf-pem-mime-05.txtdraft-ietf-pem-mime-06.txt Jim Galvin Sandy MurphyJuneJuly 1994 PEM Security Services and MIME 1. 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 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 one of the Internet Drafts Shadow Directories on ds.internic.net (US East Coast), venera.isi.edu (US West Coast), munnari.oz.au (Pacific Rim), or nic.nordu.net (Europe). 2. Abstract This document specifies how the services of MIME and PEM can be used in a complementary fashion. MIME, an acronym for "Multipurpose Internet Mail Extensions", defines the format of the contents of Internet mail messages and provides for multi-part textual and non-textual message bodies. PEM, an acronym for "Privacy Enhanced Mail", provides message authentication/integrity and message encryption services for Internet mail messages. An Internet electronic mail message consists of two parts: the headers and the body. The headers form a collection of field/value pairs structured according toRFC 822RFC822 [1], whilst the body, if structured, is defined according to MIME [2]. MIME does not provide for the application of security services. Crocker/Freed/Galvin/Murphy Expires:December 1994January 1995 [Page 1] INTERNET DRAFT PEM and MIMEJuneJuly 1994 PEM [3-6] specifies how to apply encryption and authentication/integrity services to the contents of a textual electronic mail message but does not provide message structuring or type labelling facilities. This document specifies how to use PEM with the multipart/signed and multipart/encrypted MIME content types to provide authentication/integrity and encryption services. We refer to the authentication/integrity service as a digital signature service. This document specifies a number of changes to the message encryption and signature procedures of PEM and broadens the name forms that may be used to identify public keys. Many of the changes represent a departure in mechanism, not in effect. 3. Introduction This document updates the message encryption and signature procedures defined by [3] and obsoletes the key certification and related services defined by [6]. The changes to [3] include the separation of the encryption and signature services, the removal of the limitation to enhance only text-based messages, the removal of the transfer encoding operation, the deprecation of the Content-Domain: and Proc-Type: headers, and the separation of certificate and certificate revocation list transmission from the security enhancements. These changes represent a departure in mechanism, not in effect, and are detailed in Section??.10. In addition, this documentproposesspecifies three technicalchanges: in [3]changes to PEM: symmetric key managementis deprecated, alsoin [3] is deprecated, the canonicalization operation in [3] is generalized, andin [4]the allowable name forms for thesubjectsidentification ofcertificatespublic keys is broadened to include arbitrary strings and email addresses, and users may distribute their public keys directly in lieu of certificates. The key certification and related services document [6] is obsoleted by the specification of two new MIME content types: application/key-request and application/key-data. These new content types are used to transmit requests for key operations(retrieval,(storage, retrieval, certification, revocation list retrieval, etc.) and the responses to those requests. These two content types are independent body parts and are not required to be encapsulated in any other body part. These changes represent a departure in mechanism, not in effect, and are detailed in Section??. The relationship between MIME and PEM is described in terms10. In order to make use oftwo functions: message composition and message delivery. 3. Applyingthe PEMSecurity Servicesservices, a user is required toMIME Body Parts The next section describes the processing steps necessaryhave at least one public/private key pair. Prior toprepare a MIME body part for the application of PEM security services. The succeeding two sections describe the content of the multipart/signed and multipart/encrypted body parts resulting fromthis specification, theapplication of PEM security servicespublic key was required toMIME body parts.be embodied in a certificate, an object that Crocker/Freed/Galvin/Murphy Expires:December 1994January 1995 [Page 2] INTERNET DRAFT PEM and MIMEJuneJuly 19943.1. PEM Processing Steps The following three steps describebinds a public key with a distinguished name, a name form that identified thepreparationowner ofoutbound PEM messages. These steps maythe public key. The embodiment was issued by a certification authority, a role that was expected to berepeatedtrustworthy insofar asnecessary to prepare a message for submission. (1) Local Form --it verified thecontentidentity of themessage is prepared inowner prior to issuing thenative formatcertificate. However, the deployment of certificates and theuser's local environment (2) Canonical Form --creation of thecontenthierarchy of certification authorities has been problematic. Instead, this specification bases themessagePEM services on a public/private key pair. Each key pair istransformedrequired to belong to acanonical form for the digital signature service; no canonicalizationuser (where user isrequired for the encryption service (3) Security Form -- either of the signaturenot limited to being a human, e.g., a process orencryption services may be applied Eacha role) which has a name. There are 3 name forms specified by this document. For backward compatibility (and forward compatibility if the X.500 Directory becomes a ubiquitous service) one ofthese stepsthe name forms isdescribed in detail below. Their relationship to message compositiona distinguished name. In addition, email addresses anddeliveryarbitrary strings are allowed. Since a user may have more than one key pair, a name form isdescribed in Section ??. 3.1.1. Step 1: Local Forminsufficient for uniquely identifying a key pair. Themessage content is created in the native format of the user's local environment. 3.1.2. Step 2: Canonical Form Prior to the applicationowner ofthe digital signature service, the contenta key pair mustbe inassign acanonical form. No canonicalization is required for the encryption service and therefore processing continues with the next step. Transforming the contentkey identifier tobe signed intoeach key pair. The combination of acanonicalname formisand anecessarykey identifier uniquely identifies a key pair andessential step in the digital signature process. The canonical form must satisfy the property that iteach key pair is uniquely identified by a name form andunambiguously representable on both the originator and recipient's local environment. Thiskey identifier combination. Throughout this document, this combination isrequired in order to ensurecalled an identifier. There are 6 identifiers specified by this document. With a key pair for one's self and software that is boththe originatorMIME andrecipient have the samePEM aware, an originating user may digitally sign arbitrary datawith whichand send it tocalculateone or more recipients. With thedigital signature;public keys of theoriginator needs to be able to includerecipients, a user may encrypt thedigital signature value when transferringdata so that only thebody part, whileintended recipients can decrypt and read therecipient needsit. This specification separates these two services so that an originator may apply either or both, in either order. The name forms and identifiers are described in detail in the next section. Succeeding sections specify how PEM and MIME are used together and other ancillary details. 4. Name Forms and Identifiers Currently, [3] requires the use of certificates tobe ableidentify the public key (and corresponding private key) used tocomparecreate are-calculated value withPEM message. Within certificates, [4] requires thereceived value. Further,use of distinguished names as specified by thecanonical form should satisfyX.500 Series of Recommendations. However, theproperty that it is representable on as many different host computersInternet community has a great deal more experience with the use of electronic mail addresses aspossible. By satisfying this property, signed data may be forwarded by recipientsa name form and there is a desire toadditional recipients, who will alsobe able toverifyuse arbitrary strings to identify theoriginal signature. This serviceowners of public keys. Hence, there iscalled forwardable authentication.a need to support name forms which do not conform to the expected Crocker/Freed/Galvin/Murphy Expires:December 1994January 1995 [Page 3] INTERNET DRAFT PEM and MIMEJuneJuly 1994The canonical formusage ofall content typesdistinguished names. When processing PEM messages it isdefinednecessary to be7bit. The dataable tobe signed must be represented as 7bit. Since the MIME standard explicitly disallows nested encodings, the body parts enclosed in a multipart content type, for example, must be encoded in a 7bit representation. Any valid MIME encoding may be selected. The 7bit representation ofuniquely identify thedata is transferredkey pair used to create therecipient. As may be required by MIME, an appropriate Content-Transfer-Encoding: headermessage. A certificate isincluded with the data. Upon receipt, a MIME implementation would verifyuniquely identified by thesignaturecombination ofthe data prior to decoding the dataits issuer's distinguished name anddisplaying it toits serial number. Thus, therecipient. Representing all complex content types as 7bit transforms them into text-based content types. However, text-based content types presentissuer name and serial number uniquely identifies aunique problem. In particular, there are far too many broken message transfer agentskey pair. Since a user may have more than one key pair, a name form is insufficient for this purpose. An identifier is required thatmake arbitrary changes to text-based messages as they are relayed, including adding, deleting, or changing TAB and SPACE characters,consists of both a name form andline delimiters are altered by message transfer agent protocols. These changes will make it impossible for recipientskey identifier, a value assigned toverify the signature onamessage. The application of the digital signature service requires that the same line delimiter be usedkey pair byboth the originator and the recipient. This document specifies that the two character sequence "<CR><LF>" must be used asits owner. In addition, users may distribute their public keys via mechanisms outside theline delimiter. Thus,scope of thecanonicalization transformationPEM specification, for example, in a file via FTP. As a result, it is desirable totransform the local line delimiterbe able to explicitly specify thetwo character sequence "<CR><LF>". The transformation topublic key used rather than an identifier of theuniversal line delimiterpublic key. A significant benefit of this mechanism isonly required forthepurposesability to support encrypted, anonymously signed mail. The objective ofcomputing the digital signature. Thus, originators must applytheuniversal line delimiter transformation before calculating the digital signature but must transfer the data without the universal line delimiter transformation. Similarly, recipients must apply the universal line delimiter transformation before calculating the digital signature. NOTE: An originator can not transfervarious Originator and Recipient fields specified in [3] is to identify which public key has been used or is required. This document simplifies thecontentset of fields by specifying exactly two: Originator-ID: for originators and Recipient-ID: for recipients. This specification defines six (6) identifiers with which theuniversal line delimiter transformation intact because the transformation process is not idempotent. In particular, SMTP serverspublic key used maythemselves convertbe indicated in each of these fields. In theuniversal line delimiter to a local line delimiter, prior tonext section themessage being delivered to3 name forms are described in detail. Following that is theuser. Thus, a recipient has no wayspecification ofknowing ifthetransformation6 identifiers. 4.1. Name Forms There are 3 name forms specified by this document: email address, distinguished names, and arbitrary strings. 4.1.1. Email Addresses The email address (grammar token <emailstr>) used must be a valid RFC822 address, which ispresent or not. Thus, ifdefined in terms of therecipient appliestwo grammar tokens <addr-spec> and <route-addr>. The grammar for these two tokens is included in thetransformation toAppendix as acontent in which it is already present,convenience; theresulting content may havedefinitive source for these tokens is necessarily RFC822 [1]. <emailstr> ::= <addr-spec> / <route-addr> ; an electronic mail address as defined by ; these twoline delimiterstokens from RFC822 Crocker/Freed/Galvin/Murphy Expires:December 1994January 1995 [Page 4] INTERNET DRAFT PEM and MIMEJuneJuly 1994present, which would causeFor example, theverification ofstring "galvin@tis.com" is an email address. 4.1.2. Arbitrary Strings The arbitrary string (grammar token <string>) must chosen from thesignature to fail. 3.1.3. Step 3: Security Form Eitherus- ascii character set and must have a length of at least 1. It is possible to encode thedigital signature or encryption services is applied toactual string in such acontent. The content to be protectedway that only characters from the us-ascii character set are generated, but there isprepared by a MIME implementation and made available to a PEM implementation accordingno mechanism for conveying to alocal convention. The PEM implementation must produce two outputs:recipient thedataencoding thathas been protected and the control information necessary to verify or removewas used. <string> ::= ; a non-null sequence of us-ascii characters For example, theprotection. These outputsstring Jim "the SAAG mailing list maintainer" Galvin is an arbitrary string. 4.1.3. Distinguished Names The distinguished name (grammar token <dname>) must bemade available to the MIME implementation which will construct a multipart/signed or multipart/encrypted content,constructed according to theservice requested. The multipart content replaces the content that was selected for protection. 3.2. Useguidelines ofmultipart/signed Content Type When this content type is used,thevalue ofX.500 Directory. For therequired parameter "protocol" is "pem"purposes of conveying a distinguished name from an originator to a recipient, it must be ASN.1 encoded and then printably encoded according to thevalue ofbase64 encoding defined by MIME. <dnamestr> ::= <encbin> ; a printably encoded, ASN.1 encoded ; distinguished name ** EXAMPLE DISTINGUISHED NAME ** 4.2. Identifiers There are 6 identifiers specified by this document: email address, arbitrary string, distinguished name, PGP key identifier, therequired parameter "hashalg" is one ofpublic key itself, and thevalid choicesissuer name and serial number pair from[5], for example: Content-Type: multipart/signed; protocol="pem"; hashalg="md5"; boundary="Signed Message" --Signed Message Content-Type: text/plain This is some example text. --Signed Message Content-Type: application/signature <pemsig> --Signed Message-- wherea certificate. All of these have approximately the<pemsig> token is definedsame structure asfollows.follows: TYPE, KEYID, STRING Crocker/Freed/Galvin/Murphy Expires:December 1994January 1995 [Page 5] INTERNET DRAFT PEM and MIMEJuneJuly 1994<pemsig> ::= <version> (1*<origasymflds>) <version> ::= "Version:" "5" CRLF <origasymflds> ::= <origid> <micinfo> <origid> ::= "Originator-ID:" <id> CRLFThetoken <id>TYPE field isdefined in Section ??.a literal string, one for each of the possible identifiers. Theonly validKEYID field is used to distinguish between the multiple public keys that may be associated with the name form in the STRING field. In 3 of the identifiers its valueforis arbitrary, chosen by the owner of the key pair, except that it must be distinct from all the other KEYIDs used by the owner. Suggested values include aContent-Transfer-Encoding: header, if included,portion (low-order 16 or 32 bits) or all of the actual public key used. In the other 3 identifiers the value is"7bit". 3.3. Usestill chosen by the owner ofmultipart/encrypted Content Type When this content typethe public key and it must still be unique, but its value isused,chosen from a more restricted alphabet. The STRING field is the name form and has a different syntax according to the value of therequired parameter "protocol"TYPE field. The identifier used in each of the originator and recipient fields is"pem", for example: Content-Type: multipart/encrypted; protocol="pem"; boundary="Encrypted Message" --Encrypted Message Content-Type: application/keys <pemkeys> --Encrypted Message Content-Type: application/octet-stream <encrypted data> --Encrypted Message-- wheredescribed by the<pemkeys>following grammar. The definition of the key identifier token isdefined as follows. <pemkeys>included here since it used by several of the identifiers below. <id> ::=<version> <dekinfo> 1*<recipasymflds> <version><nameid> / <id-publickey> / <id-issuer> <nameid> ::="Version:" "5" CRLF <recipasymflds><id-email> / <id-string> / <id-dname> / <id-pgp> <keyid> ::=<recipid> <asymkeyinfo> <recipid><encbin> ; a printably encoded non-null sequence of octets Each of the identifier name forms is described below. 4.2.1. Email Address The email address identifier has the following syntax. <id-email> ::="Recipient-ID:" <id>"EN" "," <keyid> "," <emailstr> CRLF<asymkeyinfo>4.2.2. Arbitrary String The arbitrary string identifier has the following syntax. <id-string> ::="Key-Info" ":" <ikalgid>"STR" ","<asymencdek><keyid> "," <string> CRLF Crocker/Freed/Galvin/Murphy Expires:December 1994January 1995 [Page 6] INTERNET DRAFT PEM and MIMEJuneJuly 1994 4.2.3. Distinguished Name Thetoken <id> is defined in Section ??. 4. Removing PEM Security Services from PEM Body Parts Upon receipt of a multipart/signed or multipart/encrypted body part, the PEM security services are removed by reversing the sequence of steps specified in Section ??, modifying step 2 as follows. (1) All content types must have their line delimiters canonicalized prior to removingdistinguished name identifier has thePEM security services. (2) Outer layers of PEM security services must be processed prior to processing inner layersfollowing syntax. <id-dname> ::= "DN" "," <keyid> "," <dnamestr> CRLF The actual form and syntax ofPEM security services. Processing includes a user choosing to display a content without removingthePEM security services. 5. Definition of New Name Forms WARNING: Thisdistinguished name is outside thefirst draftscope of thissection. Although conceptually it representsspecification. RFC1422 specifies one possible form based on adirection that will not change, while this document is an internet draft the detailsparticular choice ofthe specification are subject to change at any time, without notice, owing to comments and implementation experience. Implementors are encouraged to contact the authorsa certification hierarchy for certificates. 4.2.4. PGP Public Key The PGP public key identifier has thecurrent status. Currently, [3] requires the use of certificates to specifyfollowing syntax. <id-pgp> ::= "PGP2" ",0x" <pgp-keyid> "," <string> CRLF <pgp-keyid> ::= ; a sequence from the following alphabet: {0-9, A-F} ; which is either exactly six or eight characters long 4.2.5. Public Key The public keyused to create a PEM message. Within certificates, [4] requiresidentifier has theuse of distinguished namesfollowing syntax. This identifer, asspecified by the X.500 Series of Recommendations. However,compared to theInternet communityothers, hasa great deal more experience withtheuse of electronic mail addresses as identifiers and there is a desire to be able to use arbitrary strings to identifyunique property that theowners of public keys. Hence, thereSTRING element is optional and, when included, is not aneed to support name forms which do not conform to the expected usagestring but rather one ofdistinguished names. In addition, users may distribute their public keys via mechanisms outside the scopefour of thePEM specification, for example, in a file via FTP as opposed to in a certificate. Asother identifiers. <id-publickey> ::= "PK" "," <publickey> [ "," <nameid> ] CRLF <publickey> ::= <encbin> ; aresult, itprintably encoded, ASN.1 encoded ; subjectPublicKeyInfo In normal usage, the STRING element isdesirableexpected to beable to explicitly specify the public key used rather thanabsent. When present, it represents a mechanism by which an identifierof the(name form and key identifier) can be associated with a public key.The objectiveRecipients ofthe various Originator and Recipient fields specified in [3] is to indicate whicha public keyhas been used or is required. This document simplifiesidentifier must take care to verify thesetaccuracy offields by specifying exactly two: Originator-ID:the purported association. If not, it may be possible fororiginators and Recipient-ID:a malicious originator to assert an identifier that accords the originator unauthorized privileges. See Section 7.2 forrecipients.more details. The object subjectPublicKeyInfo is imported from the X.500 Directory from the certificate object. It is currently the best choice for a Crocker/Freed/Galvin/Murphy Expires:December 1994January 1995 [Page 7] INTERNET DRAFT PEM and MIMEJuneJuly 1994value of each of these fields is indicated bygeneral purpose public key encoding. 4.2.6. Issuer Name and Serial Number The issuer name and serial number identifier has thetoken <id>, which is defined as follows. <id> ::= <id-email> / <id-string> / <id-dname> / <id-publickey> / <id-issuer> <id-email> ::= "EN" "," <atstring> "," <hashalgid> "," <hashpublickey> <id-string> ::= "STR" "," <string> "," <hashalgid> "," <hashpublickey> <id-dname> ::= "DN" "," <dname> "," <hashalgid> "," <hashpublickey> <id-publickey> ::= "PK" "," "," <pkalgid> "," <publickey> "," ( <string> / <atstring> )following syntax. <id-issuer> ::= "IS" ","<dname><dnamestr> "," <serial><atstring>CRLF <serial> ::=<encbin>1*<hexchar> ;a printably encoded, ASN.1 encoded ; string containing exactly one '@' <string> ::= <encbin> ; "a sequence of characters excluding '@'" ; a printably encoded, ASN.1 value <hashalgid> ::= "to be defined by RFC 1423" <hashpublickey> ::= 1*<hexchar> ; hex dump of the <hashalgid> hash of the ; public key <pkalgid> ::= "to be defined by RFC 1423" <publickey> ::= <encbin> ; a printably encoded, ASN.1 encoded public key <dname> ::= <encbin> ; a printably encoded, ASN.1 encoded ; distinguished name <serial> ::= 1*<hexchar> ; hex dump of the serial number ofhex dump of the serial number of a certificate Theinclusion of the hash of the public key is intended to facilitate the recognition of which public key among several that may be associated with the string or distinguished name. Crocker/Freed/Galvin/Murphy Expires: December 1994 [Page 8] INTERNET DRAFT PEM and MIME June 1994 The identifiers <id-email> and <id-string> are distinguished only by the presence or absence of the character '@'. In all other respects they are equivalent and are encoded strings that are to be used as the subject name in a certificate. This distinguishing characteristic was chosen as opposed to defining a new object identifier to represent email addresses because of the perceived difficulty in distributing and implementing the definition of a new object identifier. The <id-publickey> identifier allows for the direct distribution and indication of the public key that was or is to be used to process the message. The<id-issuer> identifier is included for backward compatibility with the ID-ASymmetric fields defined in [3]. The older fields are easily converted to this new form by prefixing the old value with "IS," and replacing the field name with an appropriate new ID field.6. Definition of New Content Types This document defines two new content types,5. Applying PEM Security Services to MIME Body Parts The next section describes thecontents of which compriseprocessing steps necessary to prepare areplacement mechanismMIME body part for[6].the application of PEM security services. Thefirst content type is application/key-request, which replacessucceeding two sections describe thecertificationcontent of the multipart/signed and multipart/encrypted body parts resulting from the application of PEM security services to MIME body parts. 5.1. PEM Processing Steps The definition of the multipart/signed and multipart/encrypted body parts in [7] specifies three steps for creating both body parts. (1) The body part is to be protected is created according to a local convention. (2) The body part is prepared for protection according to the protocol parameter. (3) The prepared body part is protected according to the protocol parameter. This specification makes no changes to step one in the sequence. For step two, there is no preparation necessary for the encryption service. For the digital signature service, the body part must be canonicalized as described below. This specification makes no changes to step three in the sequence. Crocker/Freed/Galvin/Murphy Expires: January 1995 [Page 8] INTERNET DRAFT PEM and MIME July 1994 Prior to the application of the digital signature service, the body part must be in a canonical form. Transforming the body part to be signed into a canonical form is a necessary and essential step in the digital signature process. The canonical form must satisfy the property that it is uniquely and unambiguously representable in both the originator and recipient's local environment. This is required in order to ensure that both the originator and recipient have the same data with which to calculate the digital signature; the originator needs to be able to include the digital signature value when transferring the body part, while the recipient needs to be able to compare a re-computed value with the received value. Further, the canonical form should satisfy the property that it is representable on as many different host computers as possible. By satisfying this property, signed data may be forwarded by recipients to additional recipients, who will also be able to verify the original signature. This service is called forwardable authentication. The canonicalization transformation is a two step process. First, the body part must be converted to canonical representation suitable for transport between originators and recipients. Second, the body part must have its line delimiters canonicalized prior to computing the digital signature and prior to each verification of the digital signature. The canonical representation of all body parts is specified to be 7bit, as defined by [2]. Since the headers of body parts are already required to be representable in 7bit, this step requires that if the data to be signed is not already 7bit it must be encoded with an appropriate MIME content transfer encoding. Note, since the MIME standard explicitly disallows nested content transfer encodings, i.e., the content types multipart and message may not themselves be encoded, body parts enclosed within, for example, a multipart content type, must be encoded in a 7bit representation. Any valid MIME encoding may be selected. The 7bit representation of the data must be transferred to the recipient. As may be required by MIME, an appropriate Content- Transfer-Encoding: header is included with the data. Upon receipt, a MIME implementation would verify the signature of the data prior to decoding the data and displaying it to the recipient. Representing all complex content types as 7bit transforms them into text-based content types. However, text-based content types present a unique problem. In particular, the line delimiter used on a text-based content type is specific to a local environment; different environments use the single character carriage-return (<CR>), the single character line-feed (<LF>), or the two character sequence "carriage-return line- Crocker/Freed/Galvin/Murphy Expires: January 1995 [Page 9] INTERNET DRAFT PEM and MIME July 1994 feed (<CR><LF>)." The application of the digital signature service requires that the same line delimiter be used by both the originator and the recipient. This document specifies that the two character sequence "<CR><LF>" must be used as the line delimiter. Thus, the canonicalization transformation includes the transformation of the local line delimiter to the two character sequence "<CR><LF>". The transformation to the canonical line delimiter is only required for the purposes of computing the digital signature. Thus, originators must apply the canonical line delimiter transformation before computing the digital signature but must transfer the data without the canonical line delimiter transformation. Similarly, recipients must apply the canonical line delimiter transformation before computing the digital signature. NOTE: An originator can not transfer the content with the canonical line delimiter transformation intact because the transformation process is not idempotent. In particular, SMTP servers may themselves convert the canonical line delimiter to a local line delimiter, prior to the message being delivered to the user. Thus, a recipient has no way of knowing if the transformation is present or not. Thus, if the recipient applies the transformation to a content in which it is already present, the resulting content may have two line delimiters present, which would cause the verification of the signature to fail. IMPLEMENTORS NOTE: Implementors should be aware that the transformation to a canonical representation is a function that is available even in a minimally compliant MIME user agent. Further, the canonical line delimiter transformation required here is distinct from the same transformation included in that function. Specifically, the line delimiter transformation in the former case is performed prior to the application of the canonical representation while it is performed after the application of the canonical representation in the latter case. 5.2. Use of multipart/signed Content Type When this content type is used, the value of the required parameter "protocol" is "pem" andCRL- retrieval request messages.the value of the required parameter "hashalg" is Crocker/Freed/Galvin/Murphy Expires: January 1995 [Page 10] INTERNET DRAFT PEM and MIME July 1994 one of the valid choices from [5], for example: Content-Type: multipart/signed; protocol="pem"; hashalg="md5"; boundary="Signed Message" --Signed Message Content-Type: text/plain This is some example text. --Signed Message Content-Type: application/signature <pemsig> --Signed Message-- where the <pemsig> token is defined as follows. <pemsig> ::= <version> ( 1*<origasymflds> ) <version> ::= "Version:" "5" CRLF <origasymflds> ::= <origid> <micinfo> <origid> ::= "Originator-ID:" <id> CRLF Thesecondtoken <id> is defined in Section 4.2. The only valid value for a Content-Transfer-Encoding: header, if included, is "7bit". 5.3. Use of multipart/encrypted Content Type When this content type isapplication/key-data, which replaces the certification reply message,used, thecrl-storage request message, andvalue of thecrl-retrieval reply message. There were no requirementsrequired parameter "protocol" is "pem", fora crl-storage reply messageexample: Crocker/Freed/Galvin/Murphy Expires: January 1995 [Page 11] INTERNET DRAFT PEM andnone are specifiedMIME July 1994 Content-Type: multipart/encrypted; protocol="pem"; boundary="Encrypted Message" --Encrypted Message Content-Type: application/keys <pemkeys> --Encrypted Message Content-Type: application/octet-stream <encrypted data> --Encrypted Message-- where the <pemkeys> token is defined as follows. <pemkeys> ::= <version> <dekinfo> 1*<recipasymflds> <version> ::= "Version:" "5" CRLF <recipasymflds> ::= <recipid> <asymkeyinfo> <recipid> ::= "Recipient-ID:" <id> CRLF <asymkeyinfo> ::= "Key-Info" ":" <ikalgid> "," <asymencdek> CRLF The token <id> is defined inthis document.Section 4.2. 6. Removing PEM Security Services from PEM Body Parts Thisdocumentsection describes the processing steps necessary to verify or decrypt the PEM security services that have been applied to MIME body parts. Outer layers of PEM security services must be processed prior to processing inner layers of PEM security services. Processing includes aspecification foruser choosing to display acertificate request message, which was previously undefined. NOTE: RFC1424 has some descriptive text, especiallycontent without removing the PEM security services. The definition of the multipart/signed and multipart/encrypted body parts in [7] specifies three steps forcertification messages, that should probably be included. 6.1. application/key-request Content Type Definitionreceiving both body parts. (1)MIME type name: application (2) MIME subtype name: key-request (3) Required parameters: none (4) Optional parameters: none (5) Encoding considerations: quoted-printable is always sufficientThe protected body part and the control information body part are prepared for processing. Crocker/Freed/Galvin/Murphy Expires:December 1994January 1995 [Page9]12] INTERNET DRAFT PEM and MIMEJuneJuly 1994(6) Security Considerations: none(2) Thecontent of thisprepared bodypart correspondsparts are made available to thefollowing production. <request> ::= <version> ( <subject> / <issuer> / <certification> ) <version> ::= "Version:" "5" CRLF <subject> ::= "Subject:" <id> CRLF <issuer> ::= "Issuer:" <id> CRLF <certification> ::= "Certification:" <encbin> CRLF This content type is used to provide for someprotection removal process. (3) The results of therequests described in [6]. The information inprotection removal process are made available to thebody part is entirely independent of any other body part. As such,user and processing continues with theapplication/key-request content type is an independentunprotected bodypart. The certification request, certificate-retrieval request and crl- retrieval request are provided for directly. Ifpart, as returned by thecontent contains a Certification: field it requests certification ofprotection removal process. For step one, theself-signed certificatepreparation for digitally signed and encrypted body parts is different, as described below. No changes are required to steps two and three in thefield value. Ifsequence. For multipart/signed body parts, the control information is prepared by removing any contentcontains an Issuer: field it requests the certificate revocation list chain beginning with the issuer identified in the field value. Iftransfer encodings that may be present. The digitally signed body part is prepared by leaving the contentcontains a Subject: field it requeststransfer encodings intact and canonicalizing thecertificate chain beginning withline delimiters according to Step 2 of Section 5.1. Multipart/encrypted body parts are prepared by removing thesubject identified incontent transfer encodings, if present, from both thefield value. The Subject:control information andIssuer: fields each contain a value of type Name, encoded according totheBasic Encoding Rules, then in ASCII, as forencrypted body part. 7. Definition of New Content Types This document defines two new content types, theOriginator-ID-Asymmetric: fieldcontents of[3].which comprise a replacement mechanism for [6]. Thecrl-storage requestfirst content type isprovided for byapplication/key-request, which replaces theapplication/key-datacertification and CRL- retrieval request messages. The second content typedescribed inis application/key-data, which replaces thenext section. In each case,certification reply message, theresponse is transmitted in an application/key-data content type. When returning certificatecrl-storage request message, andcertificate revocation list chains, if there exists more than one chain, several application/key-data contents are to be returned inthe crl-retrieval reply message. There were no requirements for a crl-storage reply message and none are specified in this document. This document includes a specification for a public key and certificate request message,onewhich were previously undefined. NOTE: RFC1424 has some descriptive text, especially foreach chain. 6.2. application/key-datacertification messages, that should probably be included. 7.1. application/key-request Content Type Definition (1) MIME type name: application (2) MIME subtype name: key-request Crocker/Freed/Galvin/Murphy Expires:December 1994January 1995 [Page10]13] INTERNET DRAFT PEM and MIMEJuneJuly 1994(2) MIME subtype name: key-data(3) Required parameters: none (4) Optional parameters: none (5) Encoding considerations: quoted-printable is alwayssufficient.sufficient (6) Security Considerations: none The content of this body part corresponds to the following production.<certdata> ::= <certchain> / <crlchain> <certchain> ::= <version> <cert> *( [ <crl> ] <cert> ) <crlchain><request> ::= <version>1*( <crl> [ <cert> ]( <subject> / <issuer> / <certification> )<cert><version> ::="Certificate:" <encbin>"Version:" "5" CRLF<crl><subject> ::="CRL:" <encbin>"Subject:" <id> CRLF<version><issuer> ::="Version:" "5""Issuer:" <id> CRLF <certification> ::= "Certification:" <encbin> CRLF This content type is used totransfer certificate or Certificate Revocation List (CRL) information.provide for some of the requests described in [6]. The information in the body part is entirely independent of anyparticular privacy enhanced message. (Note that the converse is not true: the validity of a privacy enhanced message cannot be determined without the proper certificates or current CRL information.)other body part. As such, theapplication/key-dataapplication/key-request content type is an independent body part. The<certchain> production contains one certificate chain. A certificate chain starts with a certificatecertification request, certificate-retrieval request andcontinues withcrl- retrieval request are provided for directly. If thecertificatescontent contains a Certification: field it requests certification ofsubsequent issuers. Each issuer certificate included must have issuedthepreceding certificate. For each issuer, a CRL may be supplied. A CRLself-signed certificate in thechain belongs tofield value. If theimmediately following issuer. Therefore, it potentiallycontent contains an Issuer: field it requests theimmediately preceding certificate. The <crlchain> production contains onecertificate revocation listchain. The CRLschain beginning with the issuer identified in the field value. If the content contains a Subject: field it requests either the public key of the subject or the certificate chainbeginbeginning with therequested CRL and continue withsubject identified in theCRLs of subsequent issuers.field value, or both. TheissuerSubject: and Issuer: fields each contain a value of type <id>, which is defined in Section 4.2. The crl-storage request is provided for by the application/key-data content type described in the next section. In eachCRLcase, the response ispresumed to have issued atransmitted in an application/key-data content type. When returning public keys, certificatefor the issuer of the preceding CRL. For each CRL, the issuer'schains, and certificatemayrevocation list chains, if there exists more than one, several application/key-data contents are to besupplied. A certificatereturned in thechain must belong to the issuer of the immediately preceding CRL.reply Crocker/Freed/Galvin/Murphy Expires:December 1994January 1995 [Page11]14] INTERNET DRAFT PEM and MIMEJuneJuly 1994 message, one for each. 7.2. application/key-data Content Type Definition Therelationship between a certificate and an immediately preceding CRLprincipal objective of this content type isthe same in both cases. In a <certchain> the crl's are optional. In a <crlchain> the certificates are optional. 7. Message Processing When a user composesto convey cryptographic keying material from an originator to amessage, itrecipient. However, no explicit provision is made for determining theresponsibilityauthenticity or accuracy of theuser agent to construct a valid MIME message.data being conveyed. In particular,Content-Type:when a public key andContent-Transfer-Encoding: headers should be used wherever they are appropriate. This allowsthereceiving user agentidentifier for its owner is conveyed, there is nothing tounambiguously interpret the message body and process it accordingly. Each block of content headers associated with eitherprevent anRFC822 <message> or with a MIME <body-part> represents a logical place where security enhancement can be requested. A security enhancement request associated with a particular <message>originator or<body-part> content is taken to apply toany interloper along theentire content; it is not possible to security-enhance only a portion of a body part. The mechanism used to communicate security enhancement requestspath from an originator tothe pre-submission processor described below is strictlyalocal implementation issue. However, the interface between the message composer and pre-submission processing MUST be trustworthy, since the message composer relies on pre-submission processing torecipient from substituting alternate values for eitherperformtherequested security enhancement operationpublic key orreturn an error. Regardless ofthemechanism chosen, great care shouldidentifier, thus setting up the recipient to potentially send sensitive information that may betakenintercepted and disclosed inappropriately. It is incumbent upon a recipient to verify the authenticity and accuracy of the data received prior tosafeguard against bothits use. The problem is addressed by thereleaseuse ofinformationcertificates, since a certification hierarchy is a well-defined mechanism thathas not receivedconveniently supports therequested typeautomatic verification ofsecurity enhancement as well as tampering withtheenhancement request itself. 7.1. Pre-Submission Algorithm The user agent first composesdata. Alternatively, the application/key-data body part could be digitally signed by the originator. In this way, if aMIME-compliant messagerecipient believes that correct originator's public key is available locally and if the recipient believes the originator would convey accurate data, thenapplies this algorithm: (1) Ifthecontent at this (initially top) level has NOT been selectedkey data received from the originator can be believed. NOTE: Insofar as a certificate represents a mechanism by which an issuer vouches forsecurity enhancement,theuser agent sees ifbinding between thecontent is either multipart or message. If so,name and public key itthen recursively applies this algorithm toembodies, theencapsulatedsigning of an application/key-data bodyparts; if not, it terminates processing for this content.part is a similar mechanism. (1) MIME type name: application (2)If theMIME subtype name: key-data (3) Required parameters: none (4) Optional parameters: none (5) Encoding considerations: quoted-printable is always sufficient. (6) Security Considerations: none The contentatof thislevel has been selected for security enhancement, then the content, including its headers, constitutes the object that is to be made availablebody part corresponds to thesecurity enhancement process. The headers at a minimum will include a Content-Typefollowing production. Crocker/Freed/Galvin/Murphy Expires:December 1994January 1995 [Page12]15] INTERNET DRAFT PEM and MIMEJuneJuly 1994header, either explicit<certdata> ::= <version> ( <keydata> / <certchain> / <crlchain> ) <version> ::= "Version:" "5" CRLF <keydata> ::= "Key:" <id> "," <nameid> CRLF <certchain> ::= <cert> *( [ <crl> ] <cert> ) <crlchain> ::= 1*( <crl> [ <cert> ] ) <cert> ::= "Certificate:" <encbin> CRLF <crl> ::= "CRL:" <encbin> CRLF This content type is used to transfer public keys, certificate chains, orimplicit.Certificate Revocation List (CRL) chains. Theobject will eventually be replaced withinformation in themultipart content thatbody part isproduced byentirely independent of any other body part. (Note that thesecurity enhancement operation. (3) The selected security enhancementconverse isperformed. This enhancement produces two data streams:not true: theenhanced object and a control stream comprisedvalidity of aset of headers as defined in the <pemsig> or <pemkeys> productions. (4) A newprotected body partis then constructed, ofcannot be determined without the proper public keys, certificates, or current CRL information.) As such, the application/key-data content typemultipart/signed or multipart/encrypted. The newis an independent bodypartpart. The <keydata> production containstwo body parts, whose content depends on the enhancement requested, which are constructed accordingexactly one public key. It is used tothe specifications in this document. (5) This multipart content replaces the original object. 7.2. Post-Delivery Algorithm When a user receives a message containingbind amultipart content, the user agent may transform the content back intopublic key with itsoriginalcorresponding name formprior to privacy-enhancement. This operation, the post-delivery algorithm,and key identifier. It isperformedrecommended that when responders are returning this information that the enclosing body part be digitally signed byreversingthesteps performed duringresponder in order to protect thepre-submission algorithm. Wheninformation. The <certchain> production contains one certificate chain. A certificate chain starts with a certificate and continues with theoriginal content is reconstituted, it may use octet values outsidecertificates of subsequent issuers. Each issuer certificate included must have issued theUS-ASCII repertoire andpreceding certificate. For each issuer, a CRL maycontain body parts without line breaks. Ifbe supplied. A CRL in theuser agent replaceschain belongs to the immediately following issuer. Therefore, it potentially contains the immediately preceding certificate. The <crlchain> production contains one certificate revocation list chain. The CRLs in the chain begin with themultipart contentrequested CRL and continue with theoriginal content, then it must select appropriate Content-Transfer- Encodings forCRLs of subsequent issuers. The issuer of eachbody part and add corresponding Content-Transfer- Encoding: headers. Upon successful completionCRL is presumed to have issued a certificate for the issuer of thepost-delivery algorithm forpreceding CRL. For eachcontent,CRL, thetype of enhancement that was in effect for that content mustissuer's certificate may becommunicated tosupplied. A certificate in theuser. The mechanism used to do this is a local implementation issue. As with requests for enhancementchain must belong to thepre-submission algorithm,issuer of thepathimmediately preceding CRL. The relationship betweenpost-delivery processinga certificate andactual display ofan immediately preceding CRL is themessage must besame in both <certchain> and <crlchain>. In atrusted one, lest<certchain> the CRLs are optional. In amessage be presented that purports to have undergone some form of enhancement it did not in fact receive.<crlchain> the certificates are optional. Crocker/Freed/Galvin/Murphy Expires: January 1995 [Page 16] INTERNET DRAFT PEM and MIME July 1994 8. Examples NOTE: To be included upon completion of implementation.Crocker/Freed/Galvin/Murphy Expires: December 1994 [Page 13] INTERNET DRAFT PEM and MIME June 19949. Observations The use of the pre-submission and post-delivery algorithms to combine PEM and MIME capabilities exhibits several properties: (1) It allows privacy-enhancement of an arbitrary content, not just the body of anRFC 822RFC822 message. (2) For a multipart or message content, it allows the user to specify different privacy enhancements to be applied to different components of the structure of the content. (3) It provides for messages containing several privacy enhanced contents, thereby removing the requirement for PEM software to be able to generate or interpret a single content which intermixes both unenhanced and enhanced components. The use of a MIME-capable user agent makes complex nesting of enhanced message body parts much easier. For example, the user can separately sign and encrypt a message. This motivates a complete separation of the confidentiality security service from the digital signature security service. That is, differentkeyskey pairs could be used for the different services and could be protected separately.In the asymmetric case, thisThis means an employee's company could be given access to the (private) decryption key but not the (private) signature key, thereby granting the company the ability to decrypt messages addressed to the employee in emergencies without also granting the company the ability to sign messages as the employee. The use of two private keys requires the ability to maintain multiple certificates for each user. 10. Summary of Changes to PEM Specification This document updates the message encryption and signature procedures defined by [3] and obsoletes the key certification and related services defined by [6]. The changes are enumerated below. (1) The PEM specification currently requires that encryption services be applied only to message bodies that have been signed. By providing for each of the services separately, they may be applied Crocker/Freed/Galvin/Murphy Expires: January 1995 [Page 17] INTERNET DRAFT PEM and MIME July 1994 recursively in any order according to the needs of the requesting application.Crocker/Freed/Galvin/Murphy Expires: December 1994 [Page 14] INTERNET DRAFT PEM and MIME June 1994(2) PEM implementations are currently restricted to processing only text-based electronic mail messages. In fact, the message text is required to be represented by the ASCII character set with "<CR><LF>" line delimiters. This restriction no longer applies. (3)With the removal of the text restriction it is not possible to specify a universal canonical form. However, canonicalization is required for the digital signature service, so the content of each body part must be transformed into a canonical form according to its type. (4)MIME includes transfer encoding operations to ensure the unmodified transfer of body parts, which obviates these services in PEM.(5)(4) PEM specifies a Proc-Type: header field to identify the type of processing that was performed on the message. This functionality is subsumed by the MIME Content-Type: headers. The Proc-Type: header also included a decimal number that was used to distinguish among incompatible encapsulated header field interpretations which may arise as changes are made to the PEM standard. This functionality is replaced by the Version: header specified in this document.(6)(5) PEM specifies a Content-Domain: header, the purpose of which is to describe the type of the content which is represented within a PEM message's encapsulated text. This functionality is subsumed by the MIME Content-Type: headers.(7)(6) The PEM specifications include a document that defines new types of PEM messages, specified by unique values used in the Proc-Type: header, to be used to request certificate and certificate revocation list information. This functionality is subsumed by two new content types specified in this document.(8)(7) The header fields having to do with certificates (Originator- Certificate: and Issuer-Certificate:) and CRLs (CRL:) are relegated for use only in the application/key-data and application/key- request content types and are no longer allowed in the header portion of a PEM signed or encrypted message.(9)(8) The grammar specified here explicitly separates the header fields that may appear for the encryption and signature security services. It is the intent of this document to specify a precise expression of the allowed header fields; there is no intent to reduce the functionality of combinations of encryption and signature security from those of [3]. Crocker/Freed/Galvin/Murphy Expires:December 1994January 1995 [Page15]18] INTERNET DRAFTPEM and MIME June 1994 from those of [3]. (10)PEM and MIME July 1994 (9) With the separation of the encryption and signature security services, there is no need for a MIC-Info: field in the headers associated with an encryptedmessage under asymmetric key management. (11)message. (10) In [3], when asymmetric key management is used, an Originator-ID field is required in order to identify the private key used to sign the MIC argument in the MIC-Info: field. Because no MIC-Info: field is associated with the encryption security service under asymmetric key managment, there is no requirement in that case to include an Originator-ID field. These changes represent a departure in mechanism, not in effect, from those specified in [3] and [6]. The following technical changes to [3] and [4] are also specified by this document. (1) The grammar specified here explicitly excludes symmetric key management. Currently, there are no generally available implementations of symmetric key management nor are there any known plans for implementing it. As a result, the IETF standards process will require this feature to be dropped when the documents are promoted to draft standard status from proposed standard status. (2) This document requires all data that is to be digitally signed to be represented in 7bit form. (3) This documentrelaxes the syntax of distinguished names. In particular, distinguished names are not constrained to conform tobroadens theX.500 Series of Recommendations. Insteadallowable name forms that users may use to identify their public keys. Users may use arbitrary strings and email addresses as their name. Further, users may distribute their public key directly in lieu of using certificates. In support of this change theOriginator-ID- ASymmetric:Originator-ID-ASymmetric: andRecipient-ID-ASymmetric:Recipient-ID- ASymmetric: fields are deprecated in favor of Originator-ID: and Recipient-ID: fields, respectively. 11. Collected Grammar The following is a summary of the grammar presented in this document. (1) Signature headers Crocker/Freed/Galvin/Murphy Expires:December 1994January 1995 [Page16]19] INTERNET DRAFT PEM and MIMEJuneJuly 1994 <pemsig> ::= <version>(1*<origasymflds>)( 1*<origasymflds> ) <version> ::= "Version:" "5" CRLF <origasymflds> ::= <origid> <micinfo> <origid> ::= "Originator-ID:" <id> CRLF (2) Encryption Headers <pemkeys> ::= <version> <dekinfo> 1*<recipasymflds> <version> ::= "Version:" "5" CRLF <recipasymflds> ::= <recipid> <asymkeyinfo> <recipid> ::= "Recipient-ID:" <id> CRLF <asymkeyinfo> ::= "Key-Info" ":" <ikalgid> "," <asymencdek> CRLF (3) Identifier Name Forms Crocker/Freed/Galvin/Murphy Expires: January 1995 [Page 20] INTERNET DRAFT PEM and MIME July 1994 <id> ::= <nameid> / <id-publickey> / <id-issuer> <nameid> ::= <id-email> / <id-string> / <id-dname> / <id-pgp> <id-email> ::= "EN" "," <keyid> "," <emailstr> CRLF <id-string> ::= "STR" "," <keyid> "," <string> CRLF <id-dname> ::= "DN" "," <keyid> "," <dnamestr> CRLF <id-pgp> ::= "PGP2" ",0x" <pgp-keyid> "," <string> CRLF <id-publickey> ::= "PK" "," <publickey> [ "," <nameid> ] CRLF <id-issuer> ::= "IS" "," <dnamestr> "," <serial> CRLF <keyid> ::= <encbin> ; a printably encoded non-null sequence of octets <emailstr> ::= <addr-spec> / <route-addr> ; an electronic mail address as defined by ; these two tokens from RFC822 <string> ::= ; a non-null sequence of us-ascii characters <dnamestr> ::= <encbin> ; a printably encoded, ASN.1 encoded ; distinguished name <pgp-keyid> ::= ; a sequence from the following alphabet: {0-9, A-F} ; which is either exactly six or eight characters long <publickey> ::= <encbin> ; a printably encoded, ASN.1 encoded ; subjectPublicKeyInfo <serial> ::= 1*<hexchar> ; hex dump of the serial number of a certificate (4) Request Headers (certificate, certification, etc.) Crocker/Freed/Galvin/Murphy Expires: January 1995 [Page 21] INTERNET DRAFT PEM and MIME July 1994 <request> ::= <version> ( <subject> / <issuer> / <certification> ) <version> ::= "Version:" "5" CRLF <subject> ::= "Subject:" <id> CRLF <issuer> ::= "Issuer:" <id> CRLF <certification> ::= "Certification:" <encbin> CRLF(4) Certificate(5) Data Headers (certificate, certification revocation list) <certdata> ::= <certchain> / <crlchain> <certchain> ::= <version> <cert> *( [ <crl> ] <cert> ) <crlchain> ::= <version> 1*( <crl> [ <cert> ] ) <cert> ::= "Certificate:" <encbin> CRLF <crl> ::= "CRL:" <encbin> CRLF <version> ::= "Version:" "5" CRLFCrocker/Freed/Galvin/Murphy Expires: December 1994 [Page 17] INTERNET DRAFT PEM and MIME June 199412. Security Considerations NOTE: to be done 13. Acknowledgements David H. Crocker suggested the use of a multipart structure for MIME-PEM interaction. 14. References [1] David H. Crocker. Standard for the Format of ARPA Internet Text Messages. RFC 822, University of Delaware, August 1982. [2] Nathaniel Borenstein and Ned Freed. MIME (Multipurpose Internet Mail Extension) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies. RFC 1521, Bellcore and Innosoft, September 1993. Obsoletes RFC 1341. [3] John Linn. Privacy Enhancement for Internet Electronic Mail: Part I: Message Encryption and Authentication Procedures. RFC 1421, February 1993. Obsoletes RFC 1113. [4] Steve Kent. Privacy Enhancement for Internet Electronic Mail: Part II: Certificate-Based Key Management. RFC 1422, BBN Communications, February 1993. Crocker/Freed/Galvin/Murphy Expires: January 1995 [Page 22] INTERNET DRAFT PEM and MIME July 1994 [5] David M. Balenson. Privacy Enhancement for Internet Electronic Mail: Part III: Algorithms, Modes, and Identifiers. RFC 1423, Trusted Information Systems, February 1993. [6] Burton S. Kaliski. Privacy Enhancement for Internet Electronic Mail: Part IV: Key Certification and Related Services. RFC 1424, RSA Laboratories, February 1993. [7]David Crocker. Multipart/Family Content Types. Work in progress. [8]JamesGalvin.Galvin, Sandy Murphy, Steve Crocker, and Ned Freed. Security Multiparts for MIME: Multipart/Signed and Multipart/Encrypted.Work in progress. [9] Jon Postel. Simple Mail Transfer Protocol.RFC821, ISI, August 1982. Crocker/Freed/Galvin/Murphy Expires: December 1994 [Page 18] INTERNET DRAFT PEMXXXX, Trusted Information Systems andMIME June 1994Innosoft, XXXX 1994. 15. Authors' Addresses Steve Crocker email: crocker@tis.com James M. Galvin email: galvin@tis.com Sandra Murphy email: murphy@tis.com Trusted Information Systems 3060 Washington Road Glenwood, MD 21738 Tel: +1 301 854 6889 FAX: +1 301 854 5363email: crocker@tis.comNed Freed Innosoft International, Inc. 250 West First Street, Suite 240 Claremont, CA 91711 Tel: +1 909 624 7907 FAX: +1 909 621 5319 email: ned@innosoft.comJames M. Galvin Trusted Information Systems 3060 Washington Road Glenwood, MD 21738 Tel: +1 301 854 6889 FAX: +1 301 854 5363 email: galvin@tis.com Sandra Murphy Trusted Information Systems 3060 Washington Road Glenwood, MD 21738 Tel: +1 301 854 6889 FAX: +1 301 854 5363 email: murphy@tis.comCrocker/Freed/Galvin/Murphy Expires:December 1994January 1995 [Page19]23] INTERNET DRAFT PEM and MIMEJuneJuly 1994 16. Appendix: Imported Grammar The following productions are taken from [3]. The grammar presented in [3] remains the authoritative source for these productions; they are repeated here for the convenience of the reader. <dekinfo> ::= "DEK-Info" ":" <dekalgid> [ "," <dekparameters> ] CRLF <micinfo> ::= "MIC-Info" ":" <micalgid> "," <ikalgid> "," <asymsignmic> CRLF <encbin> ::= 1*<encbingrp> <encbingrp> ::= 4*4<encbinchar> <encbinchar> ::= ALPHA / DIGIT / "+" / "/" / "=" The following productions are taken from [5]. The grammar presented in [5] remains the authoritative source for these productions; they are repeated here for the convenience of the reader. <dekalgid> ::= "DES-CBC" <ikalgid> ::= "DES-EDE" / "DES-ECB" / "RSA" <micalgid> ::= "RSA-MD2" / "RSA-MD5" <dekparameters> ::= <DESCBCparameters> <DESCBCparameters> ::= <IV> <IV> ::= <hexchar16> <asymsignmic> ::= <RSAsignmic> <RSAsignmic> ::= <encbin> <asymencdek> ::= <RSAencdek> <RSAencdek> ::= <encbin> <hexchar16> ::= 16*16<hexchar> <hexchar> ::= DIGIT / "A" / "B" / "C" / "D" / "E" / "F" ; no lower case The following productions are taken from [1]. The grammar presented in [1] remains the authorative source for these productions; they are repeated here for the convenience of the reader. Crocker/Freed/Galvin/Murphy Expires:DecemberJanuary 1995 [Page 24] INTERNET DRAFT PEM and MIME July 1994 <addr-spec> ::= <local-part> "@" <domain> ; global address <local-part> ::= <word> *( "." <word> ) ; uninterpreted ; case-preserved <domain> ::= <sub-domain> *( "." <sub-domain> ) <sub-domain> ::= <domain-ref> / <domain-literal> <domain-ref> ::= <atom> ; symbolic reference <route-addr> ::= "<" [ <route> ] <addr-spec> ">" <route> ::= 1# ( "@" <domain> ) ":" ; path-relative <word> ::= <atom> / <quoted-string> <quoted-string> ::= """ *( <qtext> / <quoted-pair> ) """ <qtext> ::= (any <CHAR> excepting """, " and including <linear-white-space>) <quoted-pair> ::= " <linear-white-space> ::= 1*( [ CRLF ] <LWSP-char> ) ; semantics = SPACE ; CRLF => folding <LWSP-char> ::= SPACE / HTAB ; semantics = SPACE <atom> ::= 1*(any <CHAR> except <specials>, SPACE and <CTL>s) <CHAR> ::= <any ASCII character> <CTL> ::= <any ASCII control character and DEL> <specials> ::= "(" / ")" / "<" / ">" / "@" ; Must be in quoted- / "," / ";" / ":" / " / "." / "[" / "]" ; within a word. Crocker/Freed/Galvin/Murphy Expires: January 1995 [Page20]25] INTERNET DRAFT PEM and MIMEJuneJuly 1994 Table of Contents 1 Status of this Memo ............................................. 1 2 Abstract ........................................................ 1 3 Introduction .................................................... 2 4 Name Forms and Identifiers ...................................... 3 4.1 Name Forms .................................................... 4 4.1.1 Email Addresses ............................................. 4 4.1.2 Arbitrary Strings ........................................... 5 4.1.3 Distinguished Names ......................................... 5 4.2 Identifiers ................................................... 5 4.2.1 Email Address ............................................... 6 4.2.2 Arbitrary String ............................................ 6 4.2.3 Distinguished Name .......................................... 7 4.2.4 PGP Public Key .............................................. 7 4.2.5 Public Key .................................................. 7 4.2.6 Issuer Name and Serial Number ............................... 8 5 Applying PEM Security Services to MIME Body Parts ...............2 3.18 5.1 PEM Processing Steps ..........................................3 3.1.1 Step 1: Local Form .......................................... 3 3.1.2 Step 2: Canonical Form ...................................... 3 3.1.3 Step 3: Security Form ....................................... 5 3.28 5.2 Use of multipart/signed Content Type ..........................5 3.310 5.3 Use of multipart/encrypted Content Type ....................... 11 64Removing PEM Security Services from PEM Body Parts .............. 12 75 Definition of New Name Forms .................................... 7 6Definition of New Content Types .................................9 6.113 7.1 application/key-request Content Type Definition ...............9 6.213 7.2 application/key-data Content Type Definition ..................10 7 Message Processing .............................................. 12 7.1 Pre-Submission Algorithm ...................................... 12 7.2 Post-Delivery Algorithm ....................................... 1315 8 Examples ........................................................1317 9 Observations ....................................................1417 10 Summary of Changes to PEM Specification ........................1417 11 Collected Grammar ..............................................1619 12 Security Considerations ........................................1822 13 Acknowledgements ...............................................1822 14 References .....................................................1822 15 Authors' Addresses .............................................1923 16 Appendix: Imported Grammar .....................................2024 Crocker/Freed/Galvin/Murphy Expires:December 1994January 1995 [Page21]26] ----