Re: [kitten] Adoption of draft-mccallum-kitten-krb-service-discovery?

Nathaniel McCallum <npmccallum@redhat.com> Wed, 18 May 2016 16:34 UTC

Return-Path: <npmccallum@redhat.com>
X-Original-To: kitten@ietfa.amsl.com
Delivered-To: kitten@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DE66012D558 for <kitten@ietfa.amsl.com>; Wed, 18 May 2016 09:34:50 -0700 (PDT)
X-Quarantine-ID: <jUGzJajM1EqK>
X-Virus-Scanned: amavisd-new at amsl.com
X-Amavis-Alert: BAD HEADER SECTION, Improper folded header field made up entirely of whitespace (char 09 hex): References: ...2432.9.camel@redhat.com>\n\t\n <54c900f2-399[...]
X-Spam-Flag: NO
X-Spam-Score: -8.326
X-Spam-Level:
X-Spam-Status: No, score=-8.326 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HK_RANDOM_ENVFROM=0.001, HK_RANDOM_FROM=0.001, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-1.426, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jUGzJajM1EqK for <kitten@ietfa.amsl.com>; Wed, 18 May 2016 09:34:49 -0700 (PDT)
Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 68A8C12D5D6 for <kitten@ietf.org>; Wed, 18 May 2016 09:34:49 -0700 (PDT)
Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E0519C05B1D8; Wed, 18 May 2016 16:34:48 +0000 (UTC)
Received: from vpn-57-37.rdu2.redhat.com (vpn-57-37.rdu2.redhat.com [10.10.57.37]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u4IGYlxK009712 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 18 May 2016 12:34:48 -0400
Message-ID: <1463589287.2481.34.camel@redhat.com>
From: Nathaniel McCallum <npmccallum@redhat.com>
To: Jeffrey Altman <jaltman@secure-endpoints.com>, kitten@ietf.org
Date: Wed, 18 May 2016 12:34:47 -0400
In-Reply-To: <3911bb56-b9a1-a5e5-cc6c-c742f779536c@secure-endpoints.com>
References: <1463500163.2432.9.camel@redhat.com> <54c900f2-399c-0ff0-c292-91baba495a21@secure-endpoints.com> <1463517801.2432.24.camel@redhat.com> <490bd7aa-81ca-9199-6687-222bb65caddf@secure-endpoints.com> <1463520360.2432.46.camel@redhat.com> <3911bb56-b9a1-a5e5-cc6c-c742f779536c@secure-endpoints.com>
Content-Type: text/plain; charset="UTF-8"
Mime-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Wed, 18 May 2016 16:34:49 +0000 (UTC)
Archived-At: <http://mailarchive.ietf.org/arch/msg/kitten/GFGk-IUyP-XQp4MYbjcGyQPiYX0>
Subject: Re: [kitten] Adoption of draft-mccallum-kitten-krb-service-discovery?
X-BeenThere: kitten@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Common Authentication Technologies - Next Generation <kitten.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/kitten>, <mailto:kitten-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/kitten/>
List-Post: <mailto:kitten@ietf.org>
List-Help: <mailto:kitten-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/kitten>, <mailto:kitten-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 18 May 2016 16:34:51 -0000

On Tue, 2016-05-17 at 20:36 -0400, Jeffrey Altman wrote:
> On 5/17/2016 5:26 PM, Nathaniel McCallum wrote:
> > 
> > I've described a reason why a URI record lookup is requied for MS-
> > KKDCP. However, I've also described a system which presents a 50%
> > reduction in DNS lookups. I don't see any reason to neglect this
> > second
> > feature.
> 
> And when the DNS URI record is not published or cannot be queried the
> Kerberos library will have a 50% increase in the number of DNS
> lookups.
> Not only does the library have to query for DNS URI but it still must
> query for the DNS SRV records.

This is, indeed, the trade-off to a longer-term improvement. As I said
before, the property that makes this trade-off acceptable (IMHO) is
that the DNS administrator can solve this problem. This performance
trade-off creates an incentive for administrators to move to the new
system.

I'm very open to alternative designs. But we've been having this
conversation for more than a year now and, while lots of alternatives
have been proposed, all of them were abandoned by their proposers after
due consideration.

Here is a basic summary of the ideas proposed (please remind me if I've missed any):

1. A new, Kerberos-specific RR type.
2. (Ab)using TXT; same semantics as the current draft.
3. (Ab)using TXT; same semantics as RFC4120 - KKDCP only.
4. Using SRV with a default path.


#1 was dismissed as generally having the effect of ghettoizing the discovery mechanism. Servers wouldn't implement it. Neither would administrative interfaces. It also has all the same drawbacks as the current draft.

#2 is the exact same proposal as the existing draft, just using TXT records. Its main advantage over the current draft is that we don't need to depend on the URI record type. However, using the TXT record like this is controversial (to say the least).

#3 is the simplist solution: just define a TXT record for KKDCP only. This record would work in parallel to the existing SRV records and would only indicate the location of the KKDCP proxy. The downside is that this adds an additional query just for KKDCP. Future tunnels may add more queries. Also, it doesn't allow for weights/priorities between protocols.

#4 proposes to define an SRV record for KKDCP. This would carry the understanding that the default path (/KdcProxy) would always be used. This is basically a hack and is extremely inflexible. It would mean, in many cases, that the KKDCP proxy couldn't be integrated directly into existing infrastructure.

Notice that in all of the options we require an additional DNS query.
This is unavoidable.

#3 and #4 do not provide any opportunity for speedup. This means that
KKDCP users will have to wait for two DNS timeouts in order to get
connectivity. I find this property unacceptable. #1 and #2 have the
potential for speedups, with exactly the same semantics as the current
draft. But they each have significant drawbacks as well.

The current draft seems to me the best balance of all the options.

1. It uses a standard RR type. While the use of URI may be somewhat
controversial, it seems to me less problematic than either of the
alternatives (a custom RR type or TXT).

2. It does add an additional DNS query; but this can be avoided if DNS
configuration is updated. This is the best case scenario considering an
extra query will be required in all options.

3. It provides the ability to use weights/priorities between protocols.

> I will also point out that a large number of the DNS hosting
> providers
> do not support URI records and many of the DNS proxy servers do not
> support them either.   As a result there is no ability for DNS URI
> records to be published and the queries are will be blocked.

On the MIT krb5 call this week, I argued this very point against #1
(above). What I argued is that it will be easier to get hosting
providers to add support for URI than for some Kerberos-specific type.
If hosting providers were the only consideration, then TXT would be a
no-brainer here. However, there are also standardization
considerations. If the general consensus is that standardizing on TXT
won't present any difficulty, I would be more than happy to switch to
this option.

If you have any alternative, more creative, solutions, I'm all ears.
If, after this explanation, you agree that our solution is the best
balance of all the concerns, I am also open to suggestions for
improvements in the implementation.

It is my hope that we can agree upon the contours of the problem and
devise a solution that is acceptable to everyone.

Nathaniel