Re: [Curdle] AD Review: draft-ietf-curdle-cms-ecdh-new-curves-04.txt
Eric Rescorla <ekr@rtfm.com> Tue, 09 May 2017 21:17 UTC
Return-Path: <ekr@rtfm.com>
X-Original-To: curdle@ietfa.amsl.com
Delivered-To: curdle@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0B60A1292D3 for <curdle@ietfa.amsl.com>; Tue, 9 May 2017 14:17:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
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 Z42bcnix-meS for <curdle@ietfa.amsl.com>; Tue, 9 May 2017 14:17:39 -0700 (PDT)
Received: from mail-yb0-x22b.google.com (mail-yb0-x22b.google.com [IPv6:2607:f8b0:4002:c09::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BEDB9127F0E for <curdle@ietf.org>; Tue, 9 May 2017 14:17:38 -0700 (PDT)
Received: by mail-yb0-x22b.google.com with SMTP id 8so3564326ybw.1 for <curdle@ietf.org>; Tue, 09 May 2017 14:17:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=BTDVhuA+4wvcZOnwqkCXHQZSx/Sift3/TiXKNrRU0Sc=; b=BDjzZbrZfHfReJA1S/KdYxI5Y9+i2xJZzMGmiasPHDWLgRvOLb4uxn7Kp8WLp04efb EGQpI8SPI4uxsd3lc8yCwjymxpqC0TNTTFwkKLPqJDFbCWPi52Jp9CyhWk6zf8SXcVph Zl9QkqC5JkVLAKjHGSKgdlz6H7nGPfCGV6Iq8F6IHr/agXND0TnE0wD5HvVHulya6REd q/BXPOJJNJ5cbiLggyHXaPD24CorEqE+e3ertuov8OlHWoXF3zoRaeZOI8jZKbnUNfi4 OWUjNf3Z+DKOXfPdciqEivgwiZXeXms7U7EKuXhBkiseHhQdIyH6hj5iT/nDUVykLhWS 9DNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=BTDVhuA+4wvcZOnwqkCXHQZSx/Sift3/TiXKNrRU0Sc=; b=qFkQtF7smWhXga/xenisTCxOhTGmznguV0dMiB2xk+eRaOPp7RNvIOsuCfpLI5l57D k/CbfaS3VKs8cuP250WVqCNoBY8gx0q6V3aC5sDe2nJWrbIHOysJXJnR574lSI2sYuFk /qr60piNxCcD50A9vFSDYl2C/Om4QZ2h4AQzMAJeIzOk34Zh/zox/mfM/XZndl6jFVpx S82vbx20mpd7CFjmrg8XHr+BEzxDZxP7N4kjbvANRZl51z9K3Yd7MLuBuFPTwC/yswWp bRyDtiBSQNp3eYajO07MTHmc7F/5hBEYJiE5nF6LN8dSEtZFal4zRNUMDn9TDxCI5eyI rbmQ==
X-Gm-Message-State: AODbwcB9nosYlEveVGtSupe7+UlHHE+Kvc2iO/Xbiyx5fzhQRRJHv7iX 0OzgrNpYXlyf7V/7egm/zKUpjwo98919
X-Received: by 10.37.218.145 with SMTP id n139mr1994261ybf.117.1494364658099; Tue, 09 May 2017 14:17:38 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.131.150 with HTTP; Tue, 9 May 2017 14:16:57 -0700 (PDT)
In-Reply-To: <1D0D6254-2E6E-4EDD-9FF6-385DA561013D@vigilsec.com>
References: <CABcZeBPCGj81Br-=C4G4PPhB+vVLGwqi94q-vH1aZVs=MTQzng@mail.gmail.com> <B61A14BA-39DD-4929-8E08-AF7BF0CB9DFE@vigilsec.com> <CABcZeBMMWbGd=SSPmtBHE6XOCRSG8q3NqtJdaMQcK5uxHsqqTA@mail.gmail.com> <5EEB2415-61EF-4B6E-91CA-EE2EB7C3E087@vigilsec.com> <013101d2c8ec$586cd450$09467cf0$@augustcellars.com> <30A1145E-F049-454C-93AB-1445767BA67C@vigilsec.com> <016801d2c901$5e299760$1a7cc620$@augustcellars.com> <1D0D6254-2E6E-4EDD-9FF6-385DA561013D@vigilsec.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Tue, 09 May 2017 14:16:57 -0700
Message-ID: <CABcZeBPfHcku7Lk6=Up351=D+xMSO_pfuqqF4aTaW185As9oSg@mail.gmail.com>
To: Russ Housley <housley@vigilsec.com>
Cc: Jim Schaad <ietf@augustcellars.com>, curdle <curdle@ietf.org>
Content-Type: multipart/alternative; boundary="94eb2c07e8209c9770054f1de260"
Archived-At: <https://mailarchive.ietf.org/arch/msg/curdle/klFTm1A9XMnIfKMLXDWOMY23cQI>
Subject: Re: [Curdle] AD Review: draft-ietf-curdle-cms-ecdh-new-curves-04.txt
X-BeenThere: curdle@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "List for discussion of potential new security area wg." <curdle.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/curdle>, <mailto:curdle-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/curdle/>
List-Post: <mailto:curdle@ietf.org>
List-Help: <mailto:curdle-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/curdle>, <mailto:curdle-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 09 May 2017 21:17:41 -0000
On Tue, May 9, 2017 at 1:25 PM, Russ Housley <housley@vigilsec.com> wrote: > > The ECC-CMS-SharedInfo entityUInfo field optionally contains > > additional keying material supplied by the sending agent. Note that > > [CMS] requires implementations to accept a KeyAgreeRecipientInfo > > SEQUENCE that includes the ukm field. If the ukm field is present, > > the ukm is placed in the entityUInfo field. The ukm value need not > > be longer than the key-encryption key that will be produced by the > > KDF. > > > > Need not? Please clarify what the purpose is here. It seems like > > it's to generate a unique KEK. In that case, the security bounds > > are what, uniqueness? > > I suggest this wording: > > … There is no security benefit to using a ukm value that is > longer than the key-encryption key that will be produced by > the KDF. > > > Hmm... I believe that this statement is true, but it also seems to be > incomplete. I may be reasoning about this incorrectly, but it seems > to me that the minimal security requirement is that the UKM be > unique, but that can be achieved with a value much smaller than > the KEK. For instance, it seems like if you have a 256-bit KEK, > then you would still be OK with a randomly-generated 128-bit > UKM. And if we're concerned about random collisions, then the > usefulness bound is actually min(|KEK|, |hash compression function size|). > > > Yes. The umm value needs to be different for each invocation of the KDF, > otherwise it does not provide the assurance that different keying material > will be produced. Of course, an implementation will generate the umm value > using random number generator, not track the values that are used. Several > years ago, there was a discussion about the size of the ukm needed. Some > people were suggesting crazy large values, and the point was made that > anything beyond the SIZEOF(KEK) did not improve security. > > Are you asking for a sentence saying that the ukm, if present, MUST be at > least 128 bits? > > [JLS] I would disagree that the value has to be random, a counter will > work as well. (An encrypted counter is better.) I not be happy with a > fixed size requirement on this easier. There is no reason to make such a > requirement that I can think of. A 64-bit counter is just as rational. It > might make more sense to change this statement into something along the > lines of > > * Any pair of static keys MUST NOT be used more times than the size of the > key. I.e. if 128-bit KEKs may be used, then there is a 2^128 limit on the > number of times the key pair can be used. > * The size of the KEK is normally not longer than the length of the > resulting KEK as that is the limit of unique values that can be generated > in any event. > > > Section 2 already says that the ephemeral key MUST be used for only one > message. Thus, a UKM is not really needed. However, the CMS requires > support for a UKM if the sender include it. For this reason, the document > says how to handle it in the KDF if it is present. > > You are correct that a counter, encrypted counter, or random value will > work, even if the originator uses the same ephemeral key for many > messages. The text does not limit the choices in any way. > > The text already says that there is no security reason for a UKM value > that is longer than the KEK. I think that EKR is asking for guidance on > the minimum size too. > > [JLS] It’s kind of a stupid thing to do, but the minimum size would be one > bit. Although this is not legal from an ASN.1 standpoint – so the minimum > would be one byte. > > A single byte with all bits zero and two bytes with all bits zero are > different ukm values because of the way that they are used in the > ECC-CMS-SharedInfo structure. Note that this would not be the case if the > ukm value was only used as a salt value to HKDF. I do not see any reason > to specify a minimum length of this value. The only thing that is required > is uniqueness, EKR is correct about saying this. > > > I suggest: > > The ECC-CMS-SharedInfo entityUInfo field optionally contains > additional keying material supplied by the sending agent. Note that > [CMS] requires implementations to accept a KeyAgreeRecipientInfo > SEQUENCE that includes the ukm field. If the ukm field is present, > the ukm is placed in the entityUInfo field. When present, the ukm > ensures that a different key-encryption key is generated, even when > the originator ephemeral private key is improperly used more than > once. Therefore, if the ukm field is present, it MUST be selected in > a manner that ensures a unique KDF output; > Is this actually possible? The KDF is basically a PRF, so there is some chance that 0*128 and 1*128 produce the same output. -Ekr however, there is no > security benefit to using a ukm value that is longer than the key- > encryption key that will be produced by the KDF. > > Russ > >
- [Curdle] AD Review: draft-ietf-curdle-cms-ecdh-ne… Eric Rescorla
- Re: [Curdle] AD Review: draft-ietf-curdle-cms-ecd… Russ Housley
- Re: [Curdle] AD Review: draft-ietf-curdle-cms-ecd… Eric Rescorla
- Re: [Curdle] AD Review: draft-ietf-curdle-cms-ecd… Russ Housley
- Re: [Curdle] AD Review: draft-ietf-curdle-cms-ecd… Jim Schaad
- Re: [Curdle] AD Review: draft-ietf-curdle-cms-ecd… Eric Rescorla
- Re: [Curdle] AD Review: draft-ietf-curdle-cms-ecd… Russ Housley
- Re: [Curdle] AD Review: draft-ietf-curdle-cms-ecd… Russ Housley
- Re: [Curdle] AD Review: draft-ietf-curdle-cms-ecd… Jim Schaad
- Re: [Curdle] AD Review: draft-ietf-curdle-cms-ecd… Russ Housley
- Re: [Curdle] AD Review: draft-ietf-curdle-cms-ecd… Eric Rescorla
- Re: [Curdle] AD Review: draft-ietf-curdle-cms-ecd… Jim Schaad
- Re: [Curdle] AD Review: draft-ietf-curdle-cms-ecd… Russ Housley
- Re: [Curdle] AD Review: draft-ietf-curdle-cms-ecd… Eric Rescorla
- Re: [Curdle] AD Review: draft-ietf-curdle-cms-ecd… Russ Housley
- Re: [Curdle] AD Review: draft-ietf-curdle-cms-ecd… Eric Rescorla
- Re: [Curdle] AD Review: draft-ietf-curdle-cms-ecd… Russ Housley
- Re: [Curdle] AD Review: draft-ietf-curdle-cms-ecd… Eric Rescorla
- Re: [Curdle] AD Review: draft-ietf-curdle-cms-ecd… Russ Housley