Re: [kitten] New s2k and exposing the strength (iteration count) part of s2kparams
Nico Williams <nico@cryptonector.com> Mon, 02 December 2013 22:02 UTC
Return-Path: <nico@cryptonector.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 66DFD1ADF95 for <kitten@ietfa.amsl.com>; Mon, 2 Dec 2013 14:02:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001] 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 TP5O03Z95G0v for <kitten@ietfa.amsl.com>; Mon, 2 Dec 2013 14:02:07 -0800 (PST)
Received: from homiemail-a72.g.dreamhost.com (caiajhbdcbef.dreamhost.com [208.97.132.145]) by ietfa.amsl.com (Postfix) with ESMTP id 16BC01ADF79 for <kitten@ietf.org>; Mon, 2 Dec 2013 14:02:07 -0800 (PST)
Received: from homiemail-a72.g.dreamhost.com (localhost [127.0.0.1]) by homiemail-a72.g.dreamhost.com (Postfix) with ESMTP id CA60D6B0059; Mon, 2 Dec 2013 14:02:04 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=cryptonector.com; h=date :from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to; s=cryptonector.com; bh=loufnOUeC33iCQ ++KISf//wMfZU=; b=cXJAwJmWhrTMXuHy9/0u36MNHnu7eEKhrWoaR7tTyZHKFm A6xEPLiVwj5dMIR/cM2VQmglbQbYzZxew0luI5TGXd7oxAEkCOZTEyjVyps9xMyy Tzmf4OHaVnFKT8WNVvH6IP1CPepbIjbXUhUyro6zrURKOgC9jnN3TyEIgaSAQ=
Received: from localhost (108-207-244-174.lightspeed.austtx.sbcglobal.net [108.207.244.174]) (Authenticated sender: nico@cryptonector.com) by homiemail-a72.g.dreamhost.com (Postfix) with ESMTPA id 6AB326B0078; Mon, 2 Dec 2013 14:02:04 -0800 (PST)
Date: Mon, 02 Dec 2013 16:02:03 -0600
From: Nico Williams <nico@cryptonector.com>
To: Jeffrey Hutzelman <jhutz@cmu.edu>
Message-ID: <20131202220159.GX21240@localhost>
References: <32722_1386018295_rB2L4rvE023770_CAK3OfOgeJW9XoaNYKytKQqeTzjgCE4xNnhhhCyhBzZZ=kJ+o4w@mail.gmail.com> <1386020332.9407.118.camel@minbar.fac.cs.cmu.edu>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <1386020332.9407.118.camel@minbar.fac.cs.cmu.edu>
User-Agent: Mutt/1.5.21 (2010-09-15)
Cc: kitten@ietf.org
Subject: Re: [kitten] New s2k and exposing the strength (iteration count) part of s2kparams
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, 02 Dec 2013 22:02:09 -0000
On Mon, Dec 02, 2013 at 04:38:52PM -0500, Jeffrey Hutzelman wrote: > On Mon, 2013-12-02 at 15:04 -0600, Nico Williams wrote: > > 2) [...] > > Oh, look; you've just made my point for me. :-) Maybe I should start writing backwards :) (Hey look, I'm responding backwards!) > > 1) Expose the iteration count of the otherwise-opaque s2k params, and > > standardize it, renaming it a strength indication and leaving its > > interpretation as mechanism-specific. I.e., from now on all new > > enctypes with s2kparams will have theirs start with a four-octet, > > network byte order unsigned measure of strength. I conflated two things, actually: on-the-wire representation, and logical representation. Let me clarify my proposal in light of that: - every new enctype shall have a 32-bit unsigned integer strength measure - I don't care how that's represented on the wire (but I think it'd be convenient to stick to my original proposal above) > I don't think that's necessary. The s2k parameters aren't really > opaque; they're enctype-specific and pseudo-opaque at the Kerberos > protocol layer, in the same way that PA-DATA and authorization data are. They are most definitely opaque (OCTET STRING) because they are enctype- specific and layers above the enctype musn't interpret them, which means that... ...in practice what has happened is that this opaqueness has been an impediment to exposing these parameters in any interfaces (CLIs, GUIs, BUIs, APIs) other than configuration, and changing the default therefore results in non-interoperability (e.g., can't use ktutil to add password- derived keys to a keytab -- I know, that's almost a useful authorization feature, except it's neither). Yes, we could preserve opaqueness of s2kparams at all layers above the enctype and yet manage to add suitable interfaces. But we've had a decade and we haven't. I think that's evidence that the original approach hasn't worked well. We should either hardcode the s2kparams or provide at least one knob that all can share. > IMHO it works better that way, because it means we can carry such things > end-to-end without all of the intermediate pieces having to understand > them. This has brought us extensibility that otherwise would have been > impossible, and even some that we previously thought _was_ impossible > (e.g. ticket extensions using a magic enctype). In theory I agree, in practice I don't. > It might be useful for Kerberos libraries, admin tools, and KDC > implementations to include interfaces for managing s2k parameters. It most definitely would be. It hasn't happened. We've had a decade. Perhaps if we make such interfaces a requirement implementors will get to it? I doubt it... There's no Internet standard-compliance police. > However, I don't think doing so requires that we mandate that future > enctypes use a particular format for s2k parameters, or use a single > linear "strength" parameter. Future S2K algorithms may have arbitrary > numbers of parameters, and while it may be possible and even desirable > to compute a single "strength indication" from those parameters, the > operation is not likely to be reversible, which means that s2k params > will need to encode the actual individual parameters. I understand this quite well. I don't think that argument will cause implementors to finally add the missing interfaces. Therefore I'd rather settle for a much-more-likely-to-succeed compromise. A single synthetic strength measure is *clearly* problematic (you and I, and others on this list too, have commiserated over SASL's SSF many a time, so you know I agree), but for s2kparams it's much more workable and less dangerous than for mechanisms that involve negotiations (which is half the source of SSF's problems). Nico --
- [kitten] New s2k and exposing the strength (itera… Nico Williams
- Re: [kitten] New s2k and exposing the strength (i… Jeffrey Hutzelman
- Re: [kitten] New s2k and exposing the strength (i… Nico Williams