NETWORK WORKING GROUP L. Zhu Internet-Draft Microsoft Corporation Updates: 4120 (if approved) March 3, 2007 Intended status: Standards Track Expires: September 4, 2007 Additional Kerberos Naming Constraints draft-ietf-krb-wg-naming-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 September 4, 2007. Copyright Notice Copyright (C) The IETF Trust (2007). Abstract This document defines new naming constraints for well-known Kerberos principal name and well-known Kerberos realm names. Zhu Expires September 4, 2007 [Page 1] Internet-Draft Kerberos Naming March 2007 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Conventions Used in This Document . . . . . . . . . . . . . . . 3 3. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3.1. Well-known Kerberos Principal Names . . . . . . . . . . . . 3 3.2. Well-known Kerberos Realm Names . . . . . . . . . . . . . . 4 4. Security Considerations . . . . . . . . . . . . . . . . . . . . 5 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 5 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 7.1. Normative References . . . . . . . . . . . . . . . . . . . 6 7.2. Informative References . . . . . . . . . . . . . . . . . . 6 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 6 Intellectual Property and Copyright Statements . . . . . . . . . . 7 Zhu Expires September 4, 2007 [Page 2] Internet-Draft Kerberos Naming March 2007 1. Introduction Occasionally protocol designers need to designate a Kerberos principal name or a Kerberos realm name to have special meanings, other than identifying a particular instance. An example is that the the anonymous principal name and the anonymous realm name are defined for the Kerberos anonymity support [ANON]. This anonymity name pair conveys no more meaning than that the client's identity is not disclosed. In the case of the anonymity support, it is critical that deployed Kerberos implementations that do not support anonymity MUST fail the authentication if the anonymity name pair is used, therefore no access is granted accidentally to a principal who's name happens to match with that of the anonymous identity. However Kerberos as defined in [RFC4120] does not have such reserved names. As such, protocol designers have resolved to use exceedingly- unlikely-to-have-been-used names to avoid collision. Even if a registry were setup to avoid collision for new implementations, there is no guarantee for deployed implementations to prevent accidental reuse of names that can lead to access being granted unexpectedly. The Kerberos realm name in [RFC4120] has a reserved name space although no specific name is defined and the criticality of unknown reserved realm names is not specified. This document is to remedy these by defining well-known Kerberos names and the protocol behavior when a well-known name is used but not supported. 2. Conventions Used in This Document 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]. 3. Definitions In this section, well-known names are defined for both the Kerberos principal name and the Kerberos realm name. 3.1. Well-known Kerberos Principal Names A new name type KRB_NT_WELLKNOWN is defined for well-known principal names. The Kerberos principal name is defined in Section 6.2 of [RFC4120]. Zhu Expires September 4, 2007 [Page 3] Internet-Draft Kerberos Naming March 2007 KRB_NT_WELLKNOWN 11 A well-known principal name MUST have at least two or more KerberosString components, and the first component must be the string literal "WELLKNOWN". If a well-known principal name is used as the client principal name or the server principal name but not supported, the Authentication Service (AS) [RFC4120] and the application server MUST reject the authentication attempt. Similarly, the Ticket Granting Service (TGS) [RFC4120] MAY reject the authentication attempt if a well-known principal name is used as the client principal name but not supported, and SHOULD reject the authentication attempt is a well- known principal name is used as the server principal name but not supported. Unless otherwise specified, if a well-known principal name is used but not supported in any other places of Kerberos messages, authentication MUST fail. The error code is KRB_AP_ERR_PRINCIPAL_UNKNOWN, and there is no accompanying error data defined in this document for this error. KRB_AP_ERR_PRINCIPAL_UNKNOWN 82 -- A well-known Kerberos principal name is used but not -- supported. 3.2. Well-known Kerberos Realm Names Section 6.1 of [RFC4120] defines the "other" style realm name, a new realm type WELLKNOWN is defined as a name of type "other", with the NAMETYPE part filled in with the string literal "WELLKNOWN". other: WELLKNOWN:realm-name This name type is designated for well-known Kerberos realms. The AS and the application server MUST reject the authentication attempt if a well-known realm name is used as the client realm or the server realm but not supported. The TGS [RFC4120] MAY reject the authentication attempt if a well-known realm name is used as the client realm but not supported, and SHOULD reject the authentication attempt is a well-known realm name is used as the server realm but not supported. Unless otherwise specified, if a well-known realm name is used but not supported in any other places of Kerberos messages, authentication MUST fail. The error code is KRB_AP_ERR_REALM_UNKNOWN, and there is no accompanying error data defined in this document for this error. KRB_AP_ERR_REALM_UNKNOWN 83 -- A well-known Kerberos realm name is used but not Zhu Expires September 4, 2007 [Page 4] Internet-Draft Kerberos Naming March 2007 -- supported. Unless otherwise specified, all principal names involving a well- known realm name are reserved, and if a reserved principal name is used but not supported, authentication MUST fail with the code KRB_AP_ERR_PRINCIPAL_RESERVED. KRB_AP_ERR_PRINCIPAL_RESERVED 84 -- A reserved Kerberos principal name is used but not -- supported. There is no accompanying error data defined in this document for this error. According to Section 3.3.3.2 of [RFC4120], the TGS MUST add the name of the previous realm into the transited field of the returned ticket. Typically well-known realms are defined to carry special meanings, and they are not used to refer to intermediate realms in the client's authentication path. Consequently, unless otherwise specified, a well-known Kerberos realm name MUST NOT be present in the transited field [RFC4120] of a ticket. Aside from the hierarchical meaning of a null subfield, the DOMAIN-X500-COMPRESS encoding for transited realms [RFC4120] treats realm names as strings, although it is optimized for domain style and X.500 realm names, hence the DOMAIN-X500-COMPRESS encoding can be used when the client realm or the server realm is reserved or when a reserved realm is in the transited field. However, if the client's realm is a well- known realm, the abbreviation forms [RFC4120] that build on the preceding name cannot be used at the start of the transited encoding. The null-subfield form (e.g., encoding ending with ",") [RFC4120] could not be used next to a well-known realm, including potentially at the beginning and end where the client and server realm names, respectively, are filled in. 4. Security Considerations If a well-known name is not supported, authentication MUST fail. Otherwise, access can be granted unintentionally, resulting in a security weakness. Care MUST be taken to avoid accidental reuse of names. 5. Acknowledgements The initial document was mostly based on the author's conversation with Clifford Newman and Sam Hartman. Zhu Expires September 4, 2007 [Page 5] Internet-Draft Kerberos Naming March 2007 Jeffery Hutzelman and Ken Raeburn provided helpful commments for improvements based on early revisions of this document. 6. IANA Considerations This document provides the framework for defining well-known Kerberos names and Kerberos realms. A new IANA registry should be created to contain well-known Kerberos names and Kerberos realms that are defined based on this document. The evaluation policy is "Specification Required". 7. References 7.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC4120] Neuman, C., Yu, T., Hartman, S., and K. Raeburn, "The Kerberos Network Authentication Service (V5)", RFC 4120, July 2005. 7.2. Informative References [ANON] Zhu, L., Leach, P. and K. Jaganathan, "Kerberos Anonymity Support", draft-ietf-krb-wg-anon, work in progress. Author's Address Larry Zhu Microsoft Corporation One Microsoft Way Redmond, WA 98052 US Email: lzhu@microsoft.com Zhu Expires September 4, 2007 [Page 6] Internet-Draft Kerberos Naming March 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). Zhu Expires September 4, 2007 [Page 7]