Network Working Group L. Hornquist Astrand Internet-Draft Stockholm University Intended status: Standards Track L. Zhu Expires: January 10, 2008 Microsoft Corporation July 9, 2007 PK-INIT algorithm agility draft-ietf-krb-wg-pkinit-alg-agility-03 Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on January 10, 2008. Copyright Notice Copyright (C) The IETF Trust (2007). Hornquist Astrand & Zhu Expires January 10, 2008 [Page 1] Internet-Draft PK-INIT algorithm agility July 2007 Abstract The PK-INIT defined in RFC 4556 is examined and updated to remove protocol structures tied to specific cryptographic algorithms. The affinity to SHA-1 as the checksum algorithm in the authentication request is analyzed. The PK-INIT key derivation function is made negotiable, the digest algorithms for signing the pre-authentication data and the client's X.509 certificates are made discoverable. These changes provide protection preemptively against vulnerabilities discovered in the future against any specific cryptographic algorithm, and allow incremental deployment of newer algorithms. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Requirements Notation . . . . . . . . . . . . . . . . . . . . 5 3. paChecksum Agility . . . . . . . . . . . . . . . . . . . . . . 6 4. CMS Digest Algorithm Agility . . . . . . . . . . . . . . . . . 7 5. X.509 Certificate Signer Algorithm Agility . . . . . . . . . . 8 6. KDF agility . . . . . . . . . . . . . . . . . . . . . . . . . 9 7. Security Considerations . . . . . . . . . . . . . . . . . . . 13 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 14 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 16 10.1. Normative References . . . . . . . . . . . . . . . . . . 16 10.2. Informative References . . . . . . . . . . . . . . . . . 17 Appendix A. PKINIT ASN.1 Module . . . . . . . . . . . . . . . . . 18 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 20 Intellectual Property and Copyright Statements . . . . . . . . . . 21 Hornquist Astrand & Zhu Expires January 10, 2008 [Page 2] Internet-Draft PK-INIT algorithm agility July 2007 1. Introduction In August 2004, Xiaoyun Wang's research group reported MD4 [RFC1320] collisions generated using hand calculation [WANG04] alongside attacks on later hash function designs in the MD4, MD5 [RFC1321] and SHA [RFC4634] family. Implementations based on Wang's algorithm can find collisions in real time. These discoveries challenged the security for protocols relying on the collision resistance properties of these hashes, for example one can forge a digital signature when SHA-1 [RFC4634] is the digest algorithm. A more far reaching side effect of these recent events, however, is that it is now generally considered flawed or distasteful at least if protocols are designed to use only specific algorithms. The Internet Engineer Task Force (IETF) called for actions to update existing protocols to provide crypto algorithm agility in order to untie protocols with specific algorithms. The idea is that if the protocol has crypto algorithm agility, and when a new vulnerability specific to an algorithm is discovered, this algorithm can be disabled via protocol negotiation quickly, thus we can avoid the wait for the multi-year standardization and implementation efforts to update the protocols. In additon, crypto agility allows deployment of new crypto algorithms to be done incrementally, rather than requring a "flag day" on which the change must be deployed everywhere at the same time in order to maintain interoperability. This document is to update PK-INIT [RFC4556] to provide crypto algorithm agility. Several protocol structures used in the [RFC4556] protocol are either tied to SHA-1, or require the algorithms not negotiated but rather based on local policy. The following concerns have been addressed: o The checksum algorithm in the authentication request is hardwired to use SHA-1 [RFC4634]. o The acceptable digest algorithms for signing the authentication data are not discoverable. o The key derivation function in Section 3.2.3 of [RFC4556] is hardwired to use SHA-1. o The acceptable digest algorithms for signing the client X.509 certificates are not discoverable. To accomplish these, new key derivation functions (KDFs) identifiable by object identifiers are defined. The PKINIT client provides a list of KDFs in the request and the KDC picks one in the response, thus a mutually-supported KDF is negotiated. Hornquist Astrand & Zhu Expires January 10, 2008 [Page 3] Internet-Draft PK-INIT algorithm agility July 2007 Furthermore, structures are defined to allow the client discover the Cryptographic Message Syntax (CMS) [RFC3852] digest algorithms supported by the KDC for signing the pre-authentication data and signing the client X.509 certificate. Hornquist Astrand & Zhu Expires January 10, 2008 [Page 4] Internet-Draft PK-INIT algorithm agility July 2007 2. Requirements Notation The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. Hornquist Astrand & Zhu Expires January 10, 2008 [Page 5] Internet-Draft PK-INIT algorithm agility July 2007 3. paChecksum Agility The paChecksum defined in Section 3.2.1 of [RFC4556] provides a cryptographic binding between the client's pre-authentication data and the corresponding Kerberos request body. This also prevents the KDC body from being tempered with. SHA-1 is the only allowed checksum algorithm defined in [RFC4556]. This facility relies the collision resistance properties of the SHA-1 checksum [RFC4634]. When the reply key delivery mechanism is based on public key encryption as described in Section 3.2.3. of [RFC4556], the asChecksum in the KDC reply provides the binding between the pre- authentication and the ticket request and response messages, and integrity protection for the unauthenticated clear text in these messages. However, if the reply key delivery mechanism is based on the Diffie-Hellman key agreement as described in Section 3.2.3.1 of [RFC4556], the security provided by using SHA-1 in the paChecksum is weak. In this case, the new KDF selected by the KDC as described in Section 6 provides the cryptographic binding and integrity protection. Hornquist Astrand & Zhu Expires January 10, 2008 [Page 6] Internet-Draft PK-INIT algorithm agility July 2007 4. CMS Digest Algorithm Agility When the KDC_ERR_DIGEST_IN_SIGNED_DATA_NOT_ACCEPTED error is returned as described In section 3.2.2 of [RFC4556], implementations comforming to this specification can OPTIONALLY send back a list of supported CMS types signifying the digest algorithms supported by the KDC, in the decreasing preference order. This is accomplished by including a TD_CMS_DATA_DIGEST_ALGORITHMS typed data element in the error data. TD-CMS-DIGEST-ALGORITHMS ::= INTEGER 111 The corresponding data for the TD_CMS_DATA_DIGEST_ALGORITHMS contains the ASN.1 Distinguished Encoding Rules (DER) [X680] [X690] encoded TD-CMS-DIGEST-ALGORITHMS-DATA structure defined as follows: TD-CMS-DIGEST-ALGORITHMS-DATA ::= SEQUENCE OF AlgorithmIdentifier -- Contains the list of CMS algorithm [RFC3852] -- identifiers that identify the digest algorithms -- acceptable by the KDC for signing CMS data in -- the order of decreasing preference. The algorithm identifiers in the TD-CMS-DIGEST-ALGORITHMS identifiy digest algorithms supported by the KDC. This information sent by the KDC via TD_CMS_DATA_DIGEST_ALGORITHMS can facilitate trouble-shooting when none of the digest algorithms supported by the client is supported by the KDC. Hornquist Astrand & Zhu Expires January 10, 2008 [Page 7] Internet-Draft PK-INIT algorithm agility July 2007 5. X.509 Certificate Signer Algorithm Agility When the client's X.509 certificate is rejected and the KDC_ERR_DIGEST_IN_SIGNED_DATA_NOT_ACCEPTED error is returned as described in section 3.2.2 of [RFC4556], conforming implementations can OPTIONALLY send a list of digest algorithms acceptable by the KDC for use by the CA in signing the client's X.509 certificate, in the decreasing preference order. This is accomplished by including a TD_CERT_DIGEST_ALGORITHMS typed data element in the error data. The corresponding data contains the ASN.1 DER encoding of the structure TD-CERT-DIGEST-ALGORITHMS-DATA defined as follows: TD-CERT-DIGEST-ALGORITHMS ::= INTEGER 112 TD-CERT-DIGEST-ALGORITHMS-DATA ::= SEQUENCE { allowedAlgorithms [0] SEQUENCE OF AlgorithmIdentifier, -- Contains the list of CMS algorithm [RFC3852] -- identifiers that identify the digest algorithms -- that are used by the CA to sign the client's -- X.509 certificate and acceptable by the KDC in -- the process of validating the client's X.509 -- certificate, in the order of decreasing -- preference. rejectedAlgorithm [1] AlgorithmIdentifier OPTIONAL, -- This identifies the digest algorithm that was -- used to sign the client's X.509 certificate and -- has been rejected by the KDC in the process of -- validating the client's X.509 certificate -- [RFC3280]. ... } The KDC fills in allowedAlgorithm field with the list of algorithm [RFC3852] identifiers that identify digest algorithms that are used by the CA to sign the client's X.509 certificate and acceptable by the KDC in the process of validating the client's X.509 certificate, in the order of decreasing preference. The rejectedAlgorithm field identifies the signing algorithm for use in signing the client's X.509 certificate that has been rejected by the KDC in the process of validating the client's certificate [RFC3280]. Hornquist Astrand & Zhu Expires January 10, 2008 [Page 8] Internet-Draft PK-INIT algorithm agility July 2007 6. KDF agility Based on [RFC3766] and [X9.42], Section 3.2.3.1 of [RFC4556] defines a Key Derivation Function (KDF) that derives a Kerberos protocol key based on the secret value generated by the Diffie-Hellman key exchange. This KDF requires the use of SHA-1 [RFC4634]. New KDFs defined in this document based on [SP80056A] can be used in conjunction with any hash functions. A new KDF is identified by an object identifier. The following KDF object identifiers are defined: id-pkinit-kdf OBJECT IDENTIFIER ::= { id-pkinit 6 } -- PKINIT KDFs id-pkinit-kdf-ah-sha1 OBJECT IDENTIFIER ::= { id-pkinit-kdf 1 } -- SP800 56A ASN.1 structured hash based KDF using SHA-1 id-pkinit-kdf-ah-sha256 OBJECT IDENTIFIER ::= { id-pkinit-kdf 2 } -- SP800 56A ASN.1 structured hash based KDF using SHA-256 id-pkinit-kdf-ah-sha512 OBJECT IDENTIFIER ::= { id-pkinit-kdf 3 } -- SP800 56A ASN.1 structured hash based KDF using SHA-512 Where id-pkinit is defined in [RFC4556]. The id-pkinit-kdf-ah-sha1 KDF is the ASN.1 structured hash based KDF (HKDF) [SP80056A] that uses SHA-1 [RFC4634] as the hash function. Similarly id-pkinit-kdf- ah-sha256 and id-pkinit-kdf-ah-sha512 are the ASN.1 structured HKDF using SHA-256 [RFC4634] and SHA-512 [RFC4634] respectively. The common input parameters for these KDFs are provided as follows: o The secret value is the shared secret value generated by the Diffie-Hellman exchange. The Diffie-Hellman shared value is first padded with leading zeros such that the size of the secret value in octets is the same as that of the modulus, then represented as a string of octets in big-endian order. o The key data length is K. K is the key-generation seed length in bits [RFC3961] for the Authentication Service (AS) reply key. The enctype of the AS reply key is selected according to [RFC4120]. o The algorithm identifier input parameter is the identifier of the respective KDF. For example, this is id-pkinit-kdf-ah-sha1 if the KDF is the [SP80056A] ASN.1 structured HKDF using SHA-1 as the hash. o The initiator identifier is an OCTET STRING that contains the ASN.1 DER encoding of the KRB5PrincipalName [RFC4556] that identifies the client as specified in the AS-REQ [RFC4120] in the Hornquist Astrand & Zhu Expires January 10, 2008 [Page 9] Internet-Draft PK-INIT algorithm agility July 2007 request. o The recipient identifier is an OCTET STRING that contains the ASN.1 DER encoding of the KRB5PrincipalName [RFC4556] that identifies the TGS as specified in the AS-REQ [RFC4120] in the request. o The supplemental private information is absent (not used). o The supplemental public information is an OCTET STRING that contains the ASN.1 DER encoding of the structure PkinitSuppPubInfo as defined later in this section. o The hash length is 128 for id-pkinit-kdf-ah-sha1, 256 for id- pkinit-kdf-ah-sha256, and 512 for id-pkinit-kdf-ah-sha512. o The maximum hash input length is 2^64 in bits. The structure PkinitSuppPubInfo is defined as follows: PkinitSuppPubInfo ::= SEQUENCE { enctype [0] Int32, -- The enctype of the AS reply key. as-REQ [1] OCTET STRING, -- This contains the AS-REQ in the request. pk-as-rep [2] OCTET STRING, -- Contains the DER encoding of the type -- PA-PK-AS-REP [RFC4556] in the KDC reply. ticket [3] Ticket, -- This is the ticket in the KDC reply. ... } The PkinitSuppPubInfo structure contains mutually-known public information specific to the authentication exchange. The enctype field is the enctype of the AS reply key as selected according to [RFC4120]. The as-REQ field contains the DER encoding of the type AS-REQ [RFC4120] in the request sent from the client to the KDC. Note that the as-REQ field does not include the wrapping 4 octet length field when TCP is used. The pk-as-rep field contains the DER encoding of the type PA-PK-AS-REP [RFC4556] in the KDC reply. The ticket field is filled with the ticket in the KDC reply. The PkinitSuppPubInfo provides a cryptographic bindings between the pre- authentication data and the corresponding ticket request and response, thus addressing the concerns described in Section 3. Hornquist Astrand & Zhu Expires January 10, 2008 [Page 10] Internet-Draft PK-INIT algorithm agility July 2007 The above ASN.1 structured [SP80056A] HKDF produces a bit string of length K in bits as the keying material, and then the AS reply key is the output of random-to-key() [RFC3961] using that returned keying material as the input. The KDF is negotiated between the client and the KDC. The client sends an unordered set of supported KDFs in the request, and the KDC picks one from the set in the reply. To acomplish this, the AuthPack structure in [RFC4556] is extended as follows: AuthPack ::= SEQUENCE { pkAuthenticator [0] PKAuthenticator, clientPublicValue [1] SubjectPublicKeyInfo OPTIONAL, supportedCMSTypes [2] SEQUENCE OF AlgorithmIdentifier OPTIONAL, clientDHNonce [3] DHNonce OPTIONAL, ..., supportedKDFs [4] SEQUENCE OF KDFAlgorithmId OPTIONAL, -- Contains an unordered set of KDFs supported by the -- client. ... } KDFAlgorithmId ::= SEQUENCE { kdf-id [0] OBJECT IDENTIFIER, -- The object identifier of the KDF ... } The new field supportedKDFs contains an unordered set of KDFs supported by the client. The KDFAlgorithmId structure contains an object identifier that identifies a KDF. The algorithm of the KDF and its parameters are defined by the corresponding specification of that KDF. The DHRepInfo structure in [RFC4556] is extended as follows: Hornquist Astrand & Zhu Expires January 10, 2008 [Page 11] Internet-Draft PK-INIT algorithm agility July 2007 DHRepInfo ::= SEQUENCE { dhSignedData [0] IMPLICIT OCTET STRING, serverDHNonce [1] DHNonce OPTIONAL, ..., kdf [2] KDFAlgorithmId OPTIONAL, -- The KDF picked by the KDC. ... } The new field kdf in the extended DHRepInfo structure identifies the KDF picked by the KDC. This kdf field MUST be filled by the comforming KDC if the supportedKDFs field is present in the request, and it MUST be one of the KDFs supported by the client as indicated in the request. Which KDF is chosen is a matter of the local policy on the KDC. If the supportedKDFs field is not present in the request, the kdf field in the reply MUST be absent. If the client fills the supportedKDFs field in the request, but the kdf field in the reply is not present, the client can deduce that the KDC is not updated to conform with this specification. In that case, it is a matter of local policy on the client whether to reject the reply when the kdf field is absent in the reply. Implementations comforming to this specification MUST support id- pkinit-kdf-ah-sha256. If no acceptable KDF is found, the error KDC_ERR_NO_ACCEPTABLE_KDF (82). PKINIT introduces the following new error code: o KDC_ERR_NO_ACCEPTABLE_KDF 82 Hornquist Astrand & Zhu Expires January 10, 2008 [Page 12] Internet-Draft PK-INIT algorithm agility July 2007 7. Security Considerations This document describes negotiation of checksum types, key derivation functions and other cryptographic functions. If negotiation is done unauthenticated, care MUST be taken to accept only acceptable values. Hornquist Astrand & Zhu Expires January 10, 2008 [Page 13] Internet-Draft PK-INIT algorithm agility July 2007 8. Acknowledgements Jeffery Hutzelman and Shawn Emery reviewed the document and provided suggestions for improvements. Hornquist Astrand & Zhu Expires January 10, 2008 [Page 14] Internet-Draft PK-INIT algorithm agility July 2007 9. IANA Considerations No IANA considerations. Hornquist Astrand & Zhu Expires January 10, 2008 [Page 15] Internet-Draft PK-INIT algorithm agility July 2007 10. References 10.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC3280] Housley, R., Polk, W., Ford, W., and D. Solo, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3280, April 2002. [RFC3766] Orman, H. and P. Hoffman, "Determining Strengths For Public Keys Used For Exchanging Symmetric Keys", BCP 86, RFC 3766, April 2004. [RFC3852] Housley, R., "Cryptographic Message Syntax (CMS)", RFC 3852, July 2004. [RFC3961] Raeburn, K., "Encryption and Checksum Specifications for Kerberos 5", RFC 3961, February 2005. [RFC4120] Neuman, C., Yu, T., Hartman, S., and K. Raeburn, "The Kerberos Network Authentication Service (V5)", RFC 4120, July 2005. [RFC4556] Zhu, L. and B. Tung, "Public Key Cryptography for Initial Authentication in Kerberos (PKINIT)", RFC 4556, June 2006. [RFC4634] Eastlake, D. and T. Hansen, "US Secure Hash Algorithms (SHA and HMAC-SHA)", July 2006. [SP80056A] Barker, E., Don, D., and M. Smid, "Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography", March 2006. [X680] ITU, "ITU-T Recommendation X.680 (2002) | ISO/IEC 8824- 1:2002, Information technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation". [X690] ITU, "ITU-T Recommendation X.690 (2002) | ISO/IEC 8825- 1:2002, Information technology - ASN.1 encoding Rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)". Hornquist Astrand & Zhu Expires January 10, 2008 [Page 16] Internet-Draft PK-INIT algorithm agility July 2007 10.2. Informative References [RFC1320] Rivest, R., "The MD4 Message-Digest Algorithm", RFC 1320, April 1992. [RFC1321] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, April 1992. [WANG04] Wang, X., Lai, X., Fheg, D., Chen, H., and X. Yu, "Cryptanalysis of Hash functions MD4 and RIPEMD", August 2004. [X9.42] ANSI, "Public Key Cryptography for the Financial Services Industry: Agreement of Symmetric Keys Using Discrete Logarithm Cryptography", 2003. Hornquist Astrand & Zhu Expires January 10, 2008 [Page 17] Internet-Draft PK-INIT algorithm agility July 2007 Appendix A. PKINIT ASN.1 Module KerberosV5-PK-INIT-Agility-SPEC { iso(1) identified-organization(3) dod(6) internet(1) security(5) kerberosV5(2) modules(4) pkinit(5) agility (1) } DEFINITIONS EXPLICIT TAGS ::= BEGIN IMPORTS AlgorithmIdentifier, SubjectPublicKeyInfo FROM PKIX1Explicit88 { iso (1) identified-organization (3) dod (6) internet (1) security (5) mechanisms (5) pkix (7) id-mod (0) id-pkix1-explicit (18) } -- As defined in RFC 3280. Ticket, Int32, Realm, EncryptionKey, Checksum FROM KerberosV5Spec2 { iso(1) identified-organization(3) dod(6) internet(1) security(5) kerberosV5(2) modules(4) krb5spec2(2) } -- as defined in RFC 4120. PKAuthenticator, DHNonce FROM KerberosV5-PK-INIT-SPEC { iso(1) identified-organization(3) dod(6) internet(1) security(5) kerberosV5(2) modules(4) pkinit(5) }; -- as defined in RFC 4556. TD-CMS-DIGEST-ALGORITHMS-DATA ::= SEQUENCE OF AlgorithmIdentifier -- Contains the list of CMS algorithm [RFC3852] -- identifiers that identify the digest algorithms -- acceptable by the KDC for signing CMS data in -- the order of decreasing preference. TD-CERT-DIGEST-ALGORITHMS-DATA ::= SEQUENCE { allowedAlgorithms [0] SEQUENCE OF AlgorithmIdentifier, -- Contains the list of CMS algorithm [RFC3852] -- identifiers that identify the digest algorithms -- that are used by the CA to sign the client's -- X.509 certificate and acceptable by the KDC in -- the process of validating the client's X.509 -- certificate, in the order of decreasing -- preference. rejectedAlgorithm [1] AlgorithmIdentifier OPTIONAL, -- This identifies the digest algorithm that was -- used to sign the client's X.509 certificate and Hornquist Astrand & Zhu Expires January 10, 2008 [Page 18] Internet-Draft PK-INIT algorithm agility July 2007 -- has been rejected by the KDC in the process of -- validating the client's X.509 certificate -- [RFC3280]. ... } PkinitSuppPubInfo ::= SEQUENCE { enctype [0] Int32, -- The enctype of the AS reply key. as-REQ [1] OCTET STRING, -- This contains the AS-REQ in the request. pk-as-rep [2] OCTET STRING, -- Contains the DER encoding of the type -- PA-PK-AS-REP [RFC4556] in the KDC reply. ticket [3] Ticket, -- This is the ticket in the KDC reply. ... } AuthPack ::= SEQUENCE { pkAuthenticator [0] PKAuthenticator, clientPublicValue [1] SubjectPublicKeyInfo OPTIONAL, supportedCMSTypes [2] SEQUENCE OF AlgorithmIdentifier OPTIONAL, clientDHNonce [3] DHNonce OPTIONAL, ..., supportedKDFs [4] SEQUENCE OF KDFAlgorithmId OPTIONAL, -- Contains an unordered set of KDFs supported by the -- client. ... } KDFAlgorithmId ::= SEQUENCE { kdf-id [0] OBJECT IDENTIFIER, -- The object identifier of the KDF ... } DHRepInfo ::= SEQUENCE { dhSignedData [0] IMPLICIT OCTET STRING, serverDHNonce [1] DHNonce OPTIONAL, ..., kdf [2] KDFAlgorithmId OPTIONAL, -- The KDF picked by the KDC. ... } END Hornquist Astrand & Zhu Expires January 10, 2008 [Page 19] Internet-Draft PK-INIT algorithm agility July 2007 Authors' Addresses Love Hornquist Astrand Stockholm University SE-106 91 Stockholm Sweden Email: lha@it.su.se Larry Zhu Microsoft Corporation One Microsoft Way Redmond, WA 98052 US Email: lzhu@microsoft.com Hornquist Astrand & Zhu Expires January 10, 2008 [Page 20] Internet-Draft PK-INIT algorithm agility July 2007 Full Copyright Statement Copyright (C) The IETF Trust (2007). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Acknowledgment Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA). Hornquist Astrand & Zhu Expires January 10, 2008 [Page 21]