Text (Re: Proposed updates for domain-based drafts)

Nicolas Williams <Nicolas.Williams@sun.com> Thu, 31 August 2006 17:13 UTC

Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1GIq6U-0001Tp-5y; Thu, 31 Aug 2006 13:13:22 -0400
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1GIq6S-0001K1-G1 for kitten@ietf.org; Thu, 31 Aug 2006 13:13:20 -0400
Received: from nwkea-mail-2.sun.com ([192.18.42.14]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1GIq6P-0002y2-Py for kitten@ietf.org; Thu, 31 Aug 2006 13:13:20 -0400
Received: from centralmail4brm.central.Sun.COM ([129.147.62.198]) by nwkea-mail-2.sun.com (8.13.6+Sun/8.12.9) with ESMTP id k7VHDGml011274 for <kitten@ietf.org>; Thu, 31 Aug 2006 10:13:17 -0700 (PDT)
Received: from binky.Central.Sun.COM (binky.Central.Sun.COM [129.153.128.104]) by centralmail4brm.central.Sun.COM (8.13.6+Sun/8.13.6/ENSMAIL, v2.2) with ESMTP id k7VHDBJ1018190 for <kitten@ietf.org>; Thu, 31 Aug 2006 11:13:16 -0600 (MDT)
Received: from binky.Central.Sun.COM (localhost [127.0.0.1]) by binky.Central.Sun.COM (8.13.6+Sun/8.13.6) with ESMTP id k7VHCe6a029078; Thu, 31 Aug 2006 12:12:45 -0500 (CDT)
Received: (from nw141292@localhost) by binky.Central.Sun.COM (8.13.6+Sun/8.13.6/Submit) id k7VHCe2k029077; Thu, 31 Aug 2006 12:12:40 -0500 (CDT)
Date: Thu, 31 Aug 2006 12:12:40 -0500
From: Nicolas Williams <Nicolas.Williams@sun.com>
To: kitten@ietf.org, ietf-sasl@imc.org, ietf-krb-wg@anl.gov
Message-ID: <20060831171239.GB29007@binky.Central.Sun.COM>
Mail-Followup-To: kitten@ietf.org, ietf-sasl@imc.org, ietf-krb-wg@anl.gov
References: <20060829205723.GM10458@binky.Central.Sun.COM>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <20060829205723.GM10458@binky.Central.Sun.COM>
User-Agent: Mutt/1.5.7i
X-Spam-Score: 0.0 (/)
X-Scan-Signature: cdeeb24e6b743a852c396a4af0e53c8f
Cc:
Subject: Text (Re: Proposed updates for domain-based drafts)
X-BeenThere: kitten@lists.ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Common Authentication Technologies - Next Generation <kitten.lists.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/kitten>, <mailto:kitten-request@lists.ietf.org?subject=unsubscribe>
List-Archive: <http://www1.ietf.org/pipermail/kitten>
List-Post: <mailto:kitten@lists.ietf.org>
List-Help: <mailto:kitten-request@lists.ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/kitten>, <mailto:kitten-request@lists.ietf.org?subject=subscribe>
Errors-To: kitten-bounces@lists.ietf.org

Proposed changes to draft-ietf-kitten-gssapi-domain-based-names-02.txt
below.

The changes amount to:

 - recast the purpose of domain-based names, namely: protecting
   applicationst that use insecure server discovery

 - clarify that the meaning of "domain" here is application specific

 - Provide non-normative examples

 - Add references

Comments?


 Abstract
 
    This document describes domainname-based service principal names and
    the corresponding name type for the Generic Security Service
    Application Programming Interface (GSS-API).
 
    Domain-based service names are similar to host-based service names,
    but using a domain name (not necessarily an Internet domain name)
    instead of or in addition to a hostname.  The primary purpose of
-   domain-based service names is to provide a way to name clustered
-   services after the domain which they service, thereby allowing their
-   clients to authorize the service's servers based on authentication of
-   their names.
+   domain-based names is to provide a measure of protection to
+   applications that utilize insecure service discovery protocols.  This
+   is achieved by providing a way to name clustered services after the
+   domain which they service, thereby allowing their clients to
+   authorize the service's servers based on authentication of their
+   service names.
 
 
 Table of Contents
 
    1.    Conventions used in this document  . . . . . . . . . . . . .  3
    2.    Introduction . . . . . . . . . . . . . . . . . . . . . . . .  4
    3.    Name Type OID and Symbolic Name  . . . . . . . . . . . . . .  5
    4.    Query and Display Syntaxes . . . . . . . . . . . . . . . . .  6
-   5.    Examples . . . . . . . . . . . . . . . . . . . . . . . . . .  7
+   4.1.  Examples of domain-based names . . . . . . . . . . . . . . .  6
+   5.    Application protocol examples  . . . . . . . . . . . . . . .  7
+   5.1.  NFSv4 domain-wide namespace root server discovery  . . . . .  7
+   5.2.  LDAP server discovery  . . . . . . . . . . . . . . . . . . .  7
    6.    Security Considerations  . . . . . . . . . . . . . . . . . .  8
    7.    References . . . . . . . . . . . . . . . . . . . . . . . . .  9
    7.1.  Normative  . . . . . . . . . . . . . . . . . . . . . . . . .  9
    7.2.  Informative  . . . . . . . . . . . . . . . . . . . . . . . .  9
          Author's Address . . . . . . . . . . . . . . . . . . . . . . 10
          Intellectual Property and Copyright Statements . . . . . . . 11
 
[...]

 2.  Introduction
 
-   The use of hostbased principal names for domain-wide services
-   presents the problem of how to distinguish between an instance of a
-   hostbased service that is authorized to respond for a domain and one
-   that isn't.
+   Some applications need to discover the names of servers for a
+   specific resource.  Some common methods for server discovery are
+   insecure, e.g., queries for DNS [RFC1035] SRV resource records
+   [RFC2782] without using DNSSEC [RFC4033] and subject to attacks
+   whereby a client can be re-directed to incorrect and possibly
+   malicious servers.  A client may even be re-directed to a server that
+   has credentials for itself and may thus authenticate itself to the
+   client, and yet it could be incorrect or malicious (because it has
+   been compromised, say).
 
-   Consider LDAP.  LDAP [RFC3377] with SASL [RFC2222] and the Kerberos V
-   mechanism [RFC1964] for the GSS-API [RFC2743] uses a hostbased
-   principal with a service name of "ldap", a reasonable approach,
-   provided there is only one logical LDAP directory in a Kerberos
-   realm's domain, and that all ldap servers in that realm serve that
-   one LDAP directory.  An network might have multiple, distinct LDAP
-   services, but only one LDAP "name service"; if so then clients could
-   not tell which LDAP service principals are authorized to serve which
-   directory, not without assuming a secure method for finding LDAP
-   servers (e.g., DNSSEC).  This is a significant, and oft-unstated
-   restriction on users of LDAP.
+   Domain-based names allow for GSS-API [RFC2743] initiator applications
+   (clients) to authorize acceptor principals (servers) to serve the
+   resource for which the client used insecure server discovery without
+   either securing the server discovery method nor requiring an
+   additional protocol for server authorization -- either a discovered
+   server has credentials for authenticating the domain-based service
+   names that it is intended to respond to, or it does not.
+   Availability of valid credentials for authenticating domain-based
+   names embodies the authorization of a given server to a domain-wide
+   service.
 
-   Domain based names can eliminate this problem: the use of domain-
-   based names should imply that the given host is a server for the
-   official LDAP name service of the given domain.
-
-   Notwithstanding the LDAP example the use of domain-based principal
-   names for LDAP is not actually specified here and will be specified
-   in a separate document.
-
    A domain-based name consists of three required elements:
 
    o  a service name
 
    o  a domain name
 
    o  a hostname
 
+   For the purposes of domain-based names a "domain" is defined by the
+   applications that use domain-based names.  An application protocol
+   might use a simple DNS domainname, such as "example.com" for naming,
+   while another it might use the DNS domainname of the SRV RRs it
+   queries (e.g., "_tcp._foo.example.com"), and yet another may use
+   something that does not resemble a DNS domainname.  Application
+   protocol specifications that provide for use of domain-based service
+   names MUST define the domain-portion of their domain-based names.
 
[...] 

 4.  Query and Display Syntaxes
 
    There is a single name syntax for domain-based names.
 
    The syntax is:
 
       domain-based-name :=
 
-         | <service> '@' <domain> '@' <hostname>
+         <service> '@' <domain> '@' <hostname>
 
-   Note that for Internet domain names the trailing '.' is not and MUST
-   NOT be included in the domain name (or hostname) parts of the display
-   form GSS-API domain-based MNs.
+   Note that for Internet domain names the trailing '.'  MUST NOT be
+   included in the hostname part of the display form GSS-API domain-
+   based MNs; hostnames MUST NOT contain '@'.
 
+4.1.  Examples of domain-based names
 
+   These examples are not normative:
 
+   o  ldap@example.tld@ds1.example.tld
 
+   o  nfs@example.tld@nfsroot1.example.tld
 
-5.  Examples
+5.  Application protocol examples
 
-   o  ldap@example.tld@ds1.example.tld
+   The following examples are not normative.  They describe how the
+   author envisions two applications' use of domain-based names.
 
-   o  kadmin@example.tld@kdc1.example.tld
+5.1.  NFSv4 domain-wide namespace root server discovery
 
+   Work is ongoing to provide a method for constructing domain-wide
+   NFSv4 [RFC3530] filesystem namespaces where there is a single "root"
+   with one or more servers (replicas) and multiple filesystems glued
+   into the namespace through use of "referrals."  Clients could then
+   construct a "global" namespace through use of the DNS domain
+   hierarchy.
 
+   Here clients would always know, from context, when they need to find
+   the root servers for a given DNS domain.  Root server discovery would
+   be performed using DNS SRV RR lookups, without using DNSSEC where
+   DNSSEC has not been deployed.
 
+   When using RPCSEC_GSS [RFC2203] for security NFSv4 clients would then
+   use domain-based names to ensure that that the servers named in the
+   SRV RRs are in fact authorized to be the NFSv4 root servers for the
+   target domain.
 
+5.2.  LDAP server discovery
 
+   LDAP clients using the GSS-API through SASL too would benefit from
+   use of domain-based names to protect server discovery through
+   insecure DNS SRV RR lookups, much as described above.
 
+   Unlike NFSv4 clients, not all LDAP clients may always know from
+   context when they should use domain-based names.  That's because
+   existing clients may use host-based naming to authenticate servers
+   discovered through SRV RR lookups.  Changing such clients to use
+   domain-based naming when domain-based acceptor credentials have not
+   been deployed to LDAP servers, or when LDAP servers have not been
+   modified to allow use of domain-based naming, would break
+   interoperability.  That is, there is a legacy server interoperability
+   issue here.  Therefore LDAP clients may require additional
+   configuration at deployment time to enable (or disable) use of
+   domain-based naming.
 
+   Note: whether SASL [RFC4422] or its GSS-API bridges [I-D.ietf-sasl-
+   gssapi] [I-D.josefsson-sasl-gs2] require updates in order allow use
+   of domain-based names is not relevant to the theory of how domain-
+   based naming would protect LDAP clients' server discovery.
 
 6.  Security Considerations
 
    Use of GSS-API domain-based names may not be negotiable by some GSS-
    API mechanisms, and some acceptors may not support GSS-API domain-
    based names.  In such cases initiators are left to fallback on the
    use of hostbased names, in which case the initiators MUST also verify
    that the acceptor's hostbased name is authorized to provide the given
    service for the domain that the initiator had wanted.
 
    The above security consideration also applies to all GSS-API
    initiators who lack support for domain-based service names.

[...]

 7.1.  Normative
 
+   [RFC1035]  Mockapetris, P., "Domain names - implementation and
+              specification", STD 13, RFC 1035, November 1987.
+
    [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
               Requirement Levels", BCP 14, RFC 2119, March 1997.
 
    [RFC2743]  Linn, J., "Generic Security Service Application Program
               Interface Version 2, Update 1", RFC 2743, January 2000.
 
-7.2.  Informative
+   [RFC2782]  Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for
+              specifying the location of services (DNS SRV)", RFC 2782,
+              February 2000.
 
-   [RFC1964]  Linn, J., "The Kerberos Version 5 GSS-API Mechanism",
-              RFC 1964, June 1996.
+   [RFC4033]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
+              Rose, "DNS Security Introduction and Requirements",
+              RFC 4033, March 2005.
 
-   [RFC2222]  Myers, J., "Simple Authentication and Security Layer
-              (SASL)", RFC 2222, October 1997.
+7.2.  Informative
 
-   [RFC3377]  Hodges, J. and R. Morgan, "Lightweight Directory Access
-              Protocol (v3): Technical Specification", RFC 3377,
-              September 2002.
+   [I-D.ietf-sasl-gssapi]
+              Melnikov, A., "The Kerberos V5 ("GSSAPI") SASL mechanism",
+              draft-ietf-sasl-gssapi-06 (work in progress), June 2006.
 
+   [I-D.josefsson-sasl-gs2]
+              Josefsson, S., "Using GSS-API Mechanisms in SASL: The GS2
+              Mechanism Family", draft-josefsson-sasl-gs2-00 (work in
+              progress), November 2005.
 
+   [RFC2203]  Eisler, M., Chiu, A., and L. Ling, "RPCSEC_GSS Protocol
+              Specification", RFC 2203, September 1997.
 
+   [RFC3530]  Shepler, S., Callaghan, B., Robinson, D., Thurlow, R.,
+              Beame, C., Eisler, M., and D. Noveck, "Network File System
+              (NFS) version 4 Protocol", RFC 3530, April 2003.
 
+   [RFC4422]  Melnikov, A. and K. Zeilenga, "Simple Authentication and
+              Security Layer (SASL)", RFC 4422, June 2006.

_______________________________________________
Kitten mailing list
Kitten@lists.ietf.org
https://www1.ietf.org/mailman/listinfo/kitten