Re: [Curdle] Second AD Review: draft-ietf-curdle-ssh-curves.

Benjamin Kaduk <kaduk@mit.edu> Tue, 30 July 2019 21:47 UTC

Return-Path: <kaduk@mit.edu>
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 2DAF1120111; Tue, 30 Jul 2019 14:47:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=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 QHPufy-ppklY; Tue, 30 Jul 2019 14:47:10 -0700 (PDT)
Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) (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 7BF84120074; Tue, 30 Jul 2019 14:47:07 -0700 (PDT)
Received: from kduck.mit.edu ([24.16.140.251]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id x6ULl3AX015175 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 30 Jul 2019 17:47:05 -0400
Date: Tue, 30 Jul 2019 16:47:02 -0500
From: Benjamin Kaduk <kaduk@mit.edu>
To: draft-ietf-curdle-ssh-curves.all@ietf.org
Cc: draft-ietf-curdle-ssh-curves.all@ietf.org, curdle <curdle@ietf.org>
Message-ID: <20190730214702.GS47715@kduck.mit.edu>
References: <CABcZeBM1xaLR2RqYo8_VmO1ue2qr3rn_52MhSDHagKhNF-AYQA@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <CABcZeBM1xaLR2RqYo8_VmO1ue2qr3rn_52MhSDHagKhNF-AYQA@mail.gmail.com>
User-Agent: Mutt/1.10.1 (2018-07-13)
Archived-At: <https://mailarchive.ietf.org/arch/msg/curdle/YgmI648TkhCiZbjw7RTPcdpX9u0>
Subject: Re: [Curdle] Second AD Review: draft-ietf-curdle-ssh-curves.
X-BeenThere: curdle@ietf.org
X-Mailman-Version: 2.1.29
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, 30 Jul 2019 21:47:12 -0000

I took over as responsible AD for this draft from Eric, but I don't
see any response to this second round of review comments.  Luckily there's
mot much left, so hopefully we can get a new rev out quickly and move the
document forward.

Thanks,

Ben

On Mon, Dec 24, 2018 at 02:16:24PM -0800, Eric Rescorla wrote:
> Thanks for addressing my comments.
> 
> IMPORTANT
> S 3.
> >      received public keys are not the expected lengths, or if the derived
> >      shared secret only consists of zero bits.  No further validation is
> >      required beyond what is discussed in [RFC7748].  The derived shared
> >      secret is 32 bytes when Curve25519 is used and 56 bytes when Curve448
> >      is used.  The encodings of all values are defined in [RFC7748].  The
> >      hash used is SHA-256 for Curve25519 and SHA-512 for Curve448.
> 
> This is true if you use the 7748 algorithm, but not necessarily
> otherwise.
> 
> Here is some OK language (from tcpcrypt)
> 
>  Key-agreement schemes ECDHE-Curve25519 and ECDHE-Curve448 perform the
>    Diffie-Helman protocol using the functions X25519 and X448,
>    respectively.  Implementations SHOULD compute these functions using
>    the algorithms described in [RFC7748].  When they do so,
>    implementations MUST check whether the computed Diffie-Hellman
> shared
>    secret is the all-zero value and abort if so, as described in
>    Section 6 of [RFC7748].  Alternative implementations of these
>    functions SHOULD abort when either input forces the shared secret
> to
>    one of a small set of values, as discussed in Section 7 of
> [RFC7748].
> COMMENTS
> S 1.
> >      key exchange protocol described in [RFC4253] supports an extensible
> >      set of methods.  [RFC5656] describes how elliptic curves are
> >      integrated in SSH, and this document reuses those protocol messages.
> >
> >      This document describes how to implement key exchange based on
> >      Curve25519 and Ed448-Goldilocks [RFC7748] in SSH.  For Curve25519
> 
> 7748 calls this Curve448 and you do so later, so please be consistent.