Re: [kitten] Kerberos preauth negotiation techniques

Nathaniel McCallum <npmccallum@redhat.com> Mon, 23 February 2015 21:22 UTC

Return-Path: <npmccallum@redhat.com>
X-Original-To: kitten@ietfa.amsl.com
Delivered-To: kitten@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9FE201A6F27 for <kitten@ietfa.amsl.com>; Mon, 23 Feb 2015 13:22:26 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.911
X-Spam-Level:
X-Spam-Status: No, score=-5.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HK_RANDOM_ENVFROM=0.001, HK_RANDOM_FROM=1, RCVD_IN_DNSWL_HI=-5, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 in2n1nxL8a2h for <kitten@ietfa.amsl.com>; Mon, 23 Feb 2015 13:22:24 -0800 (PST)
Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D9A071A6F1E for <kitten@ietf.org>; Mon, 23 Feb 2015 13:22:24 -0800 (PST)
Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id t1NLMN9I017964 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 23 Feb 2015 16:22:23 -0500
Received: from vpn-59-5.rdu2.redhat.com (vpn-59-5.rdu2.redhat.com [10.10.59.5]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t1NLMMUh023625 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=NO); Mon, 23 Feb 2015 16:22:23 -0500
Message-ID: <1424726541.2604.82.camel@redhat.com>
From: Nathaniel McCallum <npmccallum@redhat.com>
To: Nico Williams <nico@cryptonector.com>
Date: Mon, 23 Feb 2015 16:22:21 -0500
In-Reply-To: <CAK3OfOjMWrCgS7aSN4-dVv-cBdo2YS+NL-Vs66utBX+KMKoZhg@mail.gmail.com>
References: <x7da90k47ox.fsf@equal-rites.mit.edu> <1424189675.2645.23.camel@redhat.com> <54E4F31D.5080103@mit.edu> <20150218204339.GR5246@localhost> <1424722422.2604.77.camel@redhat.com> <CAK3OfOjMWrCgS7aSN4-dVv-cBdo2YS+NL-Vs66utBX+KMKoZhg@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"
Mime-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27
Archived-At: <http://mailarchive.ietf.org/arch/msg/kitten/Lb2o9bXgcCVDx04P885CPkKiVuI>
Cc: "kitten@ietf.org" <kitten@ietf.org>
Subject: Re: [kitten] Kerberos preauth negotiation techniques
X-BeenThere: kitten@ietf.org
X-Mailman-Version: 2.1.15
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: <http://www.ietf.org/mail-archive/web/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: Mon, 23 Feb 2015 21:22:26 -0000

On Mon, 2015-02-23 at 15:12 -0600, Nico Williams wrote:
> On Mon, Feb 23, 2015 at 2:13 PM, Nathaniel McCallum <
> npmccallum@redhat.com> wrote:
> > On the call last week there was a general consensus to move 
> > forward with SPAKE2 and not make PAKEs negotiable. SPAKE2 has all 
> > the
> > properties we care about. It:
> 
> Sure, a PAKE per-pre-auth.  If we want new PAKEs, we clone this pre-
> auth, change the PAKE, give it a new number.
> 
> > We also had a general consensus that there is no need to negotiate 
> > hashes. There are three hash uses:
> > 1. Transcript for message integrity
> > 2. Key derivation
> > 3. Key validation
> > 
> > For #1, we can just use the checksum method implicit in the 
> > enctype.
> > 
> > For #2, we can just use a KDF.
> > 
> > For #3, Greg had an idea, but I've since forgotten it and can't 
> > find it in my email. Greg, perhaps you can remind me?
> 
> Just use the enctype's authenticated encryption, natch.
> 
> > Enctype negotiation is implicit from the existing exchange. This 
> > leaves only groups and second factors.
> 
> Making second factors negotiable is going to make the UI very fun :/ 
> But it probably has to get done anyways.
> 
> > We also discussed making group negotiation have a note in the RFC 
> > about being careful regarding the number of groups exposed. I 
> > suspect sensible defaults will be:
> > * P-256
> > * P-384
> > * P-521
> > * Curve25519
> 
> Sure.
> 
> > OpenSSL does not support Curve25519 (yet) so it won't be offered 
> > in my implementation.
> 
> OpenSSL needs to add Curve25519 support ASAP (particularly now that 
> there is consensus in CFRG for Curve25519 as an RTI at the 128-bit 
> security level), but is a subject for a different list.
> 
> > One reason I don't think it will be a problem is that no other 
> > data is
> 
> What won't be a problem?

OID bloat.

> > sent in the group negotiation packet from the client to the 
> > server. The response from the server will contain just one group 
> > OID along with the public key and the 2FA negotiation parameters.
> > 
> > I suggest an empirical approach here. I'll be developing the RFC 
> > in parallel with the application itself. If we see this becoming a 
> > problem, we can address it at that time. I am open even to bit set 
> > negotiation if space becomes a serious concern. I would simply 
> > like to avoid a registry if it is not needed.
> 
> Eh, if I understood correctly you're saying that the client 
> shouldn't send a list/set of groups.
> 
> Either the client does send a set/list of groups or the server must 
> return a PAKE message for each group.  The latter is not going to 
> work well for every PAKE.  Having the server choose one without any 
> idea of what the client supports just won't do.
> 
> Just have the client send a set (SEQUENCE) of OIDs.  If you really 
> hate the wire bloat, then send both, an enum bit string and a 
> sequence of OIDs, with the latter absent when only registered groups 
> are proposed and the former absent when no registered groups are 
> proposed.

No. I'm saying that the first message from the client to the server 
contains ONLY a SEQUENCE OF OBJECT IDENTIFIER. The reply contains the 
server's choice from that list, the public key from that chosen group, 
and 2FA parameters.

I'm saying the OID bloat isn't really a problem.

Nathaniel