another relevant draft
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@10022 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
339
doc/standardisation/draft-ietf-krb-wg-krb-dns-locate-02.txt
Normal file
339
doc/standardisation/draft-ietf-krb-wg-krb-dns-locate-02.txt
Normal file
@@ -0,0 +1,339 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
INTERNET-DRAFT Ken Hornstein
|
||||||
|
<draft-ietf-krb-wg-krb-dns-locate-02.txt> NRL
|
||||||
|
February 28, 2001 Jeffrey Altman
|
||||||
|
Expires: August 28, 2001 Columbia University
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Distributing Kerberos KDC and Realm Information with DNS
|
||||||
|
|
||||||
|
|
||||||
|
Status of this Memo
|
||||||
|
|
||||||
|
This document is an Internet-Draft and is in full conformance with
|
||||||
|
all provisions of Section 10 of RFC2026.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Distribution of this memo is unlimited. It is filed as <draft-ietf-
|
||||||
|
krb-wg-krb-dns-locate-02.txt>, and expires on August 28, 2001.
|
||||||
|
Please send comments to the authors.
|
||||||
|
|
||||||
|
Abstract
|
||||||
|
|
||||||
|
Neither the Kerberos V5 protocol [RFC1510] nor the Kerberos V4 proto-
|
||||||
|
col [RFC????] describe any mechanism for clients to learn critical
|
||||||
|
configuration information necessary for proper operation of the pro-
|
||||||
|
tocol. Such information includes the location of Kerberos key dis-
|
||||||
|
tribution centers or a mapping between DNS domains and Kerberos
|
||||||
|
realms.
|
||||||
|
|
||||||
|
Current Kerberos implementations generally store such configuration
|
||||||
|
information in a file on each client machine. Experience has shown
|
||||||
|
this method of storing configuration information presents problems
|
||||||
|
with out-of-date information and scaling problems, especially when
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Hornstein, Altman [Page 1]
|
||||||
|
|
||||||
|
RFC DRAFT February 28, 2001
|
||||||
|
|
||||||
|
|
||||||
|
using cross-realm authentication.
|
||||||
|
|
||||||
|
This memo describes a method for using the Domain Name System
|
||||||
|
[RFC1035] for storing such configuration information. Specifically,
|
||||||
|
methods for storing KDC location and hostname/domain name to realm
|
||||||
|
mapping information are discussed.
|
||||||
|
|
||||||
|
DNS vs. Kerberos - Case Sensitivity of Realm Names
|
||||||
|
|
||||||
|
In Kerberos, realm names are case sensitive. While it is strongly
|
||||||
|
encouraged that all realm names be all upper case this recommendation
|
||||||
|
has not been adopted by all sites. Some sites use all lower case
|
||||||
|
names and other use mixed case. DNS on the other hand is case insen-
|
||||||
|
sitive for queries but is case preserving for responses to TXT
|
||||||
|
queries. Since "MYREALM", "myrealm", and "MyRealm" are all different
|
||||||
|
it is necessary that only one of the possible combinations of upper
|
||||||
|
and lower case characters be used. This restriction may be lifted in
|
||||||
|
the future as the DNS naming scheme is expanded to support non-ASCII
|
||||||
|
names.
|
||||||
|
|
||||||
|
Overview - KDC location information
|
||||||
|
|
||||||
|
KDC location information is to be stored using the DNS SRV RR [RFC
|
||||||
|
2052]. The format of this RR is as follows:
|
||||||
|
|
||||||
|
Service.Proto.Realm TTL Class SRV Priority Weight Port Target
|
||||||
|
|
||||||
|
The Service name for Kerberos is always "_kerberos".
|
||||||
|
|
||||||
|
The Proto can be either "_udp" or "_tcp". If these records are to be
|
||||||
|
used, a "_udp" record MUST be included. If the Kerberos implementa-
|
||||||
|
tion supports TCP transport, a "_tcp" record SHOULD be included.
|
||||||
|
|
||||||
|
The Realm is the Kerberos realm that this record corresponds to.
|
||||||
|
|
||||||
|
TTL, Class, SRV, Priority, Weight, and Target have the standard mean-
|
||||||
|
ing as defined in RFC 2052.
|
||||||
|
|
||||||
|
As per RFC 2052 the Port number should be the value assigned to "ker-
|
||||||
|
beros" by the Internet Assigned Number Authority (88).
|
||||||
|
|
||||||
|
Example - KDC location information
|
||||||
|
|
||||||
|
These are DNS records for a Kerberos realm ASDF.COM. It has two Ker-
|
||||||
|
beros servers, kdc1.asdf.com and kdc2.asdf.com. Queries should be
|
||||||
|
directed to kdc1.asdf.com first as per the specified priority.
|
||||||
|
Weights are not used in these records.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Hornstein, Altman [Page 2]
|
||||||
|
|
||||||
|
RFC DRAFT February 28, 2001
|
||||||
|
|
||||||
|
|
||||||
|
_kerberos._udp.ASDF.COM. IN SRV 0 0 88 kdc1.asdf.com.
|
||||||
|
_kerberos._udp.ASDF.COM. IN SRV 1 0 88 kdc2.asdf.com.
|
||||||
|
|
||||||
|
Overview - Kerberos password changing server location information
|
||||||
|
|
||||||
|
Kerberos password changing server [KERB-CHG] location is to be stored
|
||||||
|
using the DNS SRV RR [RFC 2052]. The format of this RR is as fol-
|
||||||
|
lows:
|
||||||
|
|
||||||
|
Service.Proto.Realm TTL Class SRV Priority Weight Port Target
|
||||||
|
|
||||||
|
The Service name for the password server is always "_kpasswd".
|
||||||
|
|
||||||
|
The Proto MUST be "_udp".
|
||||||
|
|
||||||
|
The Realm is the Kerberos realm that this record corresponds to.
|
||||||
|
|
||||||
|
TTL, Class, SRV, Priority, Weight, and Target have the standard mean-
|
||||||
|
ing as defined in RFC 2052.
|
||||||
|
|
||||||
|
As per RFC 2052 the Port number should be the value assigned to
|
||||||
|
"kpasswd" by the Internet Assigned Number Authority (464).
|
||||||
|
|
||||||
|
Overview - Kerberos admin server location information
|
||||||
|
|
||||||
|
Kerberos admin location information is to be stored using the DNS SRV
|
||||||
|
RR [RFC 2052]. The format of this RR is as follows:
|
||||||
|
|
||||||
|
Service.Proto.Realm TTL Class SRV Priority Weight Port Target
|
||||||
|
|
||||||
|
The Service name for the admin server is always "_kerberos-adm".
|
||||||
|
|
||||||
|
The Proto can be either "_udp" or "_tcp". If these records are to be
|
||||||
|
used, a "_tcp" record MUST be included. If the Kerberos admin imple-
|
||||||
|
mentation supports UDP transport, a "_udp" record SHOULD be included.
|
||||||
|
|
||||||
|
The Realm is the Kerberos realm that this record corresponds to.
|
||||||
|
|
||||||
|
TTL, Class, SRV, Priority, Weight, and Target have the standard mean-
|
||||||
|
ing as defined in RFC 2052.
|
||||||
|
|
||||||
|
As per RFC 2052 the Port number should be the value assigned to
|
||||||
|
"kerberos-adm" by the Internet Assigned Number Authority (749).
|
||||||
|
|
||||||
|
Note that there is no formal definition of a Kerberos admin protocol,
|
||||||
|
so the use of this record is optional and implementation-dependent.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Hornstein, Altman [Page 3]
|
||||||
|
|
||||||
|
RFC DRAFT February 28, 2001
|
||||||
|
|
||||||
|
|
||||||
|
Example - Kerberos administrative server location information
|
||||||
|
|
||||||
|
These are DNS records for a Kerberos realm ASDF.COM. It has one
|
||||||
|
administrative server, kdc1.asdf.com.
|
||||||
|
|
||||||
|
_kerberos-adm._tcp.ASDF.COM. IN SRV 0 0 749 kdc1.asdf.com.
|
||||||
|
|
||||||
|
Overview - Hostname/domain name to Kerberos realm mapping
|
||||||
|
|
||||||
|
Information on the mapping of DNS hostnames and domain names to Ker-
|
||||||
|
beros realms is stored using DNS TXT records [RFC 1035]. These
|
||||||
|
records have the following format.
|
||||||
|
|
||||||
|
Service.Name TTL Class TXT Realm
|
||||||
|
|
||||||
|
The Service field is always "_kerberos", and prefixes all entries of
|
||||||
|
this type.
|
||||||
|
|
||||||
|
The Name is a DNS hostname or domain name. This is explained in
|
||||||
|
greater detail below.
|
||||||
|
|
||||||
|
TTL, Class, and TXT have the standard DNS meaning as defined in RFC
|
||||||
|
1035.
|
||||||
|
|
||||||
|
The Realm is the data for the TXT RR, and consists simply of the Ker-
|
||||||
|
beros realm that corresponds to the Name specified.
|
||||||
|
|
||||||
|
When a Kerberos client wishes to utilize a host-specific service, it
|
||||||
|
will perform a DNS TXT query, using the hostname in the Name field of
|
||||||
|
the DNS query. If the record is not found, the first label of the
|
||||||
|
name is stripped and the query is retried.
|
||||||
|
|
||||||
|
Compliant implementations MUST query the full hostname and the most
|
||||||
|
specific domain name (the hostname with the first label removed).
|
||||||
|
Compliant implementations SHOULD try stripping all subsequent labels
|
||||||
|
until a match is found or the Name field is empty.
|
||||||
|
|
||||||
|
Example - Hostname/domain name to Kerberos realm mapping
|
||||||
|
|
||||||
|
For the previously mentioned ASDF.COM realm and domain, some sample
|
||||||
|
records might be as follows:
|
||||||
|
|
||||||
|
_kerberos.asdf.com. IN TXT "ASDF.COM"
|
||||||
|
_kerberos.mrkserver.asdf.com. IN TXT "MARKETING.ASDF.COM"
|
||||||
|
_kerberos.salesserver.asdf.com. IN TXT "SALES.ASDF.COM"
|
||||||
|
|
||||||
|
Let us suppose that in this case, a Kerberos client wishes to use a
|
||||||
|
Kerberized service on the host foo.asdf.com. It would first query:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Hornstein, Altman [Page 4]
|
||||||
|
|
||||||
|
RFC DRAFT February 28, 2001
|
||||||
|
|
||||||
|
|
||||||
|
_kerberos.foo.asdf.com. IN TXT
|
||||||
|
|
||||||
|
Finding no match, it would then query:
|
||||||
|
|
||||||
|
_kerberos.asdf.com. IN TXT
|
||||||
|
|
||||||
|
And find an answer of ASDF.COM. This would be the realm that
|
||||||
|
foo.asdf.com resides in.
|
||||||
|
|
||||||
|
If another Kerberos client wishes to use a Kerberized service on the
|
||||||
|
host salesserver.asdf.com, it would query:
|
||||||
|
|
||||||
|
_kerberos.salesserver.asdf.com IN TXT
|
||||||
|
|
||||||
|
And find an answer of SALES.ASDF.COM.
|
||||||
|
|
||||||
|
Security considerations
|
||||||
|
|
||||||
|
As DNS is deployed today, it is an unsecure service. Thus the infor-
|
||||||
|
mation returned by it cannot be trusted.
|
||||||
|
|
||||||
|
Current practice for REALM to KDC mapping is to use hostnames to
|
||||||
|
indicate KDC hosts (stored in some implementation-dependent location,
|
||||||
|
but generally a local config file). These hostnames are vulnerable
|
||||||
|
to the standard set of DNS attacks (denial of service, spoofed
|
||||||
|
entries, etc). The design of the Kerberos protocol limits attacks of
|
||||||
|
this sort to denial of service. However, the use of SRV records does
|
||||||
|
not change this attack in any way. They have the same vulnerabili-
|
||||||
|
ties that already exist in the common practice of using hostnames for
|
||||||
|
KDC locations.
|
||||||
|
|
||||||
|
Current practice for HOSTNAME to REALM mapping is to provide a local
|
||||||
|
configuration of mappings of hostname or domain name to realm which
|
||||||
|
are then mapped to KDCs. But this again is vulnerable to spoofing
|
||||||
|
via CNAME records that point to hosts in other domains. This has the
|
||||||
|
same effect as when a TXT record is spoofed. In a realm with no
|
||||||
|
cross-realm trusts this is a DoS attack. However, when cross-realm
|
||||||
|
trusts are used it is possible to redirect a client to use a comprom-
|
||||||
|
ised realm.
|
||||||
|
|
||||||
|
This is not an exploit of the Kerberos protocol but of the Kerberos
|
||||||
|
trust model. The same can be done to any application that must
|
||||||
|
resolve the hostname in order to determine which domain a non-FQDN
|
||||||
|
belongs to.
|
||||||
|
|
||||||
|
Implementations SHOULD provide a way of specifying this information
|
||||||
|
locally without the use of DNS. However, to make this feature
|
||||||
|
worthwhile a lack of any configuration information on a client should
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Hornstein, Altman [Page 5]
|
||||||
|
|
||||||
|
RFC DRAFT February 28, 2001
|
||||||
|
|
||||||
|
|
||||||
|
be interpretted as permission to use DNS.
|
||||||
|
|
||||||
|
Expiration
|
||||||
|
|
||||||
|
This Internet-Draft expires on August 28, 2001.
|
||||||
|
|
||||||
|
References
|
||||||
|
|
||||||
|
|
||||||
|
[RFC1510]
|
||||||
|
The Kerberos Network Authentication System; Kohl, Newman; Sep-
|
||||||
|
tember 1993.
|
||||||
|
|
||||||
|
[RFC1035]
|
||||||
|
Domain Names - Implementation and Specification; Mockapetris;
|
||||||
|
November 1987
|
||||||
|
|
||||||
|
[RFC2782]
|
||||||
|
A DNS RR for specifying the location of services (DNS SRV); Gul-
|
||||||
|
brandsen, Vixie; Feburary 2000
|
||||||
|
|
||||||
|
[KERB-CHG]
|
||||||
|
Kerberos Change Password Protocol; Horowitz;
|
||||||
|
ftp://ds.internic.net/internet-drafts/draft-ietf-cat-kerb-chg-
|
||||||
|
password-02.txt
|
||||||
|
|
||||||
|
Authors' Addresses
|
||||||
|
|
||||||
|
Ken Hornstein
|
||||||
|
US Naval Research Laboratory
|
||||||
|
Bldg A-49, Room 2
|
||||||
|
4555 Overlook Avenue
|
||||||
|
Washington DC 20375 USA
|
||||||
|
|
||||||
|
Phone: +1 (202) 404-4765
|
||||||
|
EMail: kenh@cmf.nrl.navy.mil
|
||||||
|
|
||||||
|
Jeffrey Altman
|
||||||
|
The Kermit Project
|
||||||
|
Columbia University
|
||||||
|
612 West 115th Street #716
|
||||||
|
New York NY 10025-7799 USA
|
||||||
|
|
||||||
|
Phone: +1 (212) 854-1344
|
||||||
|
EMail: jaltman@columbia.edu
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Hornstein, Altman [Page 6]
|
||||||
|
|
Reference in New Issue
Block a user