Re: [TLS] Cleaning up 0-RTT Signaling (ciphersuites, replays, PSK context)

Ilari Liusvaara <ilariliusvaara@welho.com> Fri, 25 March 2016 16:49 UTC

Return-Path: <ilariliusvaara@welho.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5810212D715 for <tls@ietfa.amsl.com>; Fri, 25 Mar 2016 09:49:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level:
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] 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 UZ2e82C3Hcjy for <tls@ietfa.amsl.com>; Fri, 25 Mar 2016 09:49:10 -0700 (PDT)
Received: from welho-filter1.welho.com (welho-filter1.welho.com [83.102.41.23]) by ietfa.amsl.com (Postfix) with ESMTP id 794E512D67E for <tls@ietf.org>; Fri, 25 Mar 2016 09:49:08 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by welho-filter1.welho.com (Postfix) with ESMTP id 3719C2DB4; Fri, 25 Mar 2016 18:49:07 +0200 (EET)
X-Virus-Scanned: Debian amavisd-new at pp.htv.fi
Received: from welho-smtp3.welho.com ([IPv6:::ffff:83.102.41.86]) by localhost (welho-filter1.welho.com [::ffff:83.102.41.23]) (amavisd-new, port 10024) with ESMTP id gmyttMmnZDnd; Fri, 25 Mar 2016 18:49:06 +0200 (EET)
Received: from LK-Perkele-V2 (87-100-143-35.bb.dnainternet.fi [87.100.143.35]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by welho-smtp3.welho.com (Postfix) with ESMTPSA id D77FE2310; Fri, 25 Mar 2016 18:49:06 +0200 (EET)
Date: Fri, 25 Mar 2016 18:49:05 +0200
From: Ilari Liusvaara <ilariliusvaara@welho.com>
To: Bill Cox <waywardgeek@google.com>
Message-ID: <20160325164904.GB13213@LK-Perkele-V2.elisa-laajakaista.fi>
References: <BC748097-6833-4BEB-9282-AF278B00FB96@inria.fr> <20160325115343.GA13213@LK-Perkele-V2.elisa-laajakaista.fi> <68AC2856-70B5-4B4C-80E8-B8AD1512199A@inria.fr> <CAH9QtQFkaGZjc85vRuK0vB5g4--5od8vRmrBU0ejp+k+KWUmJg@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
In-Reply-To: <CAH9QtQFkaGZjc85vRuK0vB5g4--5od8vRmrBU0ejp+k+KWUmJg@mail.gmail.com>
User-Agent: Mutt/1.5.24 (2015-08-30)
Sender: ilariliusvaara@welho.com
Archived-At: <http://mailarchive.ietf.org/arch/msg/tls/knMj0oqycIsNu57jvsSKTKdlViM>
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] Cleaning up 0-RTT Signaling (ciphersuites, replays, PSK context)
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.17
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: <https://mailarchive.ietf.org/arch/browse/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, 25 Mar 2016 16:49:16 -0000

On Fri, Mar 25, 2016 at 08:33:20AM -0700, Bill Cox wrote:
> Adding 1 byte EarlyDataType seems like a good idea.
> 
> As for the CipherSuite, assuming DH-0RTT goes away, would it be simpler to
> require that the cipher suite negotiated from the original 1-RTT connection
> be used?

TLS_PSK_* or TLS_ECDHE_PSK_*? Apparently the design currently includes
doing ECDHE_PSK_* together with PSK for 0-RTT. And the unified session
resumption is pure-PSK.

So it would look like there are at least two valid ciphersuites...
 
> For channel binding, the only mode that seems to work with 0-RTT is when we
> issue new tickets on each 0-RTT connection to emulate a single session like
> we have in TLS 1.2, and use a replay cache on the server.  The only valid
> proof-of-possession the server can do with the client before processing
> application requests is the one done on the 1-RTT connection, so this
> single proof needs to secure the entire chain of 0-RTT connections.  The
> master resumption secret becomes a bearer token and needs to be protected
> accordingly.

Once the crypto problems with DH-0RTT are fixed, one can use that with
similar guarantees, but without sensitive state being kept by the client.
 
> The Export Key Material API also needs to be updated.  The simplest
> implementation where keys are derived from the current ephemeral secrets
> will cause the exported keys to be different whenever new keys are
> negotiated.  This will probably cause bugs at the application layer.  We
> may need to have an EKM API that depends only on the original PSK, and
> another one for generating ephemeral EKM material.

Err... You mean new exporter keys when doing new handshake? If so, that
is intended. Or new exporter keys when rolling over keys? IIRC, key
rollover only updates traffic keys, not the key used for exporter.

And also, at TLS level? What is the "original PSK"?


-Ilari