diff options
Diffstat (limited to 'doc/rfc/rfc989.txt')
-rw-r--r-- | doc/rfc/rfc989.txt | 1357 |
1 files changed, 1357 insertions, 0 deletions
diff --git a/doc/rfc/rfc989.txt b/doc/rfc/rfc989.txt new file mode 100644 index 0000000..b5ce2eb --- /dev/null +++ b/doc/rfc/rfc989.txt @@ -0,0 +1,1357 @@ + + + +Network Working Group John Linn (BBNCC) +Request for Comments: 989 IAB Privacy Task Force + February 1987 + + + Privacy Enhancement for Internet Electronic Mail: + Part I: Message Encipherment and Authentication Procedures + + +STATUS OF THIS MEMO + + This RFC suggests a proposed protocol for the Internet community and + requests discussion and suggestions for improvements. Distribution + of this memo is unlimited. + +ACKNOWLEDGMENT + + This RFC is the outgrowth of a series of IAB Privacy Task Force + meetings and of internal working papers distributed for those + meetings. I would like to thank the following Privacy Task Force + members and meeting guests for their comments and contributions at + the meetings which led to the preparation of this RFC: David + Balenson, Matt Bishop, Danny Cohen, Tom Daniel, Charles Fox, Morrie + Gasser, Steve Kent (chairman), John Laws, Steve Lipner, Dan Nessett, + Mike Padlipsky, Rob Shirey, Miles Smid, Steve Walker, and Steve + Wilbur. + +1 Executive Summary + + This RFC defines message encipherment and authentication procedures, + as the initial phase of an effort to provide privacy enhancement + services for electronic mail transfer in the Internet. Detailed key + management mechanisms to support these procedures will be defined in + a subsequent RFC. As a goal of this initial phase, it is intended + that the procedures defined here be compatible with a wide range of + key management approaches, including both conventional (symmetric) + and public-key (asymmetric) approaches for encryption of data + encrypting keys. Use of conventional cryptography for message text + encryption and/or authentication is anticipated. + + Privacy enhancement services (confidentiality, authentication, and + message integrity assurance) are offered through the use of end-to- + end cryptography between originator and recipient User Agent + processes, with no special processing requirements imposed on the + Message Transfer System at endpoints or at intermediate relay sites. + This approach allows privacy enhancement facilities to be + incorporated on a site-by-site or user-by-user basis without impact + on other Internet entities. Interoperability among heterogeneous + components and mail transport facilities is supported. + + + + + +Linn, Privacy Task Force [Page 1] + +RFC 989 February 1987 + + +2 Terminology + + For descriptive purposes, this RFC uses some terms defined in the OSI + X.400 Message Handling System Model. This section replicates a + portion of X.400's Section 2.2.1, "Description of the MHS Model: + Overview" in order to make the terminology clear to readers who may + not be familiar with the OSI MHS Model. + + In the [MHS] model, a user is a person or a computer application. A + user is referred to as either an originator (when sending a message) + or a recipient (when receiving one). MH Service elements define the + set of message types and the capabilities that enable an originator + to transfer messages of those types to one or more recipients. + + An originator prepares messages with the assistance of his User + Agent. A User Agent (UA) is an application process that interacts + with the Message Transfer System (MTS) to submit messages. The MTS + delivers to one or more recipient UAs the messages submitted to it. + Functions performed solely by the UA and not standardized as part of + the MH Service elements are called local UA functions. + + The MTS is composed of a number of Message Transfer Agents (MTAs). + Operating together, the MTAs relay messages and deliver them to the + intended recipient UAs, which then make the messages available to the + intended recipients. + + The collection of UAs and MTAs is called the Message Handling System + (MHS). The MHS and all of its users are collectively referred to as + the Message Handling Environment. + +3 Services, Constraints, and Implications + + This RFC's goal is to define mechanisms to enhance privacy for + electronic mail transferred in the Internet. The facilities + discussed in this RFC provide privacy enhancement services on an + end-to-end basis between sender and recipient UAs. No privacy + enhancements are offered for message fields which are added or + transformed by intermediate relay points. Two distinct privacy + enhancement service options are supported: + + 1. an option providing sender authentication and integrity + verification + + 2. an option providing sender authentication and integrity + verification in addition to confidentiality service through + encryption + + No facility for confidentiality service in the absence of + authentication is provided. Encryption and authentication facilities + may be applied selectively to portions of a message's contents; this + allows less sensitive portions of messages (e.g., descriptive fields) + + + +Linn, Privacy Task Force [Page 2] + +RFC 989 February 1987 + + + to be processed by a recipient's delegate in the absence of the + recipient's personal cryptographic keys. + + In keeping with the Internet's heterogeneous constituencies and usage + modes, the measures defined here are applicable to a broad range of + Internet hosts and usage paradigms. In particular, it is worth + noting the following attributes: + + + 1. The mechanisms defined in this RFC are not restricted to a + particular host or operating system, but rather allow + interoperability among a broad range of systems. All + privacy enhancements are implemented at the application + layer, and are not dependent on any privacy features at + lower protocol layers. + + 2. The defined mechanisms offer compatibility with non- + enhanced Internet components. Privacy enhancements will be + implemented in an end-to-end fashion which does not impact + mail processing by intermediate relay hosts which do not + incorporate privacy enhancement facilities. It is + necessary, however, for a message's sender to be cognizant + of whether a message's intended recipient implements + privacy enhancements, in order that encoding and possible + encipherment will not be performed on a message whose + destination is not equipped to perform corresponding + inverse transformations. + + 3. The defined mechanisms offer compatibility with a range of + mail transport facilities (MTAs). Within the Internet, + electronic mail transport is effected by a variety of SMTP + implementations. Certain sites, accessible via SMTP, + forward mail into other mail processing environments (e.g., + USENET, CSNET, BITNET). The privacy enhancements must be + able to operate across the SMTP realm; it is desirable that + they also be compatible with protection of electronic mail + sent between the SMTP environment and other connected + environments. + + 4. The defined mechanisms offer compatibility with a broad + range of electronic mail user agents (UAs). A large + variety of electronic mail user agent programs, with a + corresponding broad range of user interface paradigms, is + used in the Internet. In order that an electronic mail + privacy enhancement be available to the broadest possible + user community, it is desirable that the selected mechanism + be usable with the widest possible variety of existing UA + programs. For purposes of pilot implementation, it is + desirable that privacy enhancement processing be + incorporable into a separate program, applicable to a range + of UAs, rather than requiring internal modifications to + + + +Linn, Privacy Task Force [Page 3] + +RFC 989 February 1987 + + + each UA with which enhanced privacy services are to be + provided. + + 5. The defined mechanisms allow electronic mail privacy + enhancement processing to be performed on personal + computers (PCs) separate from the systems on which UA + functions are implemented. Given the expanding use of PCs + and the limited degree of trust which can be placed in UA + implementations on many multi-user systems, this attribute + can allow many users to process privacy-enhanced mail with + a higher assurance level than a strictly UA-based approach + would allow. + + 6. The defined mechanisms support privacy protection of + electronic mail addressed to mailing lists. + + In order to achieve applicability to the broadest possible range of + Internet hosts and mail systems, and to facilitate pilot + implementation and testing without the need for prior modifications + throughout the Internet, three basic restrictions are imposed on the + set of measures to be considered in this RFC: + + + 1. Measures will be restricted to implementation at + endpoints and will be amenable to integration at the user + agent (UA) level or above, rather than necessitating + integration into the message transport system (e.g., SMTP + servers). + + 2. The set of supported measures enhances rather than + restricts user capabilities. Trusted implementations, + incorporating integrity features protecting software from + subversion by local users, cannot be assumed in general. + In the absence of such features, it appears more feasible + to provide facilities which enhance user services (e.g., + by protecting and authenticating inter-user traffic) than + to enforce restrictions (e.g., inter-user access control) + on user actions. + + 3. The set of supported measures focuses on a set of + functional capabilities selected to provide significant + and tangible benefits to a broad user community. By + concentrating on the most critical set of services, we + aim to maximize the added privacy value that can be + provided with a modest level of implementation effort. + + As a result of these restrictions, the following facilities can be + provided: + + -- disclosure protection, + + + + +Linn, Privacy Task Force [Page 4] + +RFC 989 February 1987 + + + -- sender authenticity, and + + -- message integrity measures, + + but the following privacy-relevant concerns are not addressed: + + -- access control, + + -- traffic flow security, + + -- address list accuracy, + + -- routing control, + + -- issues relating to the serial reuse of PCs by multiple users, + + -- assurance of message receipt and non-deniability of receipt, and + + -- automatic association of acknowledgments with the messages to + which they refer + + An important goal is that privacy enhancement mechanisms impose a + minimum of burden on the users they serve. In particular, this goal + suggests eventual automation of the key management mechanisms + supporting message encryption and authentication. In order to + facilitate deployment and testing of pilot privacy enhancement + implementations in the near term, however, compatibility with out- + of-band (e.g., manual) key distribution must also be supported. + + A message's sender will determine whether privacy enhancements are to + be performed on a particular message. This will necessitate + mechanisms by which a sender can determine whether particular + recipients are equipped to process privacy-enhanced mail. In a + general architecture, these mechanisms will be based on server + queries; thus, the query function could be integrated into a UA to + avoid imposing burdens or inconvenience on electronic mail users. + +4 Processing of Messages + +4.1 Message Processing Overview + + This subsection provides a high-level overview of the components and + processing steps involved in electronic mail privacy enhancement + processing. Subsequent subsections will define the procedures in + more detail. + + A two-level keying hierarchy is used to support privacy-enhanced + message transmission: + + + 1. Data Encrypting Keys (DEKs) are used for encryption of message + + + +Linn, Privacy Task Force [Page 5] + +RFC 989 February 1987 + + + text and for computation of message authentication codes + (MACs). DEKs are generated individually for each transmitted + message; no predistribution of DEKs is needed to support + privacy-enhanced message transmission. + + 2. Interchange Keys (IKs) are used to encrypt DEKs for + transmission. An IK may either be a single symmetric + cryptographic key or, where asymmetric (public-key) + cryptography is used for DEK encryption, the composition of a + public component used by an originator and a secret component + used by a recipient. Ordinarily, the same IK will be used for + all messages sent between a given originator-recipient pair + over a period of time. Each transmitted message includes a + representation of the DEK(s) used for message encryption + and/or authentication, encrypted under an individual IK per + named recipient. This representation is accompanied by an + identifier (IK ID) to enable the recipient to determine which + IK was used, and so to decrypt the representation yielding the + DEK required for message text decryption and/or MAC + verification. + + An encoding procedure is employed in order to represent encrypted + message text in a universally transmissible form and to enable + messages encrypted on one type of system to be decrypted on a + different type. Four phases are involved in this process. A + plaintext message is accepted in local form, using the host's native + character set and line representation. The local form is converted + to a canonical message text representation, defined as equivalent to + the inter-SMTP representation of message text. The canonical + representation is padded to an integral multiple of eight octets, as + required by the encryption algorithm. MAC computation is performed, + and (if disclosure protection is required), the padded canonical + representation is encrypted. The output of this step is encoded into + a printable form. The printable form is composed of a restricted + character set which is chosen to be universally representable across + sites, and which will not be disrupted by processing within and + between MTS entities. + + The output of the encoding procedure is combined with a set of header + fields (to be defined in Section 4.8) carrying cryptographic control + information. The result is passed to the electronic mail system to + be encapsulated as the text portion of a transmitted message. + + When a privacy-enhanced message is received, the cryptographic + control fields within its text portion provide the information + required for the authorized recipient to perform MAC verification and + decryption on the received message text. First, the printable + encoding is converted to a bitstring. If the transmitted message was + encrypted, it is decrypted into the canonical representation. If the + message was not encrypted, decoding from the printable form produces + the canonical representation directly. The MAC is verified, and the + + + +Linn, Privacy Task Force [Page 6] + +RFC 989 February 1987 + + + canonical representation is converted to the recipient's local form, + which need not be the same as the sender's local form. + +4.2 Encryption Algorithms and Modes + + For purposes of this RFC, the Block Cipher Algorithm DEA-1, defined + in ISO draft international standard DIS 8227 [1] shall be used for + encryption of message text and for computation of authentication + codes on messages. The DEA-1 is equivalent to the Data Encryption + Standard (DES), as defined in FIPS PUB 46 [2]. When used for these + purposes, the DEA-1 shall be used in the Cipher Block Chaining (CBC) + mode, as defined in ISO DIS 8372 [3]. The CBC mode definition in DIS + 8372 is equivalent to that provided in FIPS PUB 81 [4]. A unique + initializing vector (IV) will be generated for and transmitted with + each encrypted electronic mail message. + + An algorithm other than DEA-1 may be employed, provided that it + satisfies the following requirements: + + 1. it must be a 64-bit block cipher, enciphering and deciphering + in 8 octet blocks + + 2. it is usable in the ECB and CBC modes defined in DIS8372 + + 3. it is able to be keyed using the procedures and parameters + defined in this RFC + + 4. it is appropriate for MAC computation + + 5. cryptographic key field lengths are limited to 16 octets + in length + + Certain operations require that one key be encrypted under another + key (interchange key) for purposes of transmission. For purposes of + this RFC, such encryption will be performed using DEA-1 in Electronic + Codebook (ECB) mode. An optional facility is available to an + interchange key provider to indicate that an associated key is to be + used for encryption in another mode (e.g., the Encrypt-Decrypt- + Encrypt (EDE) mode used for key encryption and decryption with pairs + of 64-bit keys, as described [5] by ASC X3T1). + + Future support of public key algorithms for key encryption is under + consideration, and it is intended that the procedures defined in this + RFC be appropriate to allow such usage. Support of key encryption + modes other than ECB is optional for implementations, however. + Therefore, in support of universal interoperability, interchange key + providers should not specify other modes in the absence of a priori + information indicating that recipients are equipped to perform key + encryption in other modes. + + + + + +Linn, Privacy Task Force [Page 7] + +RFC 989 February 1987 + + +4.3 Canonical Encoding + + Any encryption scheme must be compatible with the transparency + constraints of its underlying electronic mail facilities. These + constraints are generally established based on expected user + requirements and on the characteristics of anticipated endpoint + transport facilities. SMTP, designed primarily for interpersonal + messages and anticipating systems and transport media which may be + restricted to a 7-bit character set, can transmit any 7-bit + characters (but not arbitrary 8-bit binary data) in message text. + + SMTP introduces other transparency constraints related to line + lengths and message delimiters. Message text may not contain the + string "<CR><LF>.<CR><LF>" in sequence before the end of a message, + and must contain the string "<CR><LF>" at least every 1000 + characters. Another important SMTP transparency issue must be noted. + Although SMTP specifies a standard representation for line delimiters + (ASCII <CR><LF>), numerous systems use a different native + representation to delimit lines. For example, the <CR><LF> sequences + delimiting lines in mail inbound to UNIX(tm) systems are transformed + to single <LF>s as mail is written into local mailbox files. Lines + in mail incoming to record-oriented systems (such as VAX VMS) may be + converted to appropriate records by the destination SMTP [6] server. + As a result, if the encryption process generated <CR>s or <LF>s, + those characters might not be accessible to a recipient UA program at + a destination using different line delimiting conventions. It is + also possible that conversion between tabs and spaces may be + performed in the course of mapping between inter-SMTP and local + format; this is a matter of local option. If such transformations + changed the form of transmitted ciphertext, decryption would fail to + regenerate the transmitted plaintext, and a transmitted MAC would + fail to compare with that computed at the destination. + + The conversion performed by an SMTP server at a system with EBCDIC as + a native character set has even more severe impact, since the + conversion from EBCDIC into ASCII is an information-losing + transformation. In principle, the transformation function mapping + between inter-SMTP canonical ASCII message representation and local + format could be moved from the SMTP server up to the UA, given a + means to direct that the SMTP server should no longer perform that + transformation. This approach has the disadvantage that it would + imply internal file (e.g., mailbox) formats which would be + incompatible with the systems on which they reside, an untenable + prospect. Further, it would require modification to SMTP servers, as + mail would be passed to SMTP in a different representation than it is + passed at present. + + Our approach to this problem selects a canonical character set, + uniformly representable across privacy-enhanced UAs regardless of + their systems' native character sets, to transport encrypted mail + text (but not electronic mail transport headers!) between endpoints. + + + +Linn, Privacy Task Force [Page 8] + +RFC 989 February 1987 + + + In this approach, an outbound privacy-enhanced message is transformed + between four forms, in sequence: + + + 1. (Local_Form) The message text is created (e.g., via an editor) + in the system's native character set, with lines delimited in + accordance with local convention. + + 2. (Canonicalize) The message text is converted to the universal + canonical form, equivalent to the inter-SMTP representation as + defined in RFC822 [7] (ASCII character set, <CR><LF> line + delimiters). (The processing required to perform this + conversion is relatively small, at least on systems whose + native character set is ASCII.) + + 3. (Encipher/Authenticate) A padded version of the canonical + plaintext representation is created by appending zero-valued + octets to the end of the representation until the length is an + integral multiple of 8 octets, as is required to perform + encryption in the DEA-1 CBC mode. No padding is applied if + the canonical plaintext representation's length is already a + multiple of 8 octets. This padded representation is used as + the input to the encryption function and to the MAC + computation function. + + 4. (Encode to Printable Form) The bits resulting from the + encryption operation are encoded into characters which are + universally representable at all sites, though not necessarily + with the same bit patterns (e.g., although the character "E" + is represented in an ASCII-based system as hexadecimal 45 and + as hexadecimal C5 in an EBCDIC-based system, the local + significance of the two representations is equivalent). Use + of a 64-character subset of International Alphabet IA5 is + proposed, enabling 6 bits to be represented per printable + character. (The proposed subset of characters is represented + identically in IA5 and ASCII.) Two additional characters, "=" + and "*", are used to signify special processing functions. + The encoding function's output is delimited into text lines + (using local conventions), with each line containing 64 + printable characters. The encoding process is performed as + follows, transforming strings of 3 arbitrary (8-bit) + characters to strings of 4 encoded characters: + + 4a. Proceeding from left to right across the input characters + (considered as a contiguous bitstring), each group of 6 + bits is used as an index into an array of 64 printable + characters; the character referenced by the index is + placed in the output string. These characters, + identified in Table 1, are selected so as to be + universally representable, and the set excludes + characters with particular significance to SMTP e.g., + + + +Linn, Privacy Task Force [Page 9] + +RFC 989 February 1987 + + + ".", "<CR>", "<LF>"). + + 4b. If fewer than 3 input characters are available in a final + quantum, zero bits are added (on the right) to form an + integral number of 6-bit groups. Output character + positions which are not required to represent actual + input data are set to a 65th reserved, universally + representable character ("="). Use of a reserved + character for padding allows compensatory processing to + be performed by a recipient, allowing the decoded message + text's length to be precisely the same as the input + message's length. A final 3-octet input quantum will be + represented as a 4 octet encoding with no terminal "=", a + 2-octet input quantum will be represented as 3 octets + followed by one terminal "=", and a 1-octet input quantum + will be represented as 2 octets followed by two + occurrences of "=". + + A sender may exclude one or more portions of a message from + encryption/authentication processing. Explicit action is required to + exclude a portion of a message from such processing; by default, + encryption/authentication is applied to the entirety of message text. + The user-level delimiter which specifies such exclusion is a local + matter, and hence may vary between sender and recipient, but all + systems should provide a means for unambiguous identification of + areas excluded from encryption/authentication processing. An + excluded area is represented in the inter-SMTP transmission form + (universal across communicating systems) by bracketing with the + reserved delimiter "*". Cryptographic state is preserved + transparently across an excluded area and continued after the end of + the excluded area. A printable encoding quantum (per step 4b) is + completed before the delimiter "*" is output to initiate or terminate + the representation of an excluded block. Note that the + canonicalizing transformation (step 2 above) and the encoding to + printable form (step 4 above) are applied to all portions of message + text, even those excluded from encryption and authentication. + + In summary, the outbound message is subjected to the following + composition of transformations: + + Transmit_Form = Encode(Encipher(Canonicalize(Local_Form))) + + The inverse transformations are performed, in reverse order, to + process inbound privacy-enhanced mail: + + Local_Form = DeCanonicalize(Decipher(Decode(Transmit_Form))) + + Note that the local form and the functions to transform messages to + and from canonical form may vary between the sender and recipient + systems without loss of information. + + + + +Linn, Privacy Task Force [Page 10] + +RFC 989 February 1987 + + + Value Encoding Value Encoding Value Encoding Value Encoding + 0 A 17 R 34 i 51 z + 1 B 18 S 35 j 52 0 + 2 C 19 T 36 k 53 1 + 3 D 20 U 37 l 54 2 + 4 E 21 V 38 m 55 3 + 5 F 22 W 39 n 56 4 + 6 G 23 X 40 o 57 5 + 7 H 24 Y 41 p 58 6 + 8 I 25 Z 42 q 59 7 + 9 J 26 a 43 r 60 8 + 10 K 27 b 44 s 61 9 + 11 L 28 c 45 t 62 + + 12 M 29 d 46 u 63 / + 13 N 30 e 47 v + 14 O 31 f 48 w (pad) = + 15 P 32 g 49 x + 16 Q 33 h 50 y (1) * + + (1) The character "*" is used to delimit portions of an + encoded message to which encryption/authentication + processing has not been applied. + + Printable Encoding Characters + Table 1 + +4.4 Encapsulation Mechanism + + Encapsulation of privacy-enhanced messages within an enclosing layer + of headers interpreted by the electronic mail transport system offers + a number of advantages in comparison to a flat approach in which + certain fields within a single header are encrypted and/or carry + cryptographic control information. Encapsulation provides generality + and segregates fields with user-to-user significance from those + transformed in transit. As far as the MTS is concerned, information + incorporated into cryptographic authentication or encryption + processing will reside in a message's text portion, not its header + portion. + + The encapsulation mechanism to be used for privacy-enhanced mail is + derived from that described in RFC934 [8] which is, in turn, based on + precedents in the processing of message digests in the Internet + community. To prepare a user message for encrypted or authenticated + transmission, it will be transformed into the representation shown in + Figure 1. Note that, while encryption and/or authentication + processing of transmitted mail may depend on information contained in + the enclosing header (e.g., "To:"), all fields inserted in the course + of encryption/authentication processing are placed in the + encapsulated header. This facilitates compatibility with mail + handling programs which accept only text, not header fields, from + input files or from other programs. Further, privacy enhancement + + + +Linn, Privacy Task Force [Page 11] + +RFC 989 February 1987 + + + processing can be applied recursively. + + Sensitive data should be protected by incorporating the data within + the encapsulated text rather than by applying measures selectively to + fields in the enclosing header. Examples of potentially sensitive + header information may include fields such as "Subject:", with + contents which are significant on an end-to-end, inter-user basis. + The (possibly empty) set of headers to which protection is to be + applied is a user option. If an authenticated version of header + information is desired, that data can be replicated within the + encapsulated text portion in addition to its inclusion in the + enclosing header. If a user wishes disclosure protection for header + fields, they must occur only in the encapsulated text and not in the + enclosing or encapsulated header. If disclosure protection is + desired for the "Subject:" field, it is recommended that the + enclosing header contain a "Subject:" field indicating that + "Encrypted Mail Follows". + + A specific point regarding the integration of privacy-enhanced mail + facilities with the message encapsulation mechanism is worthy of + note. The subset of IA5 selected for transmission encoding + intentionally excludes the character "-", so encapsulated text can be + distinguished unambiguously from a message's closing encapsulation + boundary (Post-EB) without recourse to character stuffing. + +4.5 Processing for Authentication Without Confidentiality + + When a message is to be authenticated without confidentiality + service, a DEK is generated [9] for use in MAC computation, and a MAC + is computed using that DEK. For each individually identified + recipient, an IK is selected and identified with an "X-IK-ID:" field. + Each "X-IK-ID:" field is followed by an "X-Key-Info:" field which + transfers the key under which MAC computation was performed, + encrypted under the IK identified by the preceding "X-IK-ID:" field, + along with a representation of the MAC encrypted under the same IK. + The encapsulated text portion following the encapsulated header is + canonically encoded, and coded into printable characters for + transmission, but not encrypted. + + + + + + + + + + + + + + + + +Linn, Privacy Task Force [Page 12] + +RFC 989 February 1987 + + + Enclosing Header Portion + + (Contains header fields per RFC-822) + + Blank Line + + (Separates Enclosing Header from Encapsulated Message) + + Encapsulated Message + + Pre-Encapsulation Boundary (Pre-EB) + + -----PRIVACY-ENHANCED MESSAGE BOUNDARY----- + + Encapsulated Header Portion + + (Contains encryption control fields inserted in plaintext. + Examples include "X-IV:", "X-IK-ID:", "X-Key-Info:", + and "X-Pad-Count:". Note that, although these control + fields have line-oriented representations similar to + RFC-822 header fields, the set of fields valid in this + context is disjoint from those used in RFC-822 processing.) + + Blank Line + + (Separates Encapsulated Header from subsequent encoded + Encapsulated Text Portion) + + Encapsulated Text Portion + + (Contains message data encoded as specified in Section 4.3; + may incorporate protected copies of "Subject:", etc.) + + Post-Encapsulation Boundary (Post-EB) + + -----PRIVACY-ENHANCED MESSAGE BOUNDARY----- + + Message Encapsulation + Figure 1 + +4.6 Processing for Authentication and Confidentiality + + When a message is to be authenticated with confidentiality service, a + DEK is generated for use in MAC computation and a variant of the DEK + is formed for use in message encryption. For each individually + identified recipient, an IK is selected and identified with an "X- + IK-ID:" field. Each "X-IK-ID:" field is followed by an "X-Key-Info:" + field, which transfers the DEK and computed MAC, each encrypted under + the IK identified in the preceding "X-IK-ID:" field. The + encapsulated text portion following the encapsulated header is + canonically encoded, encrypted, and coded into printable characters + + + +Linn, Privacy Task Force [Page 13] + +RFC 989 February 1987 + + + for transmission. + +4.7 Mail for Mailing Lists + + When mail is addressed to mailing lists, two different methods of + processing can be applicable: the IK-per-list method and the IK-per- + recipient method. The choice depends on the information available to + the sender and on the sender's preference. + + If a message's sender addresses a message to a list name or alias, + use of an IK associated with that name or alias as a entity (IK-per- + list), rather than resolution of the name or alias to its constituent + destinations, is implied. Such an IK must, therefore, be available + to all list members. This alternative will be the normal case for + messages sent via remote exploder sites, as a sender to such lists + may not be cognizant of the set of individual recipients. + Unfortunately, it implies an undesirable level of exposure for the + shared IK, and makes its revocation difficult. Moreover, use of the + IK-per-list method allows any holder of the list's IK to masquerade + as another sender to the list for authentication purposes. + + If, in contrast, a message's sender is equipped to expand the + destination mailing list into its individual constituents and elects + to do so (IK-per-recipient), the message's DEK and MAC will be + encrypted under each per-recipient IK and all such encrypted + representations will be incorporated into the transmitted message. + (Note that per-recipient encryption is required only for the + relatively small DEK and MAC quantities carried in the X-Key-Info + field, not for the message text which is, in general, much larger.) + Although more IKs are involved in processing under the IK-per- + recipient method, the pairwise IKs can be individually revoked and + possession of one IK does not enable a successful masquerade of + another user on the list. + +4.8 Summary of Added Header and Control Fields + + This section summarizes the syntax and semantics of the new header + and control fields to be added to messages in the course of privacy + enhancement processing, indicating whether a particular field occurs + in a message's encapsulated header portion or its encapsulated text + portion. Figure 2 shows the appearance of a small example + encapsulated message using these fields. In all cases, hexadecimal + quantities are represented as contiguous strings of digits, where + each digit is represented by a character from the ranges "0"-"9" or + upper case "A"-"F". Unless otherwise specified, all arguments are to + be processed in a case-sensitive fashion. + + Although the encapsulated header fields resemble RFC-822 header + fields, they are a disjoint set and will not in general be processed + by the same parser which operates on enclosing header fields. The + complexity of lexical analysis needed and appropriate for + + + +Linn, Privacy Task Force [Page 14] + +RFC 989 February 1987 + + + encapsulated header field processing is significantly less than that + appropriate to RFC-822 header processing. For example, many + characters with special significance to RFC-822 at the syntactic + level have no such significance within encapsulated header fields. + + The "X-IK-ID" and "X-Key-Info" fields are the only encapsulated + header fields with lengths which can vary beyond a size conveniently + printable on a line. Whitespace may be used between the subfields of + these fields to fold them in the manner of RFC-822; such whitespace + is not to be interpreted as a part of a subfield. + + -----PRIVACY-ENHANCED MESSAGE BOUNDARY----- + X-Proc-Type: 1,E + X-Pad-Count: 1 + X-IV: F8143EDE5960C597 + X-IK-ID: JL:3:ECB + X-Key-Info: 9FD3AAD2F2691B9A,B70665BB9BF7CBCD + X-IK-ID: JL:1:ECB + X-Key-Info: 161A3F75DC82EF26,E2EF532C65CBCFF7 + + LLrHB0eJzyhP+/fSStdW8okeEnv47jxe7SJ/iN72ohNcUk2jHEUSoH1nvNSIWL9M + 8tEjmF/zxB+bATMtPjCUWbz8Lr9wloXIkjHUlBLpvXR0UrUzYbkNpk0agV2IzUpk + J6UiRRGcDSvzrsoK+oNvqu6z7Xs5Xfz5rDqUcMlK1Z6720dcBWGGsDLpTpSCnpot + dXd/H5LMDWnonNvPCwQUHt== + -----PRIVACY-ENHANCED MESSAGE BOUNDARY----- + + Example Encapsulated Message + Figure 2 + + + X-IK-ID: This field is placed in the encapsulated header + portion of a message to identify the Interchange Key + used for encryption of an associated Data Encrypting + Key or keys (used for message text encryption and/or + MAC computation). This field is used for messages + authenticated without confidentiality service and for + messages authenticated with confidentiality service. + The field contains (in order) an Issuing Authority + subfield and an IK Qualifier subfield, and may also + contain an optional IK Use Indicator subfield. The + subfields are delimited by the colon character (":"), + optionally followed by whitespace. Section 5.1.2, + Interchange Keys, discusses the semantics of these + subfields and specifies the alphabet from which they + are chosen. Note that multiple X-IK-ID fields may + occur within a single encapsulated header. Each X- + IK-ID field is associated with an immediately + subsequent X-Key-Info field. + + X-IV: This field is placed in the encapsulated header + portion of a message to carry the Initializing Vector + + + +Linn, Privacy Task Force [Page 15] + +RFC 989 February 1987 + + + used for message encryption. It is used only for + messages where confidentiality service is applied. + Following the field name, and one or more delimiting + whitespace characters, a 64-bit Initializing Vector + is represented as a contiguous string of 16 + hexadecimal digits. + + X-Key-Info: This field is placed in a message's encapsulated + header portion to transfer two items: a DEK and a + MAC. Both items are encrypted under the IK + identified by a preceding X-IK-ID field; they are + represented as two strings of contiguous hexadecimal + digits, separated by a comma. For DEA-1, the DEK + representation will be 16 hexadecimal digits + (corresponding to a 64-bit key); this subfield can be + extended to 32 hexadecimal digits (corresponding to a + 128-bit key) if required to support other algorithms. + The MAC is a 64-bit quantity, represented as 16 + hexadecimal digits. The MAC is computed under an + unmodified version of the DEK. Message encryption is + performed using a variant of the DEK, formed by + modulo-2 addition of the hexadecimal quantity + F0F0F0F0F0F0F0F0 to the DEK. + + X-Pad-Count: This field is placed in the encapsulated header + portion of a message to indicate the number of zero- + valued octets which were added to pad the input + stream to the encryption function to an integral + multiple of eight octets, as required by the DEA-1 + CBC encryption mode. A decimal number in the range + 0-7 follows the field name, and one or more + delimiting whitespace characters. Inclusion of this + field allows disambiguation between terminal zero- + valued octets in message text (admittedly, a + relatively unlikely prospect) and zero-valued octets + inserted for padding purposes. + + X-Proc-Type: This field is placed in the encapsulated header + portion of a message to identify the type of + processing performed on the transmitted message. The + first subfield is a decimal version number, which + will be used if future developments make it necessary + to redefine the interpretation of encapsulated header + fields. At present, this field may assume only the + value "1". The second subfield, delimited by a + comma, assumes one of two single-character alphabetic + values: "A" and "E", to signify, respectively, (1) + authentication processing only and (2) the + combination of authentication and confidentiality + service through encryption. + + + + +Linn, Privacy Task Force [Page 16] + +RFC 989 February 1987 + + +5 Key Management + +5.1 Types of Keys + +5.1.1 Data Encrypting Keys (DEKs) + + Data Encrypting Keys (DEKs) are used for encryption of message text + and for computation of message authentication codes (MACs). It is + strongly recommended that DEKs be generated and used on a one-time + basis. A transmitted message will incorporate a representation of + the DEK encrypted under an interchange key (IK) known to the + authorized recipient. + + DEK generation can be performed either centrally by key distribution + centers (KDCs) or by endpoint systems. One advantage of centralized + KDC-based generation is that DEKs can be returned to endpoints + already encrypted under the IKs of message recipients. This reduces + IK exposure and simplifies endpoint key management requirements. + Further, dedicated KDC systems may be able to implement better + algorithms for random key generation than can be supported in + endpoint systems. On the other hand, decentralization allows + endpoints to be relatively self-sufficient, reducing the level of + trust which must be placed in components other than a message's + originator and recipient. Moreover, decentralized DEK generation by + endpoints reduces the frequency with which senders must make real- + time queries of (potentially unique) servers in order to send mail, + enhancing communications availability. + +5.1.2 Interchange Keys (IKs) + + Interchange Keys (IKs) are used to encrypt Data Encrypting Keys. In + general, the granularity of IK usage is at the pairwise per-user + level except for mail sent to address lists comprising multiple + users. In order for two principals to engage in a useful exchange of + privacy-enhanced electronic mail using conventional cryptography, + they must first share a common interchange key. When asymmetric + cryptography is used, an originator and recipient must possess + appropriate public and secret components which, in composition, + constitute an interchange key. + + The means by which interchange keys are provided to appropriate + parties are outside the scope of this RFC, but may be centralized + (e.g., via key management servers) or decentralized (e.g., via direct + distribution among users). In any case, a given IK is associated + with a responsible Issuing Authority (IA). When an IA generates and + distributes an IK, associated control information must be provided to + direct how that IK is to be used. In order to select the appropriate + IK to use in message encryption, a sender must retain a + correspondence between IKs and the recipients with which they are + associated. Expiration date information must also be retained, in + order that cached entries may be invalidated and replaced as + + + +Linn, Privacy Task Force [Page 17] + +RFC 989 February 1987 + + + appropriate. + + When a privacy-enhanced message is transmitted, an indication of the + IK (or IKs, in the case of a message sent to multiple recipients) + used for DEK encryption must be included. To this end, the IK ID + construct is defined to provide the following data: + + 1. Identification of the relevant Issuing Authority (IA + subfield) + + 2. Qualifier string to distinguish the particular IK within + the set of IKs distributed by the IA (IK qualifier + subfield) + + 3. (Optional) Indicator of IK usage mode (IK use indicator + subfield) + + + The subfields of an IK ID are delimited with the colon character + (":"). The IA and IK qualifier subfields are generated from a + restricted character set, as prescribed by the following BNF (using + notation as defined in RFC-822, sections 2 and 3.3): + + IAorIKQual := 1*ia-char + + ia-char := DIGIT / ALPHA / "'" / "+" / "(" / ")" / + "," / "." / "/" / "=" / "?" / "-" / "@" / + "%" / "!" / '"' / "_" / "<" / ">" + + The IK use indicator subfield assumes a value from a small set of + reserved strings, described later in this section. + + IA identifiers must be assigned in a manner which assures uniqueness. + This can be done on a centralized or hierarchic basis. + + The IK qualifier string format may vary among different IAs, but must + satisfy certain functional constraints. An IA's IK qualifiers must + be sufficient to distinguish among the set of IKs issued by that IA. + Since a message may be sent with multiple IK IDs, corresponding to + multiple intended recipients, each recipient must be able to + determine which IK is intended for it. Moreover, if no corresponding + IK is available in the recipient's database when a message arrives, + the recipient must be able to determine which IK to request and to + identify that IK's associated IA. Note that different IKs may be + used for different messages between a pair of communicants. + Consider, for example, one message sent from A to B and another + message sent (using the IK-per-list method) from A to a mailing list + of which B is a member. The first message would use an IK shared + between A and B, but the second would use an IK shared among list + members. + + + + +Linn, Privacy Task Force [Page 18] + +RFC 989 February 1987 + + + While use of a monotonically increasing number as an IK qualifier is + sufficient to distinguish among the set of IKs distributed by an IA, + it offers no facility for a recipient lacking a matching IK to + determine the appropriate IK to request. This suggests that sender + and recipient name information should be incorporated into an IK + qualifier, along with a number to distinguish among multiple IKs used + between a sender/recipient pair. In order to support universal + interoperability, it is necessary to assume a universal form for the + naming information. General definition of such a form requires + further study; issues and possible approaches will be noted in + Section 6. As an interim measure, the following IK qualifier format + is suggested: + + <sender-name>/<recipient-name>/<numid> + + where <sender-name> and <recipient-name> are in the following form: + + <user>@<domain-qualified-host> + + For the case of installations which transform local host names before + transmission into the broader Internet, it is strongly recommended + that the host name as presented to the Internet be employed. The + <numid> is a contiguous string of decimal digits. + + The IK use indicator subfield is an optional facility, provided to + identify the encryption mode in which the IK is to be used. + Currently, this subfield may assume the following reserved string + values: "ECB" and "EDE"; the default value is ECB. + + An example IK ID adhering to this recommendation is as follows: + + ptf-kmc:linn@CCY.BBN.COM/privacy-tf@C.ISI.EDU/2:ECB + + This IK ID would indicate that IA "ptf-kmc" has issued an IK for use + on messages sent from "linn@CCY.BBN.COM" to "privacy-tf@C.ISI.EDU", + that the IA has associated number 2 with that IK, and that the IK is + to be used in ECB mode. + + IKs will remain valid for a period which will be longer than a single + message and will be identified by an expiration time distributed + along with the IK; IK cryptoperiod is dictated in part by a tradeoff + between key management overhead and revocation responsiveness. It + would be undesirable to delete an IK permanently before receipt of a + message encrypted using that IK, as this would render the message + permanently undecipherable. Access to an expired IK would be needed, + for example, to process mail received by a user (or system) which had + been inactive for an extended period of time. In order to enable + very old IKs to be deleted, a message's recipient desiring encrypted + local long term storage should transform the DEK used for message + text encryption via re-encryption under a locally maintained IK, + rather than relying on IA maintenance of old IKs for indefinite + + + +Linn, Privacy Task Force [Page 19] + +RFC 989 February 1987 + + + periods. + +6 User Naming + + Unique naming of electronic mail users, as is needed in order to + select corresponding keys correctly, is an important topic and one + requiring significant study. A logical association exists between + key distribution and name/directory server functions; their + relationship is a topic deserving further consideration. These + issues have not been fully resolved at this writing. The interim + architecture relies on association of IKs with user names represented + in a universal form, which has the following properties: + + 1. The universal form must be specifiable by an IA as it + distributes IKs and known to a UA as it processes + received IKs and IK IDs. If a UA or IA uses addresses in + a local form which is different from the universal form, + it must be able to perform an unambiguous mapping from + the universal form into the local representation. + + 2. The universal form, when processed by a sender UA, must + have a recognizable correspondence with the form of a + recipient address as specified by a user (perhaps + following local transformation from an alias into a + universal form) + + It is difficult to ensure these properties throughout the Internet. + For example, an MTS which transforms address representations between + the local form used within an organization and the global form used + for Internet mail transmission may cause property 2 to be violated. + + The use of flat (non-hierarchic) electronic mail user identifiers, + which are unrelated to the hosts on which the users reside, appears + useful. Personal characteristics, like social security numbers, + might be considered. Individually-selected identifiers could be + registered with a central authority, but a means to resolve name + conflicts would be necessary. + + A point of particular note is the desire to accommodate multiple + names for a single individual, in order to represent and allow + delegation of various roles in which that individual may act. A + naming mechanism that binds user roles to keys is needed. Bindings + cannot be immutable since roles sometimes change (e.g., the + comptroller of a corporation is fired). + + It may be appropriate to examine the prospect of extending the Domain + Name System and its associated name servers to resolve user names to + unique user IDs. An additional issue arises with regard to mailing + list support: name servers do not currently perform (potentially + recursive) expansion of lists into users. ISO and CSNet are working + on user-level directory service mechanisms, which may also bear + + + +Linn, Privacy Task Force [Page 20] + +RFC 989 February 1987 + + + consideration. + +7 Example User Interface and Implementation + + In order to place the mechanisms and approaches discussed in this RFC + into context, this section presents an overview of a prototype + implementation. This implementation is a standalone program [10] + which is invoked by a user, and lies above the existing UA sublayer. + This form of integration offers the advantage that the program can be + used in conjunction with a range of UA programs, rather than being + compatible only with a particular UA. When a user wishes to apply + privacy enhancements to an outgoing message, the user prepares the + message's text and invokes the standalone program (interacting with + the program in order to provide address information and other data + required to perform privacy enhancement processing), which in turn + generates output suitable for transmission via the UA. When a user + receives a privacy-enhanced message, the UA delivers the message in + encrypted form, suitable for decryption and associated processing by + the standalone program. + + In this prototype implementation, a cache of IKs is maintained in a + local file, with entries managed manually based on pairwise + agreements between originators and recipients. This cache is, + effectively, a simple database. IKs are selected for transmitted + messages based on recipient names, and corresponding IK IDs are + placed into the message's encapsulated header. When a message is + received, the IK ID is used as a basis for a lookup in the database, + yielding the appropriate IK entry. DEKs and IVs are generated + dynamically within the program. + + Options (e.g., authentication only vs. authentication with + confidentiality service) are selected by command line arguments to + the standalone program. Destination addresses are specified in the + same fashion. The function of specifying destination addresses to + the privacy enhancement program is logically distinct from the + function of specifying the corresponding addresses to the UA for use + by the MTS. This separation results from the fact that, in many + cases, the local form of an address as specified to a UA differs from + the Internet global form as used for IK ID fields. + +8 Areas For Further Study + + The procedures defined in this RFC are sufficient to support pilot + implementation of privacy-enhanced electronic mail transmission among + cooperating parties in the Internet. Further effort will be needed, + however, to enhance robustness, generality, and interoperability. In + particular, further work is needed in the following areas: + + + 1. User naming techniques, and their relationship to the domain + system, name servers, directory services, and key management + + + +Linn, Privacy Task Force [Page 21] + +RFC 989 February 1987 + + + functions + + 2. Standardization of Issuing Authority functions, including + protocols for communications among IAs and between User Agents + and IAs + + 3. Use of public key encryption algorithms to encrypt data + encrypting keys + + 4. Interoperability with X.400 mail + + We anticipate generation of subsequent RFCs which will address these + topics. + + +9 References + + This section identifies background references which may be useful to + those contemplating use of the mechanisms defined in this RFC. + + + ISO 7498/Part 2 - Security Architecture, prepared by ISO.TC97/SC + 21/WG 1 Ad hoc group on Security, extends the OSI Basic + Reference Model to cover security aspects which are general + architectural elements of communications protocols, and + provides an annex with tutorial and background information. + + US Federal Information Processing Standards Publication (FIPS PUB) + 46, Data Encryption Standard, 15 January 1977, defines the + encipherment algorithm used for message text encryption and + MAC computation. + + FIPS PUB 81, DES Modes of Operation, 2 December 1980, defines + specific modes in which the Data Encryption Standard algorithm + is to be used to perform encryption and MAC computation. + +NOTES: + + + [1] Information Processing Systems: Data Encipherment: Block + Cipher Algorithm DEA 1. + + [2] Federal Information Processing Standards Publication 46, Data + Encryption Standard, 15 January 1977. + + [3] Information Processing Systems: Data Encipherment: Modes of + Operation of a 64-bit Block Cipher + + [4] Federal Information Processing Standards Publication 81, DES + Modes of Operation, 2 December 1980. + + + + +Linn, Privacy Task Force [Page 22] + +RFC 989 February 1987 + + + [5] Addendum to the Transport Layer Protocol Definition for + Providing Connection Oriented End to End Cryptographic Data + Protection Using a 64-Bit Block Cipher, X3T1-85-50.3, draft of + 19 December 1985, Gaithersburg, MD, p. 15. + + [6] This transformation should occur only at an SMTP endpoint, not + at an intervening relay, but may take place at a gateway + system linking the SMTP realm with other environments. + + [7] Crocker, D. Standard for the Format of ARPA Internet Text + Messages (RFC822), August 1982. + + [8] Rose, M. T., and Stefferud, E. A., Proposed Standard for + Message Encapsulation, January 1985. + + [9] Key generation for authentication and message text encryption + may either be performed by the sending host or by a + centralized server. This RFC does not constrain this design + alternative. Section 5.1.1 identifies possible advantages of + a centralized server approach. + + [10] Note that in the UNIX(tm) system, and possibly in other + environments as well, such a program can be invoked as a + "filter" within an electronic mail UA or a text editor, + simplifying the sequence of operations which must be performed + by the user. + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Linn, Privacy Task Force [Page 23] + |