Re: [TLS] OPTLS: Signature-less TLS 1.3
Eric Rescorla <ekr@rtfm.com> Tue, 04 November 2014 14:13 UTC
Return-Path: <ekr@rtfm.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 519F21A8765 for <tls@ietfa.amsl.com>; Tue, 4 Nov 2014 06:13:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.977
X-Spam-Level:
X-Spam-Status: No, score=-1.977 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, 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 BImwj6Dkizvh for <tls@ietfa.amsl.com>; Tue, 4 Nov 2014 06:13:14 -0800 (PST)
Received: from mail-wi0-f173.google.com (mail-wi0-f173.google.com [209.85.212.173]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 500CE1A6F90 for <tls@ietf.org>; Tue, 4 Nov 2014 06:13:14 -0800 (PST)
Received: by mail-wi0-f173.google.com with SMTP id n3so9514419wiv.6 for <tls@ietf.org>; Tue, 04 Nov 2014 06:13:13 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=WGFIbYCVW9xQdpkRhD7D4AHcu0ADOY1Z5MtVI0nVMNg=; b=K7Wd10JSz8cmu228UemsFB+T/T4tTnYaCx+79Ix7PWITFdoUXEZcA857xPSEndEINN jwhUgUhPeO0Zg+jaikvv4Clv09SnZlg+bL1zGJRJCNNCwEbKhZc76MvA2jkmv5YGRgYf kQ3kLrrwZdV8cbaIfQYi2Xg1SB4KtCc3MprxQgRrIUy1TaIoRx1hrCylN0YhJWvL7Ucq WX6BCnyRbunr0C2sO67eJhB7iUIQcXbHtUFYuL4XrICAaV420wOW8Ry3AYF3TAhn5b2q YNa7p8JPOf4obuITUmj3D2JY1NnQ0wnb7nuOPVfomHNWaABgOeEvFWAfIqlSLjxcsifC rUeg==
X-Gm-Message-State: ALoCoQkYG22boqQ49rR+p6nPoI8h3OkZWcjT/w7lVvdjNfel8yQyXZkCIj41lmMYZ3CelMvyqZKB
X-Received: by 10.194.79.201 with SMTP id l9mr56767250wjx.59.1415110392948; Tue, 04 Nov 2014 06:13:12 -0800 (PST)
MIME-Version: 1.0
Received: by 10.216.49.198 with HTTP; Tue, 4 Nov 2014 06:12:31 -0800 (PST)
In-Reply-To: <CACsn0cnkRZ5ZzX0bHfVFsvsrNoJxU2Txs0O2YW386fsg9GF1vQ@mail.gmail.com>
References: <CADi0yUObKsTvF6bP=SxAwYA05odyWdzR1-sWutrDLUeu+VJ1KQ@mail.gmail.com> <CABcZeBNQBC1XXFR5sGo=V8WmxmL5thaBpeHSasy3SordbqNRTQ@mail.gmail.com> <CADi0yUMM6C=NpvFsc67J6Dc6uEO3OZ490tFWhAYmD362mC+D4A@mail.gmail.com> <CABcZeBNKpTMg+xhMK5TnO_W99MotoPw+_m9yrTqTUSwqyPpUPA@mail.gmail.com> <CACsn0cnkRZ5ZzX0bHfVFsvsrNoJxU2Txs0O2YW386fsg9GF1vQ@mail.gmail.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Tue, 04 Nov 2014 06:12:31 -0800
Message-ID: <CABcZeBMQc5Mb_FK3davMxi0oBgzawqCMaYp1DqGYgg3nEHYHHw@mail.gmail.com>
To: Watson Ladd <watsonbladd@gmail.com>
Content-Type: multipart/alternative; boundary="047d7bf0d0f64a38570507091052"
Archived-At: http://mailarchive.ietf.org/arch/msg/tls/oZkncPJH459Twnl-rjGYTBf0_DA
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] OPTLS: Signature-less TLS 1.3
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, 04 Nov 2014 14:13:17 -0000
On Mon, Nov 3, 2014 at 7:02 PM, Watson Ladd <watsonbladd@gmail.com> wrote: > On Sun, Nov 2, 2014 at 2:33 PM, Eric Rescorla <ekr@rtfm.com> wrote: > > On Sun, Nov 2, 2014 at 2:05 PM, Hugo Krawczyk <hugo@ee.technion.ac.il>> > The second option may be trivial, if the client already has some > > generic key storage mechanism (e.g., one in software) though it's of > > course more work for the programmer. However, if the client has a > > non-generic key storage mechanism, such as a smart card with their > > key, then this becomes a significant problem, as it may not be able to > > store a DH key and/or use it for the kind of key derivation that > > would be required here. In that case, the client must find somewhere > > to store the DH key, which may entail significant effort. > > > > > > This last point points us to a larger issue we need to consider here, > > which is as follows. In TLS as it currently stands (both in 1.2 and > > the current TLS 1.3 draft), you can implement a system where the > > authentication keys are stored in hardware and an attacker who > > compromises either the client and the server cannot steal a credential > > which he can then use to establish new sessions [Note that if > > he steals the session cache, he can use it to resume old sessions.] > > In particular, because each signature is tied to a specific exchange, > > the attacker cannot reuse signed ephemeral values to impersonate the > > server. > > 1: If ephemerals are reused, you can MITM until they are refreshed. A > time-bounded cert equivalent isn't worse in this regard. > I'm not following your reasoning here. For convenience, let's restrict ourselves to thinking about 1-RTT handshakes. With TLS 1.2 (or the current TLS 1.3 draft), the server can stop future clients from accepting any DH share simply by refusing to sign any further handshakes with that share. If, for instance, it determines a share has been compromised, it can prevent any new connection initiations with that share. By contrast, with a time-bounded cert, an attacker can get clients to continue using that share until the time expires (or perhaps longer, as you suggested elsewhere). The situation is of course somewhat more complicated with 0-RTT because the server must provide the client with a DH share which he can use for future connections. However, he need not provide every client with the *same* key, and if the key is authenticated as part of the initial connection establishment, an attacker cannot convince other clients to use that key. This is not true with certificates (or of statically signed keys) which are inherently portable. 3: 0-RTT requires a certificate that can be used for encryption as > well as signing, in ways that don't interfere. We need to use a DH > share anyway for this, and might as well use it again. I'm not sure I follow what you're saying here either. It's true that the server needs to supply a semi-static DH share, but there's no inherent reason it needs to be supplied as part of a free-standing transferrable credential such as a certificate, though of course doing so allows you to amortize the signature. > However, in a system where the server signs a long-term DH value, it > > may be the case that that value cannot be stored in the same hardware > > module that you are using for your signature key (purely for > > implementation reasons having to do with the interface the module > > exposes). In that case, the DH secret will be stored in software and > > compromise of the server potentially leaks a credential which can be > > used to impersonate the server for a significant period of time, where > > that time is dictated by the maximum amount of client-side clock error > > the server is willing to tolerate, so probably measured in days to > > weeks (and more if you are concerned about the time resetting attack > > Watson, Ilari, and I were discussing.) I haven't decided yet sure how > > serious an issue this is, but it's probably worth addressing > > explicitly. > > I'm not sure, because it wasn't explicitly addressed in Hugo's > original email, but it seems that the relevant server question is how > long it wants to receive 0-RTT without requiring the client to find > the new address: I don't remember resumption being addressed one way > or the other. So the server isn't picking the DH share lifetime for > reasons of clock skew, but rather for PFS refreshment if 0-RTT is > being used. I think we may be talking past each other. Let me try again. Forget about 0-RTT and just consider the 1-RTT flow. In the first flight the server needs to supply a signed version of g^s. Unless we want that value to be acceptable to clients indefinitely, it must have some validity interval. However, because clients have inaccurate clocks, that interval can't be too narrow or it will cause clients to reject the g^s value. I'm not sure how narrow it can be, but I would be surprised if it were less than 12 hours or so. Perhaps someone who runs a large server farm can report on the values they have historically seen in the GMT field of the ClientRandom. -Ekr
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Rene Struik
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Hugo Krawczyk
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Rene Struik
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Hugo Krawczyk
- [TLS] OPTLS: Signature-less TLS 1.3 Hugo Krawczyk
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Eric Rescorla
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Eric Rescorla
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Watson Ladd
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Nikos Mavrogiannopoulos
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Ilari Liusvaara
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Eric Rescorla
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Watson Ladd
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Eric Rescorla
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Watson Ladd
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Eric Rescorla
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Manuel Pégourié-Gonnard
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Watson Ladd
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Hugo Krawczyk
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Hugo Krawczyk
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Hugo Krawczyk
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Eric Rescorla
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Eric Rescorla
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Eric Rescorla
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Nico Williams
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Nico Williams
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Hanno Böck
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Peter Gutmann
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Martin Thomson
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Watson Ladd
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Hugo Krawczyk
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Hugo Krawczyk
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Eric Rescorla
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Hugo Krawczyk
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Martin Thomson
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Nico Williams
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Watson Ladd
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Nico Williams
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Watson Ladd
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Eric Rescorla
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Hugo Krawczyk
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Martin Thomson
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Andy Lutomirski
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Watson Ladd
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Andy Lutomirski
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Hugo Krawczyk
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Daniel Kahn Gillmor
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Daniel Kahn Gillmor
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Martin Thomson
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Daniel Kahn Gillmor
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Martin Thomson
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Watson Ladd
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Eric Rescorla
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Yoav Nir
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Daniel Kahn Gillmor
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Nico Williams
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Nico Williams
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Nico Williams
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Yoav Nir
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Nico Williams
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Watson Ladd
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Daniel Kahn Gillmor
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Hugo Krawczyk
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Watson Ladd
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Nico Williams
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Nico Williams
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Nico Williams
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Yoav Nir
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Nico Williams
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Hugo Krawczyk
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Watson Ladd
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Hugo Krawczyk
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Salz, Rich
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Blumenthal, Uri - 0558 - MITLL
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Hugo Krawczyk
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Watson Ladd
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Salz, Rich
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Dan Brown
- Re: [TLS] OPTLS: Signature-less TLS 1.3 Hugo Krawczyk