Re: [TLS] KeyUpdate and unbounded write obligations
Judson Wilson <wilson.judson@gmail.com> Wed, 24 August 2016 05:45 UTC
Return-Path: <wilson.judson@gmail.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 B529212D751 for <tls@ietfa.amsl.com>; Tue, 23 Aug 2016 22:45:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 JFDbQKbM2GQO for <tls@ietfa.amsl.com>; Tue, 23 Aug 2016 22:45:09 -0700 (PDT)
Received: from mail-it0-x231.google.com (mail-it0-x231.google.com [IPv6:2607:f8b0:4001:c0b::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 36CDA12D6AF for <tls@ietf.org>; Tue, 23 Aug 2016 22:45:09 -0700 (PDT)
Received: by mail-it0-x231.google.com with SMTP id n128so16456446ith.1 for <tls@ietf.org>; Tue, 23 Aug 2016 22:45:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=80278W1aZRuxcYS/JL05ggpHDUVjQTAO9Cz8rt1NmKg=; b=t/uAPGMkyxvkvMDFykPfGEawqXUAi55I3oItRC0i3ztpV/qzpbieCJU8BKJG5MQOs2 8H9n7/GIYOqZ7K6IV5U88FyIqmR/+HMR4It7QoWGgVvkfuT0geg/j5KlaRBfdnbtSGCJ ZAL1YsNfrnwCb3s4v8k3/MdWeRGrapL6RwzbxEXTwBo089tNl60Nsg3yXI5dhKurkILW AqoKM1n2Q1IUYSHFXoH5xsZx5mQGivUmwbKUL4JcfCkyDlcpBjc2IRw+iJurouGAQGES obP0EqZIW81Cz0udJ7jmfJgr9WerLLt47q/h55IyowIPAWfdYlIGDbticnQcB5snkA/e vv7A==
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; bh=80278W1aZRuxcYS/JL05ggpHDUVjQTAO9Cz8rt1NmKg=; b=LfCEjTW2smUjSCrf4cuNfBJEv4Gie+ZaHS3THwpDZrJ3nnM10hVyvrxNR0V8DwkI1K LHni0Iz89UdS5ZYl31YysWcZZSnxwtXyliny/hT1KqlGaIDm+gn7u0nyvAgqYkVlQBRI kGdWd/oIJR4b1eR1hIClE6vgpXDQe/r/+StioK0cMcri85ekFnRmxNj95KNWs9y7p/1Y uCbcUa8Fxlk/IYT7mpuj+eZ/0fiToBjwPFbXcULdC6O15gkUgmzIRK0rMGp/J1jSxF0X 5JTngQPHW4BhAWZmRC32Bvg88PJKbg9pXyglC/r6FV4fnoJJFN/ubhZhEMa3cl7hp2WM R1bQ==
X-Gm-Message-State: AEkoousPn2SoxxLwdbaG8EhCOCchLKuLFS8H1J152uOytozRdGql2ebH3LhKStmLqaFehxOVUXmsbUb4rpaVnw==
X-Received: by 10.36.2.137 with SMTP id 131mr31212911itu.30.1472017508476; Tue, 23 Aug 2016 22:45:08 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.64.33.240 with HTTP; Tue, 23 Aug 2016 22:45:07 -0700 (PDT)
In-Reply-To: <974CF78E8475CD4CA398B1FCA21C8E99565C26C5@PRN-MBX01-4.TheFacebook.com>
References: <CAF8qwaDgGHGmuBwhZEz9-=Ss2bfzNAYWfmnbMqQDxTQnMUpH7g@mail.gmail.com> <93086b3c-ca1b-4c37-67e1-efbf417a8b58@akamai.com> <CAF8qwaDfWdCCQpD8z8iY0BMJjbrf8qi-qf5X7mSe8m+hNZu-FQ@mail.gmail.com> <CAMzhQmPB0GXZzh+g=-TMmAp9HQxpZUPcht4zi3_K7WW_ouGg6A@mail.gmail.com> <CAF8qwaC_NGmx4pW=HwsqWTnvZysFhXayHJ1wPVAakWHo7nunxA@mail.gmail.com> <CAMfhd9UOOXLRmNjJogikQHa8QJx+HSLO-WuwJhgKKgAA-5TeBQ@mail.gmail.com> <CAMzhQmOmOou6SvmZygJ6emfn2xAnU_jT7zb005fD4NRuOLmnPg@mail.gmail.com> <CAMfhd9UQaiWH_CAKNUMymARJAsWv4+3AatjgNEqrD78-rakubA@mail.gmail.com> <CAMzhQmMnG2cgbfOZE0VDgFRpF15B+yjx2E5G-V2fh2TwLiDcBQ@mail.gmail.com> <CAMfhd9UQ3jHLcUObBORi0Z_QQi2n4-fL9_KCwLvcDKTkJN1z5A@mail.gmail.com> <CAMzhQmMaBp0sPca9xb9jVrC=mjtZ8Rq3FnH8R8x6jcOxBO=9nA@mail.gmail.com> <CAMfhd9XxLq-S6c5K-JE50Wgm24JHihN++OawnVgQueMM8BuGuA@mail.gmail.com> <7e9c315a-f0e6-f547-e5e9-a3f48f8d12ff@cs.tcd.ie> <CAMzhQmN8=pw4LGHtZHyRQcVsx4DGwE89GNpHPUSENfbxcTHwRA@mail.gmail.com> <974CF78E8475CD4CA398B1FCA21C8E99565C26C5@PRN-MBX01-4.TheFacebook.com>
From: Judson Wilson <wilson.judson@gmail.com>
Date: Tue, 23 Aug 2016 22:45:07 -0700
Message-ID: <CAB=4g8LQoGKKNoZ93_QnWBv1zzXaR7m25kV=rupg3fp4pGVk+Q@mail.gmail.com>
To: Subodh Iyengar <subodh@fb.com>
Content-Type: multipart/alternative; boundary="001a1144756ab22f1b053acac89a"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/KvR8ZxIiXdKV_2EufLH6ea6v7mo>
Cc: Adam Langley <agl@imperialviolet.org>, "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] KeyUpdate and unbounded write obligations
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: Wed, 24 Aug 2016 05:45:13 -0000
> > > For the use cases you mentioned Keith, they seem to be specific to > application triggered key updates, i.e. key updates do not mean anything to > the TLS layer apart from I got a key update and I must change keys. The > fact that other side has thrown away it's key is only meaningful to the > higher layer protocol. I imagine protocols like HTTP would not add these > semantics, and these semantics would be added to very specific IoT > protocols? Would the scope of the auditor be defined as a part of that > protocol, or does it need to be defined as a part of TLS? > > It makes more sense to have the TLS layer disseminate information about which keys are in use, rather than have the higher layer try to infer it. Conceivably, either endpoint can cooperate with a user to by giving the user the keys that are no longer in use on the channel. (Endpoints can already do this, but without any guarantee that the keys are not in use.) With the very small piggyback that Keith proposed, a client application could get an assurance which keys are no longer in use, without any changes on the server side. TLS termination devices, load balancers, reverse proxies, and HTTP servers would all be compatible without any further changes - the format on the wire would be unchanged. I also believe that we all agree that adding a full auditing spec is far beyond the scope of TLS. However, with this small change to KeyUpdate, there might be opportunities to add such a feature to IoT devices without having to re-engineer the front end of a cloud application - the wire compatibility is a really nice feature in this regard. An IoT device could possibly be compliant with some future auditing spec while using plain-old HTTP and TLS 1.3 in the cloud. If key update is an application triggered mechanism, does the generation > identifier need to be an integer to be understood by the TLS layer or could > it also be an opaque identifier sent by the application. It would be much > simpler not to have to deal with the requirements of consistency at the TLS > layer and would make the API simpler. I don't think this introduces any kind of consistency issues at the TLS layer. The receiver simply needs to keep count of the receive key generation, and put this number (or even a numerically smaller one) in any subsequent outgoing KeyUpdate. It would also be sufficient to transmit a boolean indicating whether the KeyUpdate message is an initiating message, or a response message (I am omitting some details), but that would not work well with mitigating this multiple KeyUpdate backlog issue which is the original topic of this thread. On Tue, Aug 23, 2016 at 11:47 AM, Subodh Iyengar <subodh@fb.com> wrote: > For people that currently use keyupdates or who are planning to use key > updates, which layer are you planning to trigger a key update? Would the > TLS implementation itself trigger the update or would the application > trigger it? For renegotation, I believe it was mostly triggered by the > application. > > For the use cases you mentioned Keith, they seem to be specific to > application triggered key updates, i.e. key updates do not mean anything to > the TLS layer apart from I got a key update and I must change keys. The > fact that other side has thrown away it's key is only meaningful to the > higher layer protocol. I imagine protocols like HTTP would not add these > semantics, and these semantics would be added to very specific IoT > protocols? Would the scope of the auditor be defined as a part of that > protocol, or does it need to be defined as a part of TLS? > > If key update is an application triggered mechanism, does the generation > identifier need to be an integer to be understood by the TLS layer or could > it also be an opaque identifier sent by the application. It would be much > simpler not to have to deal with the requirements of consistency at the TLS > layer and would make the API simpler. > > Subodh > ________________________________________ > From: TLS [tls-bounces@ietf.org] on behalf of Keith Winstein [ > keithw@cs.stanford.edu] > Sent: Friday, August 19, 2016 8:40 PM > To: Stephen Farrell > Cc: Adam Langley; tls@ietf.org > Subject: Re: [TLS] KeyUpdate and unbounded write obligations > > On Fri, Aug 19, 2016 at 2:29 PM, Stephen Farrell > <stephen.farrell@cs.tcd.ie> wrote: > > > > And for me, the dodgiest, by far. The scope for an "auditor" > > (what is that?) actually being an attacker is IMO way too > > high to consider standardising that kind of feature and any > > idea that it'd involve informed consent of someone seems to > > me fictional. > > I appreciate the sensitivity of this issue to the WG. My read of your > email is that there's a concern that by standardizing a protocol > mechanism that allows a node to learn when its own KeyUpdate has > happened, the WG would imply approval of features that permit > the bad kind of eavesdropping. Here's why I don't think that's the case: > > Our PR is for a piggyback integer field to provide security property > P3: "An implementation can learn that its request to rekey its > outgoing traffic has been read by the other side." > > KeyUpdate is an *instruction* to the other side: "please update my key > in a forward-secure manner." We think some implementations will want > to know that the instruction has been carried out. And there's an easy > opportunity to do that here as a piggyback, without any extra protocol > messages. > > A node will naturally care more about forward secrecy, and > confirmation of a forward-secure ratcheting event, the more it has > reason to suspect the keys might later be exposed to a third party. In > Berlin, I described three escalating cases: the (1) node going to > sleep, (2) node closing a connection without a mechanism for secure > bidi close, and (3) node that itself intends to release keys to a > read-only auditor after a ratchet is complete. > > By "read-only auditor," we mean a curious person or security > researcher who owns an IoT device and wants to know what the heck it > is sending out of their house, where the device doesn't want to allow > its owner to add trusted certificates for an MITM. (This describes > most such devices today.) > > Obviously I think it's valuable to make this mechanism available for > IoT device manufacturers. Having talked to several manufacturers, I'm > cautiously optimistic that some would use this. But the WG doesn't > have to take a position on this. These use cases are up to > implementers. There's nothing stopping an implementer today from > releasing session keys, or allowing complete MITM, as is the case in > the browser context with user- or admin-installed root CA > certificates. The TLS WG hasn't opined on these either. > > To restate: Property P3 allows a node to learn that its KeyUpdate > instruction has actually happened, which in our view is useful and a > strict benefit over the status quo. It's also orthogonal to the issue > of unbounded write obligations raised in this thread. > > -Keith > > _______________________________________________ > TLS mailing list > TLS@ietf.org > https://urldefense.proofpoint.com/v2/url?u=https-3A__www. > ietf.org_mailman_listinfo_tls&d=DQICAg&c=5VD0RTtNlTh3ycd41b3MUw&r= > h3Ju9EBS7mHtwg-wAyN7fQ&m=dPWRCHpTfdtxfXYBMZF__UyOa7wszKFnA6criwmMDHI&s= > E7sRstn6vNQHPiX3CXAa6BbWSWtMW7VKtN4f3yblZ5U&e= > > _______________________________________________ > TLS mailing list > TLS@ietf.org > https://www.ietf.org/mailman/listinfo/tls >
- Re: [TLS] KeyUpdate and unbounded write obligatio… Keith Winstein
- Re: [TLS] KeyUpdate and unbounded write obligatio… Keith Winstein
- Re: [TLS] KeyUpdate and unbounded write obligatio… Stephen Farrell
- Re: [TLS] KeyUpdate and unbounded write obligatio… Adam Langley
- Re: [TLS] KeyUpdate and unbounded write obligatio… Keith Winstein
- Re: [TLS] KeyUpdate and unbounded write obligatio… Adam Langley
- Re: [TLS] KeyUpdate and unbounded write obligatio… Keith Winstein
- Re: [TLS] KeyUpdate and unbounded write obligatio… Adam Langley
- Re: [TLS] KeyUpdate and unbounded write obligatio… Keith Winstein
- Re: [TLS] KeyUpdate and unbounded write obligatio… Jim Schaad
- Re: [TLS] KeyUpdate and unbounded write obligatio… Adam Langley
- Re: [TLS] KeyUpdate and unbounded write obligatio… Benjamin Kaduk
- Re: [TLS] KeyUpdate and unbounded write obligatio… David Benjamin
- Re: [TLS] KeyUpdate and unbounded write obligatio… Keith Winstein
- Re: [TLS] KeyUpdate and unbounded write obligatio… David Benjamin
- Re: [TLS] KeyUpdate and unbounded write obligatio… Benjamin Kaduk
- Re: [TLS] KeyUpdate and unbounded write obligatio… Ilari Liusvaara
- Re: [TLS] KeyUpdate and unbounded write obligatio… Keith Winstein
- [TLS] KeyUpdate and unbounded write obligations David Benjamin
- Re: [TLS] KeyUpdate and unbounded write obligatio… Subodh Iyengar
- Re: [TLS] KeyUpdate and unbounded write obligatio… Judson Wilson
- Re: [TLS] KeyUpdate and unbounded write obligatio… Keith Winstein
- Re: [TLS] KeyUpdate and unbounded write obligatio… Ilari Liusvaara
- Re: [TLS] KeyUpdate and unbounded write obligatio… Keith Winstein
- Re: [TLS] KeyUpdate and unbounded write obligatio… Eric Rescorla
- Re: [TLS] KeyUpdate and unbounded write obligatio… Ilari Liusvaara
- Re: [TLS] KeyUpdate and unbounded write obligatio… Eric Rescorla
- Re: [TLS] KeyUpdate and unbounded write obligatio… Ilari Liusvaara
- Re: [TLS] KeyUpdate and unbounded write obligatio… Eric Rescorla
- Re: [TLS] KeyUpdate and unbounded write obligatio… Adam Langley
- Re: [TLS] KeyUpdate and unbounded write obligatio… Eric Rescorla
- Re: [TLS] KeyUpdate and unbounded write obligatio… Russ Housley
- Re: [TLS] KeyUpdate and unbounded write obligatio… Eric Rescorla
- Re: [TLS] KeyUpdate and unbounded write obligatio… Ilari Liusvaara
- Re: [TLS] KeyUpdate and unbounded write obligatio… Keith Winstein
- Re: [TLS] KeyUpdate and unbounded write obligatio… Eric Rescorla
- Re: [TLS] KeyUpdate and unbounded write obligatio… Ilari Liusvaara
- Re: [TLS] KeyUpdate and unbounded write obligatio… Eric Rescorla
- Re: [TLS] KeyUpdate and unbounded write obligatio… David Benjamin
- Re: [TLS] KeyUpdate and unbounded write obligatio… Ilari Liusvaara
- Re: [TLS] KeyUpdate and unbounded write obligatio… Ilari Liusvaara
- Re: [TLS] KeyUpdate and unbounded write obligatio… Keith Winstein