Kerberos transport DNS record design

Petr Spacek pspacek at redhat.com
Wed Jun 1 06:34:37 EDT 2016


On 25.5.2016 23:48, Greg Hudson wrote:
> Currently we can map from a Kerberos realm name to the TCP and/or UDP
> addresses of a KDC, kpasswd, or kadmind server.  Several of us have been
> discussing how to best extend that mechanism to include MS-KKDCP, and at
> the same time minimize the number of DNS lookups required to contact a
> realm without configuration.
> 
> We had been planning to use the URI record type, but after a recent
> round of discussion, we don't think it's likely that popular DNS hosting
> providers will allow customers to create URI records (since it seems
> like no one else is using them).  Some middle-boxes would also block DNS
> queries for URI records.  That problem would be even worse if we create
> a new record type.  So, we are planning to use the TXT record type.  It
> seems unlikely that we can standardize on a TXT record through the IETF
> (except perhaps as an informational RFC), but it seems like the only
> deployable option for individuals and small organizations.
> 
> If we use the TXT record type, we have to define the payload format,
> which is the primary subject of this thread.  The payload must
> communicate:
> 
> * Priority, because DNS records are unordered
> * Transport type--currently one of TCP, UDP, and MS-KKDCP
> * For the TCP and UDP types, the hostname and optional port
> * For the MS-KKDCP type, the proxy URL
> 
> The format must be extensible to future transport types, including
> ones that use TCP, UDP, or HTTP in different ways.  Examples could
> include Heimdal's HTTP proxy protocol or RFC 6251 (Kerberos over TLS).
> 
> That leaves a lot of questions:
> 
> * Do we want to include weights as well as priorities?  I think weights
>   are unnecessary complexity, even just as an optional field in the
>   format, but I seem to be in the minority.
> 
> * Do we want to include master KDCs in the same query as normal KDCs, or
>   should they be in a separate record?  (Master KDCs are used as a
>   fallback by the MIT client code when we receive a KDC error which
>   could have resulted from out-of-date data due to propagation delays.)
> 
>   - If we do communicate master KDCs in the same record, should it be
>     possible to exclude a master KDC from the normal server list (so
>     that it is only contacted if a normal KDC returns an error), or is
>     it sufficient to be able to assign master KDCs a low priority?
> 
> * Do we want to make our payload isomorphic to the URI payload, in
>   anticipation of migrating to the URI record type in the future?  I
>   would argue that such a migration is vanishingly unlikely.  If we go
>   this way, the payload contains a priority, a weight, and a URI, so we
>   have to encode everything but the priority inside a URI, opening a
>   bunch of other inter-related questions:
> 
>   - Should we register a new URI scheme to represent TCP and UDP
>     transports, or use the unregistered tcp: and udp: schemes as some
>     other applications have done?
> 
>   - Should we use a new URI scheme (probably the same one as above) for
>     MS-KKDCP, or should we just use the https: URI of the proxy?
> 
>   - If we do create new URI schemes, should we use use separate schemes
>     for krb5/kpasswd/kadmin, or use the same scheme since we already
>     know the application protocol going in?
> 
>   - Should we use fragment identifiers (#suffix) to indicate master-ness
>     and/or the transport type, or should we use a prefix?
> 
>   If we don't restrict ourselves to an isomorphic-to-URI payload format,
>   we still have to decide whether and how to represent master KDC
>   entries, but the other concerns largely go away.
> 
> * At the bikeshed level, what should we use as a separator between
>   fields?  Is it more convenient for DNS administrators if we avoid
>   using whitespace as a separator?

For the record, opinions of DNS gurus from dnsop list can be found in dnsop
archives:
http://www.ietf.org/mail-archive/web/dnsop/current/msg17526.html

Message
http://www.ietf.org/mail-archive/web/dnsop/current/msg17527.html
indicates that it might be possible to standardize this if you try it.

Message
http://www.ietf.org/mail-archive/web/dnsop/current/msg17534.html
argues that URI is good enough and that TXT is a bad practice.


Pick an answer which suits you the best :-)

-- 
Petr Spacek  @  Red Hat


More information about the krbdev mailing list