Re: [TLS] Constant Finished (was Re: Kill Finished)

Michael StJohns <msj@nthpermutation.com> Tue, 29 April 2014 18:18 UTC

Return-Path: <msj@nthpermutation.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 C1A351A0949 for <tls@ietfa.amsl.com>; Tue, 29 Apr 2014 11:18:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level:
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7] 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 JQgPYPLVrem8 for <tls@ietfa.amsl.com>; Tue, 29 Apr 2014 11:18:28 -0700 (PDT)
Received: from mail-qc0-f180.google.com (mail-qc0-f180.google.com [209.85.216.180]) by ietfa.amsl.com (Postfix) with ESMTP id 80C0D1A06D7 for <tls@ietf.org>; Tue, 29 Apr 2014 11:18:28 -0700 (PDT)
Received: by mail-qc0-f180.google.com with SMTP id w7so691022qcr.11 for <tls@ietf.org>; Tue, 29 Apr 2014 11:18:26 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :cc:subject:references:in-reply-to:content-type :content-transfer-encoding; bh=nd7ffwxixktIJpVyW51ZZDztRnkb/MTR1fgtxmdjHng=; b=GW71UNB9Kw1GguvkWkbCcf8cPIwAU19ymHMA4nD+QgkQpk/r1BOPodpxM9Mu7X4oQ6 vCH+CsXpObyLK7a1R67biRTx2wjTketyOoZ6dh+vwNfAB8NxiWhYmdC4wLzVBZ4AI3xS Jw8BhN+DRn15Tlvkm2DGl6YWsc+ZutdMjZKgJIXY/hZXOt7qUQ6T6Y0r9mgBVPSZdpgC 5f2nn9Umk0kFrit2UEt1o0Z9PFT+gnoFp2HNfmOzMnUGeokqgySwnACm6CYzngoBLhjg anxENcdReAdpPo4Jr05DIqlHM9yFcPydlYgCT1WSllfG5m5JIavHKegl20rJNM/KlwsW nSCw==
X-Gm-Message-State: ALoCoQlY2urpH3sY3fbXzBGJ4iOhwTtidiRP0JLHCvdXdWXvzabjYvJACOUK7dhnq79HCU5w9BC9
X-Received: by 10.224.97.69 with SMTP id k5mr44817705qan.8.1398795506813; Tue, 29 Apr 2014 11:18:26 -0700 (PDT)
Received: from [192.168.1.105] (c-68-34-113-195.hsd1.md.comcast.net. [68.34.113.195]) by mx.google.com with ESMTPSA id d110sm8392261qge.17.2014.04.29.11.18.25 for <multiple recipients> (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 29 Apr 2014 11:18:26 -0700 (PDT)
Message-ID: <535FECF0.8070905@nthpermutation.com>
Date: Tue, 29 Apr 2014 14:18:24 -0400
From: Michael StJohns <msj@nthpermutation.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0
MIME-Version: 1.0
To: Watson Ladd <watsonbladd@gmail.com>
References: <CACsn0cm7CU3HBOY-m90+HwGBuw+nZ7vyqRdHZcfDjw7wiTmDMw@mail.gmail.com> <5350BF46.7000608@pobox.com> <53513A6B.8080606@nthpermutation.com> <CACsn0c=gvQ9BbEifDkiiiNnUN-qdnYNOkVFZe0HX6hWwZNJNGQ@mail.gmail.com> <53517880.7080801@pobox.com> <CABkgnnXxfU9y+PohcpxWd98angXRpQOSSzmSh2DObdzrcdLm0A@mail.gmail.com> <53518A8D.4080107@pobox.com> <535425E8.4050808@nthpermutation.com> <CACsn0cnObqEv_=rXzvVjsbpbOstqNVOA1oQmvA4TmW0w3E1-sA@mail.gmail.com>
In-Reply-To: <CACsn0cnObqEv_=rXzvVjsbpbOstqNVOA1oQmvA4TmW0w3E1-sA@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: http://mailarchive.ietf.org/arch/msg/tls/R21WZGSQE0kcGQc_TqfF6VggmMs
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] Constant Finished (was Re: Kill Finished)
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: Tue, 29 Apr 2014 18:18:29 -0000

Meant to finish up on this.

On 4/20/2014 4:21 PM, Watson Ladd wrote:
> On Sun, Apr 20, 2014 at 12:54 PM, Michael StJohns
> <msj@nthpermutation.com> wrote:
>> In some ways, the right answer might be to do a finished signature not over
>> the messages, but over the content of SecurityParameters - with assumption
>> that the SecurityParameters pseudo-structure is extended to provide enough
>> information about offers and acceptances.
> Why bother when we have the transcript which gives us exactly that?

Because, you have to start the transcript before you know which summary 
function you're going to negotiate - e.g. which PRF for the 
cryptosuite.  That gives you some issues with respect to negotiation of 
the PRF (and as we've been talking about an issue doing this for block 
cipher based PRFs)

A signature over the transcript of all messages is really about signing 
the final snapshot state the results from those messages. In an ideal 
world, SecurityParameters would hold all of that state.   AFAIK, 
SecurityParameters currently appears to hold all of the state except 
that generated from extension negotiation. Adding that in would allow a 
single HMAC signature over the SecurityParameters pseudo structure to 
replace the current HASH the messages then HMAC approach used to provide 
the Finished message tag.

As I suggested elsewhere - it really should be possible to build a 
lightweight TLS1.3 system based on PSK and using only the AES block 
encrypt function.  (Or other block encrypt function for other domains).  
To enable this, we either need to get the summary function 
(HASH(handshake_messages)) out of the middle, OR come up with a pretty 
standard block-cipher based hashing mechanism.

The problem with the latter approach is that I'm unable to find a 
"standard" (e.g. issued by IEEE, NIST, X9 etc) block cipher hash 
construct.  There are plenty of academic papers, but nothing that meets 
the "BCP" (Best Commercial Practice) smell test.


> What you propose can work, but if we mess it up it won't be pretty.
> Furthermore, if an extension isn't actually authenticated that's a
> rather big semantic gap. Suppose ALPN wasn't authenticated, and the
> same string could have two different meanings under two different
> protocols. The right answer is never to remove properties TLS provides
> today.

The right answer is to understand what properties you actually get and 
make sure they're providing what you want and need (c.f. heartbeat for a 
counter example).   Even crypto specifications say that it's ok to do 
things in different ways as long as you get the same answers.


>
>