Network Working Group P Karn [Qualcomm] Internet Draft W A Simpson [DayDreamer] expires in six months July 1997 Photuris: Extended Schemes and Attributes | draft-simpson-photuris-schemes-02.txt | Status of this Memo This document is an Internet-Draft. Internet Drafts are working doc- uments of the Internet Engineering Task Force (IETF), its Areas, and its Working Groups. Note that other groups may also distribute work- ing documents as Internet Drafts. Internet Drafts are draft documents valid for a maximum of six months, and may be updated, replaced, or obsoleted by other documents at any time. It is not appropriate to use Internet Drafts as refer- ence material, or to cite them other than as a ``working draft'' or ``work in progress.'' To learn the current status of any Internet-Draft, please check the ``1id-abstracts.txt'' listing contained in the internet-drafts Shadow Directories on: ftp.is.co.za (Africa) nic.nordu.net (Europe) ds.internic.net (US East Coast) ftp.isi.edu (US West Coast) munnari.oz.au (Pacific Rim) Distribution of this memo is unlimited. Abstract Photuris is a session-key management protocol. Extensible Exchange Schemes are provided to enable future implementation changes without affecting the basic protocol. | Additional authentication attributes are included for use with the | IP Authentication Header (AH). Additional confidentiality attributes are included for use with the | IP Encapsulating Security Protocol (ESP). Karn & Simpson expires in six months [Page i] DRAFT Schemes and Attributes July 1997 1. Additional Exchange Schemes - The packet format and basic facilities are already defined for Pho- turis [RFC-zzzz]. These optional exchange schemes are specified separately, and no sin- gle implementation is expected to support all of them. This document defines the following values: (3) Implementation Optional. Any modulus (p) with a recommended generator (g) of 3. The modulus is contained in the Exchange Scheme Value field in the list of Offered-Schemes. The Key-Generation function is "MD5 Hash". | The Privacy-Method is "Simple Masking". The Validity-Method is "MD5-KMpKp Check". | (4) Implementation Optional. Any modulus (p) with a recommended generator (g) of 2. The modulus is contained in the Exchange Scheme Value field in the list of Offered-Schemes. The Key-Generation function is "MD5 Hash". | The Privacy-Method is "DES-CBC over Mask". | The Validity-Method is "MD5-KMpKp Check". (5) Implementation Optional. Any modulus (p) with a recommended generator (g) of 5. The modulus is contained in the Exchange Scheme Value field in the list of Offered-Schemes. The Key-Generation function is "MD5 Hash". | The Privacy-Method is "Simple Masking". The Validity-Method is "MD5-KMpKp Check". | (6) Implementation Optional. Any modulus (p) with a recommended generator (g) of 3. The modulus is contained in the Exchange Scheme Value field in the list of Offered-Schemes. The Key-Generation function is "MD5 Hash". | The Privacy-Method is "DES-CBC over Mask". | Karn & Simpson expires in six months [Page 1] DRAFT Schemes and Attributes July 1997 The Validity-Method is "MD5-KMpKp Check". (7) Implementation Optional. Any modulus (p) with a variable gen- erator (g). Each is encoded in a separate Variable Precision Number. The generator VPN is followed by (concatenated to) the modulus VPN, and the pair are contained in the Exchange Scheme Value field in the list of Offered-Schemes. The Key-Generation function is "MD5 Hash". | The Privacy-Method is "Simple Masking". The Validity-Method is "MD5-KMpKp Check". | (8) Implementation Optional. Any modulus (p) with a recommended generator (g) of 2. The modulus is contained in the Exchange Scheme Value field in the list of Offered-Schemes. The Key-Generation function is "SHA1 Hash". | The Privacy-Method is "DES-EDE3-CBC over Mask". The Validity-Method is "SHA1-KMpKp Check". | (10) Implementation Optional. Any modulus (p) with a recommended generator (g) of 5. The modulus is contained in the Exchange Scheme Value field in the list of Offered-Schemes. The Key-Generation function is "MD5 Hash". | The Privacy-Method is "DES-CBC over Mask". | The Validity-Method is "MD5-KMpKp Check". (12) Implementation Optional. Any modulus (p) with a recommended generator (g) of 3. The modulus is contained in the Exchange Scheme Value field in the list of Offered-Schemes. The Key-Generation function is "SHA1 Hash". | The Privacy-Method is "DES-EDE3-CBC over Mask". The Validity-Method is "SHA1-KMpKp Check". | (14) Implementation Optional. Any modulus (p) with a variable gen- erator (g). Each is encoded in a separate Variable Precision Number. The generator VPN is followed by (concatenated to) the modulus VPN, and the pair are contained in the Exchange Scheme Karn & Simpson expires in six months [Page 2] DRAFT Schemes and Attributes July 1997 Value field in the list of Offered-Schemes. The Key-Generation function is "MD5 Hash". | The Privacy-Method is "DES-CBC over Mask". | The Validity-Method is "MD5-KMpKp Check". (20) Implementation Optional. Any modulus (p) with a recommended generator (g) of 5. The modulus is contained in the Exchange Scheme Value field in the list of Offered-Schemes. The Key-Generation function is "SHA1 Hash". | The Privacy-Method is "DES-EDE3-CBC over Mask". The Validity-Method is "SHA1-KMpKp Check". | (28) Implementation Optional. Any modulus (p) with a variable gen- erator (g). Each is encoded in a separate Variable Precision Number. The generator VPN is followed by (concatenated to) the modulus VPN, and the pair are contained in the Exchange Scheme Value field in the list of Offered-Schemes. The Key-Generation function is "SHA1 Hash". | The Privacy-Method is "DES-EDE3-CBC over Mask". The Validity-Method is "SHA1-KMpKp Check". | 2. Key-Generation 2.1. SHA1 Hash SHA1 [FIPS-180-1] is used as a pseudo-random-function for generating + the key(s). The key(s) begin with the most significant bits of the + hash. SHA1 is iterated as needed to generate the requisite length of + key material. + When an individual key does not use all 128-bits of the last hash, + any remaining unused (least significant) bits of the last hash are + discarded. When combined with other uses of key generation for the + same purpose, the next key will begin with a new hash iteration. + Karn & Simpson expires in six months [Page 3] DRAFT Schemes and Attributes July 1997 3. Privacy Methods 3.1. DES-CBC over Mask As described in [RFC-zzzz] "Privacy Masking", sufficient privacy-key | material is generated to match the message length, beginning with the | next field after the SPI, and including the Padding. The message is | masked by XOR with the privacy-key. | Then, the Key-Generation function is iterated to generate a DES key. | The most significant 64-bits (8 bytes) of the generated hash are used | for the privacy-key, and the remainder are discarded. Although extremely rare, the 64 weak, semi-weak, and possibly weak keys | [Schneier95, pages 280-282] are discarded. The Key-Generation func- | tion is iterated until a valid key is obtained. The least significant bit of each key byte is ignored (or set to par- | ity when the implementation requires). Message encryption begins with the next field after the SPI, and con- tinues to the end of the data indicated by the UDP Length. 3.2. DES-EDE3-CBC over Mask This is "Triple DES" outer-CBC EDE encryption (and DED decryption) | with three 56-bit keys [KR96]. As described in [RFC-zzzz] "Privacy Masking", sufficient privacy-key | material is generated to match the message length, beginning with the | next field after the SPI, and including the Padding. The message is | masked by XOR with the privacy-key. | Then, the Key-Generation function is iterated (at least) three times | to generate the three DES keys. The most significant 64-bits (8 | bytes) of each generated hash are used for each successive privacy- | key, and the remainder are discarded. Each key is examined sequen- | tially, in the order used for encryption. A key that is identical to | a previous key MUST be discarded. Although extremely rare, the 64 | weak, semi-weak, and possibly weak keys [Schneier95, pages 280-282] | MUST be discarded. The Key-Generation function is iterated until a | valid key is obtained before generating the next key. | In all three keys, the least significant bit of each key byte is | ignored (or set to parity when the implementation requires). Message encryption begins with the next field after the SPI, and con- - tinues to the end of the data indicated by the UDP Length. Karn & Simpson expires in six months [Page 4] DRAFT Schemes and Attributes July 1997 4. Validity Methods 4.1. SHA1-KMpKp Check As described in [RFC-zzzz] "Validity Verification", the SHA1 [FIPS-180-1] hash is calculated over the concatenation of SHA1( key, data, datafill, key, sha1fill ) where the key is the computed shared-secret. The leading key is not padded to any particular alignment. The datafill uses the same pad-with-length technique defined for sha1fill. This padding and length is implicit, and does not appear | in the datagram. The datafill length includes only the leading key | and data. The resulting Verification field is a 160-bit Variable Precision Num- ber (22 bytes including Size). | 5. Additional Attributes The attribute format and basic facilities are already defined for Photuris [RFC-zzzz]. These optional attributes are specified separately, and no single implementation is expected to support all of them. This document defines the following values: Use Type I 4 SHA1-KMpKp Symmetric Identification X 6 SHA1-KpMpKp Authentication E 8 DES-CBC Encryption E 9 DES Decryption E 11 XOR A AH-only Attribute-Choice E ESP-only Attribute-Choice I Identity-Choice X dependent on list location Karn & Simpson expires in six months [Page 5] DRAFT Schemes and Attributes July 1997 5.1. SHA1-KMpKp Symmetric Identification +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 4 Length 0 When selected as an Identity-Choice, the immediately following Iden- tification field contains an unstructured Variable Precision Number. Valid Identifications and symmetric secret-keys are preconfigured by the parties. There is no required format or content for the Identification value. The value may be a number or string of any kind. See [RFC-zzzz] "Use of Identification and Secrets" for details. The authentication symmetric secret-key (as specified) is selected based on the contents of the Identification field. All implementa- tions MUST support at least 62 bytes. The selected symmetric secret- key SHOULD provide at least 80-bits of cryptographic strength. As described in [RFC-zzzz] "Identity Verification", the SHA1 [FIPS-180-1] hash is calculated over the concatenation of: SHA1( key, data, datafill, key, sha1fill ) where the key is the computed shared-secret. The leading key is not padded to any particular alignment. The datafill uses the same pad-with-length technique defined for sha1fill. This padding and length is implicit, and does not appear in the datagram. The datafill length includes only the leading key and data. The resulting Verification field is a 160-bit Variable Precision Num- ber (22 bytes including Size). For identity verification and session-key calculation, the authenti- cation symmetric secret-key is also used as the calculation secret- key. Karn & Simpson expires in six months [Page 6] DRAFT Schemes and Attributes July 1997 5.2. SHA1-KpMpKp Authentication +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 6 Length 0 May be selected as an AH or ESP Attribute-Choice, pursuant to [RFC-1852] et sequitur. The selected Exchange Scheme SHOULD provide at least 80-bits of cryptographic strength. As described in [RFC-zzzz] "Session-Key Computation", the most sig- nificant 480-bits (60 bytes) of the Key-Generation iterations are used for the key. Profile: When negotiated with Photuris, the transform differs slightly from [RFC-1852]. The form of the authenticated message is: SHA1( key, keyfill, datagram, datafill, key, sha1fill ) where the key is the SPI session-key. The additional datafill protects against the attack described in [PO96]. This is also filled to the next 512-bit boundary, using the same pad-with-length technique defined for SHA1. This padding and length is implicit, and does not appear in the datagram. The datafill length includes only the leading key and data. Karn & Simpson expires in six months [Page 7] DRAFT Schemes and Attributes July 1997 5.3. DES-CBC Encryption +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 8 Length 0 May be selected as an ESP Attribute-Choice, pursuant to [RFC-1829] et sequitur. The selected Exchange Scheme SHOULD provide at least 56-bits of cryptographic strength. As described in [RFC-zzzz] "Session-Key Computation", the most sig- nificant 64-bits (8 bytes) of the Key-Generation iteration are used for the key, and the remainder are discarded. Although extremely rare, the 64 weak, semi-weak, and possibly weak keys [Schneier95, pages 280-282] MUST be discarded. The Key-Generation function is iterated until a valid key is obtained. The least significant bit of each key byte is ignored (or set to par- ity when the implementation requires). Profile: When negotiated with Photuris, the transform differs slightly from [RFC-1829]. The 32-bit Security Parameters Index (SPI) field is followed by a 32-bit Sequence Number (SN). The 64-bit CBC IV is generated from the 32-bit Security Parameters Index (SPI) field followed by (concatenated with) the 32-bit Sequence Number (SN) field. Then, the bit-wise complement of the 32-bit Sequence Number (SN) value is XOR'd with the first 32-bits (SPI): (SPI ^ -SN) || SN The padding values begin with the value 1, and count up to the number of padding bytes (zero relative). For example, if the plaintext length is 41, the padding values are 1, 2, 3, 4, 5, and the following PadLength is 5. After decryption, if the padding bytes are not the correct values for the PadLength, then the payload is discarded, and a Karn & Simpson expires in six months [Page 8] DRAFT Schemes and Attributes July 1997 "Decryption Failed" error is indicated, as described in [RFC- xxxx]. 5.4. DES Decryption +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 9 Length 0 May be selected as an ESP Attribute-Choice, pursuant to [RFC-1851] et sequitur. The combination "DES-CBC Encryption", "DES Decryption", "DES-CBC Encryption", indicates "Triple DES" outer-CBC EDE encryption (and DED decryption) with three keys [KR96]. The selected Exchange Scheme SHOULD provide at least 112-bits of cryptographic strength. As described in [RFC-zzzz] "Session-Key Computation", the Key- Generation function is iterated (at least) three times to generate the three independent keys, in the order used for encryption. The most significant 64-bits (8 bytes) of each Key-Generation iteration are used for each successive key, and the remainder are discarded. Each key is examined sequentially, in the order used for encryption. A key that is identical to a previous key MUST be discarded. Although extremely rare, the 64 weak, semi-weak, and possibly weak keys [Schneier95, pages 280-282] MUST be discarded. The Key- Generation function is iterated until a valid key is obtained before generating the next key. In all three keys, the least significant bit of each key byte is ignored (or set to parity when the implementation requires). Profile: When negotiated with Photuris, the transform differs slightly from [RFC-1851]. The 32-bit Security Parameters Index (SPI) field is followed by a 32-bit Sequence Number (SN). Karn & Simpson expires in six months [Page 9] DRAFT Schemes and Attributes July 1997 The 64-bit CBC IV is generated from the 32-bit Security Parameters Index (SPI) field followed by (concatenated with) the 32-bit Sequence Number (SN) field. Then, the bit-wise complement of the 32-bit Sequence Number (SN) value is XOR'd with the first 32-bits (SPI): (SPI ^ -SN) || SN The padding values begin with the value 1, and count up to the number of padding bytes (zero relative). For example, if the plaintext length is 41, the padding values are 1, 2, 3, 4, 5, and the following PadLength is 5. After decryption, if the padding bytes are not the correct values for the PadLength, then the payload is discarded, and a "Decryp- tion Failed" error is indicated, as described in [RFC-xxxx]. 5.5. XOR Whitening +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 11 Length 0 May be selected as an ESP Attribute-Choice, pursuant to [RFC-yyyy] et sequitur. The combination "XOR", "DES-CBC Encryption", "XOR", indicates "DESX" encryption with three keys [KR96]. The selected Exchange Scheme SHOULD provide at least 104-bits of cryptographic strength. As described in [RFC-zzzz] "Session-Key Computation", the Key- Generation function is iterated (at least) three times to generate the three independent keys, in the order used for encryption. The most significant 64-bits (8 bytes) of each Key-Generation iteration are used for each successive key, and the remainder are discarded. Karn & Simpson expires in six months [Page 10] DRAFT Schemes and Attributes July 1997 Note that this attribute may appear multiple times in the same ESP attribute list, both before and after an encryption transform. For example, "XOR", "DES-CBC Encryption", "XOR", "DES Decryption", "XOR", "DES-CBC Encryption", "XOR", would be one possible combination with Triple DES. Security Considerations | The "whitening" of the plaintext before DES encryption is intended to obscure the relation of the number of parties and SPIs active between two IP nodes. The combination of a randomized secret mask with the | CBC IV generates a different initial encrypted block for every SPI creation message. This obscurement is less effective when the SPI and SPILT are invari- | ant or are not created for a particular exchange direction. The num- | ber of parties could be revealed by the number of exchanges with dif- ferences in the initial encrypted blocks. Acknowledgements Phil Karn was principally responsible for the design of party privacy protection, and provided much of the design rationale text (now | removed to a separate document). William Simpson designed the packet formats, and additional exchange schemes, editing and formatting. All such mistakes are his responsi- bity. Use of encryption for privacy protection is also found in the Sta- | tion-To-Station authentication protocol [DOW92]. Bart Preneel and Paul C van Oorschot in [PO96] suggested adding padding between the data and trailing key when hashing for authenti- cation. Karn & Simpson expires in six months [Page 11] DRAFT Schemes and Attributes July 1997 References [DOW92] Whitfield Diffie, Paul C van Oorshot, and Michael J Wiener, "Authentication and Authenticated Key Exchanges", Designs, Codes and Cryptography, v 2 pp 107-125, Kluwer Academic Pub- lishers, 1992. [FIPS-180-1] "Secure Hash Standard", National Institute of Standards and Technology, U.S. Department Of Commerce, April 1995. Also known as: 59 Fed Reg 35317 (1994). [KR96] Kaliski, B., and Robshaw, M., "Multiple Encryption: Weighing Security and Performance", Dr. Dobbs Journal, January 1996. [PO96] Bart Preneel, and Paul C van Oorshot, "On the security of two MAC algorithms", Advances in Cryptology -- Eurocrypt '96, Lecture Notes in Computer Science 1070 (May 1996), Springer-Verlag, pages 19-32. - [RFC-1829] Karn, P., Metzger, P., Simpson, W., "The ESP DES-CBC Trans- | form", July 1995. | [RFC-1850] | Karn, P., Metzger, P., Simpson, W., "The ESP Triple DES + Transform", September 1995. + [RFC-1851] + Metzger, P., Simpson, W., "IP Authentication using Keyed + SHA", September 1995. + [RFC-xxxx] + Karn, P., and Simpson, W., "ICMP Security Failures Mes- + sages", draft-simpson-icmp-ipsec-fail-02.txt, work in + progress. + [RFC-yyyy] + Simpson, W., Baldwin, R., "The ESP DES-XEX3-CBC Transform", + draft-ietf-ipsec-ciph-desx-00.txt, work in progress. + [RFC-zzzz] + Karn, P., and Simpson, W., "Photuris: Session Key Management Protocol", draft-simpson-photuris-13.txt, work in progress. + Karn & Simpson expires in six months [Page 12] DRAFT Schemes and Attributes July 1997 Contacts Comments about this document should be discussed on the pho- turis@majordomo.soscorp.com mailing list. Questions about this document can also be directed to: Phil Karn Qualcomm, Inc. 6455 Lusk Blvd. San Diego, California 92121-2779 karn@qualcomm.com karn@unix.ka9q.ampr.org (preferred) William Allen Simpson DayDreamer Computer Systems Consulting Services 1384 Fontaine Madison Heights, Michigan 48071 wsimpson@UMich.edu wsimpson@GreenDragon.com (preferred) bsimpson@MorningStar.com Karn & Simpson expires in six months [Page 13]