Re: [TLS] Curve25519 and TLS

Watson Ladd <watsonbladd@gmail.com> Fri, 13 June 2014 21:59 UTC

Return-Path: <watsonbladd@gmail.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5F17A1B2A79 for <tls@ietfa.amsl.com>; Fri, 13 Jun 2014 14:59:46 -0700 (PDT)
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, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] 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 yk2mhCbkmxnD for <tls@ietfa.amsl.com>; Fri, 13 Jun 2014 14:59:40 -0700 (PDT)
Received: from mail-yk0-x22b.google.com (mail-yk0-x22b.google.com [IPv6:2607:f8b0:4002:c07::22b]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9AD341B2A7A for <tls@ietf.org>; Fri, 13 Jun 2014 14:59:40 -0700 (PDT)
Received: by mail-yk0-f171.google.com with SMTP id 200so2524199ykr.2 for <tls@ietf.org>; Fri, 13 Jun 2014 14:59:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=e50aRdxZ9vi5ApAx6ACgAG75EqkhygCnKT2vPGBmmzk=; b=qgci8EBVaY9d+8VgkvBI86EfrDj9fQlLamK/VbczY6TgA1p+DqFS1IaQv2Nt/TDfN+ OfUH8CMAx5toLS7g8dhVI3B1hyiQsCWdmDa8/YjQeX8LZVCLZMdtsZydgABLV0zwiQNH OB0C0qGms3XtJKO5wX//JRLfJ8oe2sTj4vPg00rltzzrOA2mpfy/XEH95y1Hjw7oajaj hNcnpd7GSitgKd7TqW3gbyN0iDGFFrldsRGIP+okY+b29OtbCt1TxWRmg0L3+sSubXw2 0tlWjmWf7i7cQSLp1IMcwoobyjj8E/N22XZERzQ89QbM204kTP/LpvhBlZgzR+/XwvER g+5w==
MIME-Version: 1.0
X-Received: by 10.236.1.229 with SMTP id 65mr8319807yhd.107.1402696779974; Fri, 13 Jun 2014 14:59:39 -0700 (PDT)
Received: by 10.170.39.136 with HTTP; Fri, 13 Jun 2014 14:59:39 -0700 (PDT)
In-Reply-To: <539B6F1B.4030407@mit.edu>
References: <CACsn0cnm3wp6iN57fHAiY+=n=nSxOxvrZOj65bzXYTDy=Xyvkg@mail.gmail.com> <539B6F1B.4030407@mit.edu>
Date: Fri, 13 Jun 2014 18:59:39 -0300
Message-ID: <CACsn0c=VUakySUwAh-JGX4FTUwp4Y5kwaoT5=+RXuJnsKxmRTQ@mail.gmail.com>
From: Watson Ladd <watsonbladd@gmail.com>
To: Andy Lutomirski <luto@amacapital.net>
Content-Type: text/plain; charset="UTF-8"
Archived-At: http://mailarchive.ietf.org/arch/msg/tls/dshpT8hGjCyb1a-Q1Sj87M-CJAY
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] Curve25519 and TLS
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tls/>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 13 Jun 2014 21:59:47 -0000

On Fri, Jun 13, 2014 at 6:37 PM, Andy Lutomirski <luto@amacapital.net> wrote:
> On 06/13/2014 02:30 PM, Watson Ladd wrote:
>> For TLS 1.3 we should ensure contributory behaviour is not required to
>> avoid these issues.
>
> What needs to change for this to be the case?  It would be even nicer if
> the result were provably correct in some reasonable model.

Hash the entire exchange into the generated key, so that a key made by
someone cheating is only shared with them. I still don't understand
why this isn't done already: it's needed for the finished message, so
nothing is saved by not doing it. This is what the triple handshake
fix is supposed to do, but it does a strange variant that reuses the
oddball finished message.

(And use a strong hash function: apparently the reason we haven't
finished fixing Triple Handshake is that some people want to use
SHA-1. On their heads be it!)

If the protocol is simple enough CryptoVerif can do the proofs with
some prodding: proving shouldn't really be the issue. Hashing helps
here by enabling the formation of a concept of "matching exchange",
and thus significantly constraining an attacker.

Sincerely,
Watson Ladd