One document matched: draft-ietf-krb-wg-naming-06.xml


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
    <!ENTITY RFC2119 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>

    <!ENTITY RFC4120 PUBLIC '' 
      'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4120.xml'>

    <!ENTITY RFC1964 PUBLIC '' 
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.1964.xml'>

    <!ENTITY RFC2743 PUBLIC '' 
  'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2743.xml'>
]>

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes" ?>
<?rfc iprnotified="no" ?>
<?rfc strict="yes" ?>
<?rfc compact="yes"?>

<rfc ipr='full3978' updates="4120" category="std" docName="draft-ietf-krb-wg-naming-06">

<front><title abbrev="Kerberos Naming">Additional Kerberos Naming Constraints</title>

<author initials="L." surname="Zhu" fullname="Larry Zhu">
<organization>Microsoft Corporation</organization>
<address><postal>
<street>One Microsoft Way</street>
<city>Redmond</city>
<region>WA</region>
<code>98052</code>
<country>US</country>
</postal>
<email>lzhu@microsoft.com</email></address>
</author>

<date year="2008"></date>

<area>Security</area><workgroup>NETWORK WORKING GROUP</workgroup>

<keyword>Internet-Draft</keyword>

<abstract>

<t> This document defines new naming constraints for well-known Kerberos principal name 
and well-known Kerberos realm names.</t>

</abstract>

</front><middle>
            
<section anchor="introduction" title="Introduction">

<t>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 <xref target="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.</t>


    <t> However Kerberos as defined in <xref target="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.</t>

    <t> The Kerberos realm name in <xref target="RFC4120"/> has a reserved name space although no specific name is defined and the criticality
    of unknown reserved realm names is not specified.</t>

    <t>This document is to remedy these issues by defining well-known Kerberos names and the 
    protocol behavior when a well-known name is used but not supported.</t>

</section>

<section title="Conventions Used in This Document" toc="default">

<t>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 <xref
        target="RFC2119" pageno="false" format="default"></xref>.</t>

</section>

<section anchor="defs" title="Definitions" toc="default">

   <t> In this section, well-known names are defined for both the Kerberos principal name and the Kerberos realm name.</t>

   <section anchor="pn" title="Well-known Kerberos Principal Names" toc="default">

       <t> 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 <xref target="RFC4120"/>.</t>

<figure>
    <artwork>
         KRB_NT_WELLKNOWN                  11           
    </artwork>
</figure>

       <t>A well-known principal name MUST have at least 
       two or more KerberosString components, and the first component must be the string literal "WELLKNOWN".</t>

       <t>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)  <xref target="RFC4120"/> and the application server MUST reject the authentication attempt.
Similarly, the Ticket Granting Service (TGS) <xref target="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 if 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.</t>

<figure>
 <artwork>
         KRB_AP_ERR_PRINCIPAL_UNKNOWN      82
              -- A well-known Kerberos principal name is used but not
              -- supported.
 </artwork>
</figure>


   </section>

   <section title="Well-known Kerberos Realm Names" toc="default">

    <t>Section 6.1 of <xref target="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".</t>                                                                   
<figure>
 <artwork>
         other: WELLKNOWN:realm-name           
 </artwork>
</figure>

     <t>This name type is designated for well-known Kerberos realms.</t>

    <t>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 <xref target="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 if 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.</t>

    <figure>
<artwork>
         KRB_AP_ERR_REALM_UNKNOWN          83
              -- A well-known Kerberos realm name is used but not 
              -- supported.
</artwork>
</figure>

    <t>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, and if the authentication is rejected, the error code MUST be
    KRB_AP_ERR_PRINCIPAL_RESERVED.</t>

<figure>
 <artwork>
         KRB_AP_ERR_PRINCIPAL_RESERVED     84
              -- A reserved Kerberos principal name is used but not 
              -- supported.
 </artwork>
</figure>

<t>There is no accompanying error data defined in this document for this error.</t>

    <t> According to Section 3.3.3.2 of <xref target="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, the TGS MUST NOT encode a well-known Kerberos realm name into the transited field <xref target="RFC4120"/> of a ticket, 
and parties checking the transited realm path MUST reject a transited realm path that includes a well known realm.  
In the case of KDCs checking the transited realm path, this means that the transited policy checked flag MUST NOT be set in the resulting ticket.
Aside from the hierarchical meaning of a null subfield, the DOMAIN-X500-COMPRESS encoding for transited realms <xref target="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 <xref target="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 ",") <xref target="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.
</t>

   </section>

</section>

 <section anchor="securityconsideration" title="Security Considerations" toc="default">

<t>It is possible to have name collision with well-known names because Kerberos as defined in <xref target="RFC4120"/> does not reserve
names that have special meanings, consequently care MUST be taken to avoid accidental reuse of names. 
If a well-known name is not supported, authentication MUST fail as specified in <xref target="defs"/>. Otherwise, access can be granted unintentionally, 
resulting in a security weakness. Consider for example, a KDC that supports this specification but not the anonymous authentication described in <xref target="ANON"/>.  
Assume further that the KDC allows a principal to be created named identically to the anonymous principal.  
If that principal were created and given access to resources, then anonymous users might inadvertently gain access to those resources 
if the KDC supports anonymous authentication at some future time.  Similar issues may occur with other well-known names.  
By requiring KDCs reject authentication with unknown well-known names, we minimize these concerns.
</t>

<t>If a well-known name was created before the KDC is updated to conform to this specification, it SHOULD be renamed. The provisioning code that manages account creation MUST be updated to disallow
creation of principals with unsupported well-known names.</t>
</section>                                                                                  

<section title="Acknowledgements">

<t>The initial document was mostly based on the author's conversation with Clifford Newman and Sam Hartman.</t>
<t>Jeffery Hutzelman, Ken Raeburn, and Stephen Hanna provided helpful suggestions for improvements to early revisions of this document.</t>

</section>

<section title="IANA Considerations">

    <t> 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".</t>


</section>

</middle>

<back>

<references title="Normative References">&RFC2119;&RFC4120;
</references>

<references title="Informative References">

<reference anchor='ANON'>

    <front>

    <title>Kerberos Anonymity Support</title>


    <author initials='K.' surname='Raeburn' fullname='Kenneth
    Raeburn'>
        <organization>Massachusetts Institute of Technology</organization>
    </author>    

    <date year='2004' month='December'/>
    </front>
 </reference>

</references>


</back>
</rfc>


PAFTECH AB 2003-20262026-04-23 16:48:42