4 Internet Engineering Task Force K. Jaganathan
6 Expires: January 9, 2006 J. Brezak
11 The RC4-HMAC Kerberos encryption type
12 draft-jaganathan-rc4-hmac-00.txt
16 By submitting this Internet-Draft, each author represents that any
17 applicable patent or other IPR claims of which he or she is aware
18 have been or will be disclosed, and any of which he or she becomes
19 aware will be disclosed, in accordance with Section 6 of BCP 79.
21 Internet-Drafts are working documents of the Internet Engineering
22 Task Force (IETF), its areas, and its working groups. Note that
23 other groups may also distribute working documents as Internet-
26 Internet-Drafts are draft documents valid for a maximum of six months
27 and may be updated, replaced, or obsoleted by other documents at any
28 time. It is inappropriate to use Internet-Drafts as reference
29 material or to cite them other than as "work in progress."
31 The list of current Internet-Drafts can be accessed at
32 http://www.ietf.org/ietf/1id-abstracts.txt.
34 The list of Internet-Draft Shadow Directories can be accessed at
35 http://www.ietf.org/shadow.html.
37 This Internet-Draft will expire on January 9, 2006.
41 Copyright (C) The Internet Society (2005).
45 The Microsoft Windows 2000 implementation of Kerberos introduces a
46 new encryption type based on the RC4 encryption algorithm and using
47 an MD5 HMAC for checksum. This is offered as an alternative to using
48 the existing DES based encryption types.
50 The RC4-HMAC encryption types are used to ease upgrade of existing
51 Windows NT environments, provide strong crypto (128-bit key lengths),
55 Jaganathan, et al. Expires January 9, 2006 [Page 1]
57 Internet-Draft The RC4-HMAC Kerberos encryption type July 2005
60 and provide exportable (meet United States government export
61 restriction requirements) encryption. This document describes the
62 implementation of those encryption types.
66 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
67 2. Conventions Used in This Document . . . . . . . . . . . . . . 4
68 3. Key Generation . . . . . . . . . . . . . . . . . . . . . . . . 5
69 4. Basic Operations . . . . . . . . . . . . . . . . . . . . . . . 6
70 5. Checksum Types . . . . . . . . . . . . . . . . . . . . . . . . 8
71 6. Encryption Types . . . . . . . . . . . . . . . . . . . . . . . 9
72 7. Key Strength Negotiation . . . . . . . . . . . . . . . . . . . 12
73 8. GSSAPI Kerberos V5 Mechanism Type . . . . . . . . . . . . . . 13
74 8.1 Mechanism Specific Changes . . . . . . . . . . . . . . . . 13
75 8.2 GSSAPI MIC Semantics . . . . . . . . . . . . . . . . . . . 14
76 8.3 GSSAPI WRAP Semantics . . . . . . . . . . . . . . . . . . 16
77 9. Security Considerations . . . . . . . . . . . . . . . . . . . 20
78 10. Normative References . . . . . . . . . . . . . . . . . . . . 20
79 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 20
80 Intellectual Property and Copyright Statements . . . . . . . . 22
111 Jaganathan, et al. Expires January 9, 2006 [Page 2]
113 Internet-Draft The RC4-HMAC Kerberos encryption type July 2005
118 The Microsoft Windows 2000 implementation of Kerberos contains new
119 encryption and checksum types for two reasons: for export reasons
120 early in the development process, 56 bit DES encryption could not be
121 exported, and because upon upgrade from Windows NT 4.0 to Windows
122 2000, accounts will not have the appropriate DES keying material to
123 do the standard DES encryption. Furthermore, 3DES is not available
124 for export, and there was a desire to use a single flavor of
125 encryption in the product for both US and international products.
127 As a result, there are two new encryption types and one new checksum
128 type introduced in Microsoft Windows 2000.
167 Jaganathan, et al. Expires January 9, 2006 [Page 3]
169 Internet-Draft The RC4-HMAC Kerberos encryption type July 2005
172 2. Conventions Used in This Document
174 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
175 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
176 document are to be interpreted as described in [RFC2119].
223 Jaganathan, et al. Expires January 9, 2006 [Page 4]
225 Internet-Draft The RC4-HMAC Kerberos encryption type July 2005
230 On upgrade from existing Windows NT domains, the user accounts would
231 not have a DES based key available to enable the use of DES base
232 encryption types specified in RFC 1510. The key used for RC4-HMAC is
233 the same as the existing Windows NT key (NT Password Hash) for
234 compatibility reasons. Once the account password is changed, the DES
235 based keys are created and maintained. Once the DES keys are
236 available DES based encryption types can be used with Kerberos.
238 The RC4-HMAC String to key function is defined as follow:
242 K = MD4(UNICODE(password))
244 The RC4-HMAC keys are generated by using the Windows UNICODE version
245 of the password. Each Windows UNICODE character is encoded in
246 little-endian format of 2 octets each. Then performing an MD4
247 [RFC1320] hash operation on just the UNICODE characters of the
248 password (not including the terminating zero octets).
250 For an account with a password of "foo", this String2Key("foo") will
253 0xac, 0x8e, 0x65, 0x7f, 0x83, 0xdf, 0x82, 0xbe,
254 0xea, 0x5d, 0x43, 0xbd, 0xaf, 0x78, 0x00, 0xcc
279 Jaganathan, et al. Expires January 9, 2006 [Page 5]
281 Internet-Draft The RC4-HMAC Kerberos encryption type July 2005
286 The MD5 HMAC function is defined in [RFC2104]. It is used in this
287 encryption type for checksum operations. Refer to [RFC2104] for
288 details on its operation. In this document this function is referred
289 to as HMAC(Key, Data) returning the checksum using the specified key
292 The basic MD5 hash operation is used in this encryption type and
293 defined in [RFC1321]. In this document this function is referred to
294 as MD5(Data) returning the checksum of the data.
296 RC4 is a stream cipher licensed by RSA Data Security . In this
297 document the function is referred to as RC4(Key, Data) returning the
298 encrypted data using the specified key on the data.
300 These encryption types use key derivation. With each message, the
301 message type (T) is used as a component of the keying material. This
302 table summarizes the different key derivation values used in the
303 various operations. Note that these differ from the key derivations
304 used in other Kerberos encryption types. T = the message type,
305 encoded as a little-endian four byte integer.
335 Jaganathan, et al. Expires January 9, 2006 [Page 6]
337 Internet-Draft The RC4-HMAC Kerberos encryption type July 2005
340 1. AS-REQ PA-ENC-TIMESTAMP padata timestamp, encrypted with
342 2. AS-REP Ticket and TGS-REP Ticket (includes TGS session key
343 or application session key), encrypted with the service key
345 3. AS-REP encrypted part (includes TGS session key or
346 application session key), encrypted with the client key (T=8)
347 4. TGS-REQ KDC-REQ-BODY AuthorizationData, encrypted with the
348 TGS session key (T=4)
349 5. TGS-REQ KDC-REQ-BODY AuthorizationData, encrypted with the
350 TGS authenticator subkey (T=5)
351 6. TGS-REQ PA-TGS-REQ padata AP-REQ Authenticator cksum,
352 keyed with the TGS session key (T=6)
353 7. TGS-REQ PA-TGS-REQ padata AP-REQ Authenticator (includes
354 TGS authenticator subkey), encrypted with the TGS session key
356 8. TGS-REP encrypted part (includes application session key),
357 encrypted with the TGS session key (T=8)
358 9. TGS-REP encrypted part (includes application session key),
359 encrypted with the TGS authenticator subkey (T=8)
360 10. AP-REQ Authenticator cksum, keyed with the application
362 11. AP-REQ Authenticator (includes application authenticator
363 subkey), encrypted with the application session key (T=11)
364 12. AP-REP encrypted part (includes application session
365 subkey), encrypted with the application session key (T=12)
366 13. KRB-PRIV encrypted part, encrypted with a key chosen by
367 the application. Also for data encrypted with GSS Wrap (T=13)
368 14. KRB-CRED encrypted part, encrypted with a key chosen by
369 the application (T=14)
370 15. KRB-SAFE cksum, keyed with a key chosen by the
371 application. Also for data signed in GSS MIC (T=15)
373 Relative to RFC-1964 key uses:
375 T = 0 in the generation of sequence number for the MIC token
376 T = 0 in the generation of sequence number for the WRAP token
377 T = 0 in the generation of encrypted data for the WRAPPED token
379 All strings in this document are ASCII unless otherwise specified.
380 The lengths of ASCII encoded character strings include the trailing
381 terminator character (0). The concat(a,b,c,...) function will return
382 the logical concatenation (left to right) of the values of the
383 arguments. The nonce(n) function returns a pseudo-random number of
391 Jaganathan, et al. Expires January 9, 2006 [Page 7]
393 Internet-Draft The RC4-HMAC Kerberos encryption type July 2005
398 There is one checksum type used in this encryption type. The
399 Kerberos constant for this type is:
401 #define KERB_CHECKSUM_HMAC_MD5 (-138)
403 The function is defined as follows:
406 T - the message type, encoded as a little-endian four byte integer
410 Ksign = HMAC(K, "signaturekey") //includes zero octet at end
411 tmp = MD5(concat(T, data))
412 CHKSUM = HMAC(Ksign, tmp)
447 Jaganathan, et al. Expires January 9, 2006 [Page 8]
449 Internet-Draft The RC4-HMAC Kerberos encryption type July 2005
454 There are two encryption types used in these encryption types. The
455 Kerberos constants for these types are:
457 #define KERB_ETYPE_RC4_HMAC 23
458 #define KERB_ETYPE_RC4_HMAC_EXP 24
460 The basic encryption function is defined as follow:
462 T = the message type, encoded as a little-endian four byte integer.
464 OCTET L40[14] = "fortybits";
465 OCTET SK = "signaturekey";
467 The header field on the encrypted data in KDC messages is:
469 typedef struct _RC4_MDx_HEADER {
472 } RC4_MDx_HEADER, *PRC4_MDx_HEADER;
475 ENCRYPT (K, export, T, data)
486 *((DWORD *)(L40+10)) = T;
487 HMAC (K, L40, 10 + 4, K1);
494 if (export) memset (K1+7, 0xAB, 9);
496 nonce (edata.Confounder, 8);
497 memcpy (edata.Data, data);
499 edata.Checksum = HMAC (K2, edata);
503 Jaganathan, et al. Expires January 9, 2006 [Page 9]
505 Internet-Draft The RC4-HMAC Kerberos encryption type July 2005
508 K3 = HMAC (K1, edata.Checksum);
510 RC4 (K3, edata.Confounder);
514 DECRYPT (K, export, T, edata)
526 *((DWORD *)(L40+10)) = T;
527 HMAC (K, L40, 14, K1);
534 if (export) memset (K1+7, 0xAB, 9);
536 K3 = HMAC (K1, edata.Checksum);
538 RC4 (K3, edata.Confounder);
539 RC4 (K3, edata.Data);
542 // verify generated and received checksums
543 checksum = HMAC (K2, concat(edata.Confounder, edata.Data));
544 if (checksum != edata.Checksum)
545 printf("CHECKSUM ERROR !!!!!!\n");
548 The KDC message is encrypted using the ENCRYPT function not including
549 the Checksum in the RC4_MDx_HEADER.
551 The character constant "fortybits" evolved from the time when a 40-
552 bit key length was all that was exportable from the United States.
553 It is now used to recognize that the key length is of "exportable"
554 length. In this description, the key size is actually 56-bits.
559 Jaganathan, et al. Expires January 9, 2006 [Page 10]
561 Internet-Draft The RC4-HMAC Kerberos encryption type July 2005
564 The pseudo-random operation [RFC3961] for both enctypes above is
567 pseudo-random(K, S) = HMAC-SHA1(K, S)
569 where K is the protocol key and S is the input octet string. HMAC-
570 SHA1 is defined in [RFC2104] and the output of HMAC-SHA1 is the 20-
615 Jaganathan, et al. Expires January 9, 2006 [Page 11]
617 Internet-Draft The RC4-HMAC Kerberos encryption type July 2005
620 7. Key Strength Negotiation
622 A Kerberos client and server can negotiate over key length if they
623 are using mutual authentication. If the client is unable to perform
624 full strength encryption, it may propose a key in the "subkey" field
625 of the authenticator, using a weaker encryption type. The server
626 must then either return the same key or suggest its own key in the
627 subkey field of the AP reply message. The key used to encrypt data
628 is derived from the key returned by the server. If the client is
629 able to perform strong encryption but the server is not, it may
630 propose a subkey in the AP reply without first being sent a subkey in
671 Jaganathan, et al. Expires January 9, 2006 [Page 12]
673 Internet-Draft The RC4-HMAC Kerberos encryption type July 2005
676 8. GSSAPI Kerberos V5 Mechanism Type
678 8.1 Mechanism Specific Changes
680 The GSSAPI per-message tokens also require new checksum and
681 encryption types. The GSS-API per-message tokens are adapted to
682 support these new encryption types. See [RFC1964] Section 1.2.2.
684 The only support quality of protection is:
686 #define GSS_KRB5_INTEG_C_QOP_DEFAULT 0x0
688 When using this RC4 based encryption type, the sequence number is
689 always sent in big-endian rather than little-endian order.
691 The Windows 2000 implementation also defines new GSSAPI flags in the
692 initial token passed when initializing a security context. These
693 flags are passed in the checksum field of the authenticator. See
694 [RFC1964] Section 1.1.1.
696 GSS_C_DCE_STYLE - This flag was added for use with Microsoft's
697 implementation of DCE RPC, which initially expected three legs of
698 authentication. Setting this flag causes an extra AP reply to be
699 sent from the client back to the server after receiving the server's
700 AP reply. In addition, the context negotiation tokens do not have
701 GSSAPI per message tokens - they are raw AP messages that do not
702 include object identifiers.
704 #define GSS_C_DCE_STYLE 0x1000
706 GSS_C_IDENTIFY_FLAG - This flag allows the client to indicate to the
707 server that it should only allow the server application to identify
708 the client by name and ID, but not to impersonate the client.
710 #define GSS_C_IDENTIFY_FLAG 0x2000
712 GSS_C_EXTENDED_ERROR_FLAG - Setting this flag indicates that the
713 client wants to be informed of extended error information. In
714 particular, Windows 2000 status codes may be returned in the data
715 field of a Kerberos error message. This allows the client to
716 understand a server failure more precisely. In addition, the server
717 may return errors to the client that are normally handled at the
718 application layer in the server, in order to let the client try to
719 recover. After receiving an error message, the client may attempt to
720 resubmit an AP request.
722 #define GSS_C_EXTENDED_ERROR_FLAG 0x4000
727 Jaganathan, et al. Expires January 9, 2006 [Page 13]
729 Internet-Draft The RC4-HMAC Kerberos encryption type July 2005
732 These flags are only used if a client is aware of these conventions
733 when using the SSPI on the Windows platform; they are not generally
736 When NetBIOS addresses are used in the GSSAPI, they are identified by
737 the GSS_C_AF_NETBIOS value. This value is defined as:
739 #define GSS_C_AF_NETBIOS 0x14
741 NetBios addresses are 16-octet addresses typically composed of 1 to
742 15 characters, trailing blank (ASCII char 20) filled, with a 16-th
745 8.2 GSSAPI MIC Semantics
747 The GSSAPI checksum type and algorithm is defined in Section 5. Only
748 the first 8 octets of the checksum are used. The resulting checksum
749 is stored in the SGN_CKSUM field . See [RFC1964] Section 1.2 for
750 GSS_GetMIC() and GSS_Wrap(conf_flag=FALSE).
752 The GSS_GetMIC token has the following format:
754 Byte no Name Description
755 0..1 TOK_ID Identification field.
756 Tokens emitted by GSS_GetMIC() contain
757 the hex value 01 01 in this field.
758 2..3 SGN_ALG Integrity algorithm indicator.
760 4..7 Filler Contains ff ff ff ff
761 8..15 SND_SEQ Sequence number field.
762 16..23 SGN_CKSUM Checksum of "to-be-signed data",
763 calculated according to algorithm
764 specified in SGN_ALG field.
766 The MIC mechanism used for GSS MIC based messages is as follow:
768 GetMIC(Kss, direction, export, seq_num, data)
783 Jaganathan, et al. Expires January 9, 2006 [Page 14]
785 Internet-Draft The RC4-HMAC Kerberos encryption type July 2005
788 Token.TOK_ID = 01 01;
789 Token.SGN_SLG = 11 00;
790 Token.Filler = ff ff ff ff;
792 // Create the sequence number
794 if (direction == sender_is_initiator)
796 memset(Token.SEND_SEQ+4, 0xff, 4)
798 else if (direction == sender_is_acceptor)
800 memset(Token.SEND_SEQ+4, 0, 4)
802 Token.SEND_SEQ[0] = (seq_num & 0xff000000) >> 24;
803 Token.SEND_SEQ[1] = (seq_num & 0x00ff0000) >> 16;
804 Token.SEND_SEQ[2] = (seq_num & 0x0000ff00) >> 8;
805 Token.SEND_SEQ[3] = (seq_num & 0x000000ff);
807 // Derive signing key from session key
809 Ksign = HMAC(Kss, "signaturekey");
810 // length includes terminating null
812 // Generate checksum of message - SGN_CKSUM
813 // Key derivation salt = 15
815 Sgn_Cksum = MD5((int32)15, Token.Header, data);
817 // Save first 8 octets of HMAC Sgn_Cksum
819 Sgn_Cksum = HMAC(Ksign, Sgn_Cksum);
820 memcpy(Token.SGN_CKSUM, Sgn_Cksum, 8);
822 // Encrypt the sequence number
824 // Derive encryption key for the sequence number
825 // Key derivation salt = 0
829 Kseq = HMAC(Kss, "fortybits", (int32)0);
830 // len includes terminating null
831 memset(Kseq+7, 0xab, 7)
835 Kseq = HMAC(Kss, (int32)0);
839 Jaganathan, et al. Expires January 9, 2006 [Page 15]
841 Internet-Draft The RC4-HMAC Kerberos encryption type July 2005
845 Kseq = HMAC(Kseq, Token.SGN_CKSUM);
847 // Encrypt the sequence number
849 RC4(Kseq, Token.SND_SEQ);
853 8.3 GSSAPI WRAP Semantics
855 There are two encryption keys for GSSAPI message tokens, one that is
856 128 bits in strength, and one that is 56 bits in strength as defined
859 All padding is rounded up to 1 byte. One byte is needed to say that
860 there is 1 byte of padding. The DES based mechanism type uses 8 byte
861 padding. See [RFC1964] Section 1.2.2.3.
863 The RC4-HMAC GSS_Wrap() token has the following format:
866 Byte no Name Description
867 0..1 TOK_ID Identification field.
868 Tokens emitted by GSS_Wrap() contain
869 the hex value 02 01 in this field.
870 2..3 SGN_ALG Checksum algorithm indicator.
872 4..5 SEAL_ALG ff ff - none
875 6..7 Filler Contains ff ff
876 8..15 SND_SEQ Encrypted sequence number field.
877 16..23 SGN_CKSUM Checksum of plaintext padded data,
878 calculated according to algorithm
879 specified in SGN_ALG field.
880 24..31 Confounder Random confounder
881 32..last Data encrypted or plaintext padded data
883 The encryption mechanism used for GSS wrap based messages is as
887 WRAP(Kss, encrypt, direction, export, seq_num, data)
889 struct Token { // 32 octets
895 Jaganathan, et al. Expires January 9, 2006 [Page 16]
897 Internet-Draft The RC4-HMAC Kerberos encryption type July 2005
910 Token.TOK_ID = 02 01;
911 Token.SGN_SLG = 11 00;
912 Token.SEAL_ALG = (no_encrypt)? ff ff : 10 00;
913 Token.Filler = ff ff;
915 // Create the sequence number
917 if (direction == sender_is_initiator)
919 memset(&Token.SEND_SEQ[4], 0xff, 4)
921 else if (direction == sender_is_acceptor)
923 memset(&Token.SEND_SEQ[4], 0, 4)
925 Token.SEND_SEQ[0] = (seq_num & 0xff000000) >> 24;
926 Token.SEND_SEQ[1] = (seq_num & 0x00ff0000) >> 16;
927 Token.SEND_SEQ[2] = (seq_num & 0x0000ff00) >> 8;
928 Token.SEND_SEQ[3] = (seq_num & 0x000000ff);
930 // Generate random confounder
932 nonce(&Token.Confounder, 8);
934 // Derive signing key from session key
936 Ksign = HMAC(Kss, "signaturekey");
938 // Generate checksum of message -
939 // SGN_CKSUM + Token.Confounder
940 // Key derivation salt = 15
942 Sgn_Cksum = MD5((int32)15, Token.Header,
945 // Derive encryption key for data
946 // Key derivation salt = 0
951 Jaganathan, et al. Expires January 9, 2006 [Page 17]
953 Internet-Draft The RC4-HMAC Kerberos encryption type July 2005
956 for (i = 0; i < 16; i++) Klocal[i] = Kss[i] ^ 0xF0;
960 Kcrypt = HMAC(Klocal, "fortybits", (int32)0);
961 // len includes terminating null
962 memset(Kcrypt+7, 0xab, 7);
966 Kcrypt = HMAC(Klocal, (int32)0);
969 // new encryption key salted with seq
971 Kcrypt = HMAC(Kcrypt, (int32)seq);
973 // Encrypt confounder (if encrypting)
976 RC4(Kcrypt, Token.Confounder);
978 // Sum the data buffer
980 Sgn_Cksum += MD5(data); // Append to checksum
982 // Encrypt the data (if encrypting)
987 // Save first 8 octets of HMAC Sgn_Cksum
989 Sgn_Cksum = HMAC(Ksign, Sgn_Cksum);
990 memcpy(Token.SGN_CKSUM, Sgn_Cksum, 8);
992 // Derive encryption key for the sequence number
993 // Key derivation salt = 0
997 Kseq = HMAC(Kss, "fortybits", (int32)0);
998 // len includes terminating null
999 memset(Kseq+7, 0xab, 7)
1003 Kseq = HMAC(Kss, (int32)0);
1007 Jaganathan, et al. Expires January 9, 2006 [Page 18]
1009 Internet-Draft The RC4-HMAC Kerberos encryption type July 2005
1013 Kseq = HMAC(Kseq, Token.SGN_CKSUM);
1015 // Encrypt the sequence number
1017 RC4(Kseq, Token.SND_SEQ);
1019 // Encrypted message = Token + Data
1022 The character constant "fortybits" evolved from the time when a 40-
1023 bit key length was all that was exportable from the United States.
1024 It is now used to recognize that the key length is of "exportable"
1025 length. In this description, the key size is actually 56-bits.
1063 Jaganathan, et al. Expires January 9, 2006 [Page 19]
1065 Internet-Draft The RC4-HMAC Kerberos encryption type July 2005
1068 9. Security Considerations
1070 Care must be taken in implementing this encryption type because it
1071 uses a stream cipher. If a different IV isn't used in each direction
1072 when using a session key, the encryption is weak. By using the
1073 sequence number as an IV, this is avoided.
1075 10. Normative References
1077 [RFC1320] Rivest, R., "The MD4 Message-Digest Algorithm", RFC 1320,
1080 [RFC1321] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321,
1083 [RFC1510] Kohl, J. and B. Neuman, "The Kerberos Network
1084 Authentication Service (V5)", RFC 1510, September 1993.
1086 [RFC1964] Linn, J., "The Kerberos Version 5 GSS-API Mechanism",
1087 RFC 1964, June 1996.
1089 [RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed-
1090 Hashing for Message Authentication", RFC 2104,
1093 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
1094 Requirement Levels", BCP 14, RFC 2119, March 1997.
1096 [RFC3961] Raeburn, K., "Encryption and Checksum Specifications for
1097 Kerberos 5", RFC 3961, February 2005.
1103 Microsoft Corporation
1108 Email: karthikj@microsoft.com
1119 Jaganathan, et al. Expires January 9, 2006 [Page 20]
1121 Internet-Draft The RC4-HMAC Kerberos encryption type July 2005
1125 Microsoft Corporation
1130 Email: lzhu@microsoft.com
1134 Microsoft Corporation
1139 Email: jbrezak@microsoft.com
1175 Jaganathan, et al. Expires January 9, 2006 [Page 21]
1177 Internet-Draft The RC4-HMAC Kerberos encryption type July 2005
1180 Intellectual Property Statement
1182 The IETF takes no position regarding the validity or scope of any
1183 Intellectual Property Rights or other rights that might be claimed to
1184 pertain to the implementation or use of the technology described in
1185 this document or the extent to which any license under such rights
1186 might or might not be available; nor does it represent that it has
1187 made any independent effort to identify any such rights. Information
1188 on the procedures with respect to rights in RFC documents can be
1189 found in BCP 78 and BCP 79.
1191 Copies of IPR disclosures made to the IETF Secretariat and any
1192 assurances of licenses to be made available, or the result of an
1193 attempt made to obtain a general license or permission for the use of
1194 such proprietary rights by implementers or users of this
1195 specification can be obtained from the IETF on-line IPR repository at
1196 http://www.ietf.org/ipr.
1198 The IETF invites any interested party to bring to its attention any
1199 copyrights, patents or patent applications, or other proprietary
1200 rights that may cover technology that may be required to implement
1201 this standard. Please address the information to the IETF at
1205 Disclaimer of Validity
1207 This document and the information contained herein are provided on an
1208 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
1209 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
1210 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
1211 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
1212 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
1213 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
1218 Copyright (C) The Internet Society (2005). This document is subject
1219 to the rights, licenses and restrictions contained in BCP 78, and
1220 except as set forth therein, the authors retain all their rights.
1225 Funding for the RFC Editor function is currently provided by the
1231 Jaganathan, et al. Expires January 9, 2006 [Page 22]