Re: [quicwg/base-drafts] Receiver's behavior on key update (#2791)
MikkelFJ <notifications@github.com> Wed, 19 June 2019 07:26 UTC
Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AFB15120417 for <quic-issues@ietfa.amsl.com>; Wed, 19 Jun 2019 00:26:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.009
X-Spam-Level:
X-Spam-Status: No, score=-8.009 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.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 2Ei51lOMqCfW for <quic-issues@ietfa.amsl.com>; Wed, 19 Jun 2019 00:26:29 -0700 (PDT)
Received: from out-4.smtp.github.com (out-4.smtp.github.com [192.30.252.195]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DB027120446 for <quic-issues@ietf.org>; Wed, 19 Jun 2019 00:26:28 -0700 (PDT)
Date: Wed, 19 Jun 2019 00:26:26 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1560929186; bh=gBvgIwYEoMasmTMliRRAF8r09WqtdDw+7YLbX5Pdaeg=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=AjdY5C4BhwTtc4C2leaU68mgq7kzOotTOf8W7HWRvTzS+xEd4X+8Uj13jvZALYsk6 DvnzOr2typejGLmJRzDRV8fdwdViXav3jx2Kjj3gVM4AybFGGG3A2l8s9fUKH2a65M TSnq9nOueditNnCG8WQLMCcv3P7H8WYk1vDGaIxA=
From: MikkelFJ <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJKY726UT654CQBKJQB53C4LCFEVBNHHBWLWXFE@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/2791/c503441559@github.com>
In-Reply-To: <quicwg/base-drafts/pull/2791@github.com>
References: <quicwg/base-drafts/pull/2791@github.com>
Subject: Re: [quicwg/base-drafts] Receiver's behavior on key update (#2791)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5d09e3a2bfcea_60043fdbf66cd95c164548"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: mikkelfj
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/MzzAGoRto0Ub665ZkmICoyGcmlo>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 19 Jun 2019 07:26:32 -0000
I read through the latest commit and I think it is largely fine, but I found the attack discussion a bit difficult, and the text is not distinguishing between receiving a key and authenticating a key. Also, it is probably not clear to the reader that the intent is to compute a key ahead of time when reading the first section. Furthermore, there is also an attack on send since if you compute the send key when you respond immediately, that can be timed. The text also does not discuss what to do with a packet that does not authenticate. Do you drop, or something else. After trying to formulate that, I ended up with some problems that you can hopefully help clarify. Here is my proposed text: ``` Packets received with the current key phase are unprotected using the corresponding receive key. When a packet arrives with the opposite key phase, an endpoint determines which receive key to use by tracking the lowest packet number among the packets received and successfully decrypted and authenticate with the currently key phase. If a packet is received that has a different KEY_PHASE bit and a lower packet number than this value, the endpoint uses the receive key of the previous key phase for unprotecting the packet, if that key is available. If the packet has a higher packet number and it can be decrypted and authenticated with the receive key of the next key phase, the receiver switches to the new keyphase. An an endpoint SHOULD compute the secret and related receive and send keys of the next keyphase ahead of time to protect against timing attacks. The receiver therefore has at least two installed receive keys but SHOULD transitionally maintain older an older key to deal with late arriving packets for a duration of 3 PTO after switching to a new key phase. The endpoint derives keys of the next key phase by calculating the next secret (see Section 7.2 of {{!TLS13}}), the corresponding read key and IV using the KDF function provided by TLS. Once an endpoint has sent a packet encrypted with a given key phase, it MUST NOT send a packet encrypted with an older key phase. (EDITORIAL: see note below) If packet cannot be decrypted the reciever drops the packet but MAY also close the connection with a PROTOCOL_VIOLOATION error if it finds that it can decrypt and authenticate a packet with receive key that is retired for that packet number. (EDITORIAL NOTE: I'm struggling with when a key is fully retired and in violation because it is always possible that an earlier packet is received after a key switch which also carries the new key phase. You could formulate something but it gets complicated). ``` Maybe we can just use "successfully unprotect" instead of decrypt and authenticate. Or perhaps it is enough to authenticate without decrypting. Noting that these are parallel and separate steps in GCM that can be processed separately. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/quicwg/base-drafts/pull/2791#issuecomment-503441559
- [quicwg/base-drafts] Receiver's behavior on key u… Kazuho Oku
- Re: [quicwg/base-drafts] Receiver's behavior on k… Kazuho Oku
- Re: [quicwg/base-drafts] Receiver's behavior on k… Marten Seemann
- Re: [quicwg/base-drafts] Receiver's behavior on k… Nick Banks
- Re: [quicwg/base-drafts] Receiver's behavior on k… David Schinazi
- Re: [quicwg/base-drafts] Receiver's behavior on k… ianswett
- Re: [quicwg/base-drafts] Receiver's behavior on k… Kazuho Oku
- Re: [quicwg/base-drafts] Receiver's behavior on k… Kazuho Oku
- Re: [quicwg/base-drafts] Receiver's behavior on k… Kazuho Oku
- Re: [quicwg/base-drafts] Receiver's behavior on k… MikkelFJ
- Re: [quicwg/base-drafts] Receiver's behavior on k… Marten Seemann
- Re: [quicwg/base-drafts] Receiver's behavior on k… Kazuho Oku
- Re: [quicwg/base-drafts] Receiver's behavior on k… Kazuho Oku
- Re: [quicwg/base-drafts] Receiver's behavior on k… Kazuho Oku
- Re: [quicwg/base-drafts] Receiver's behavior on k… Marten Seemann
- Re: [quicwg/base-drafts] Receiver's behavior on k… Marten Seemann
- Re: [quicwg/base-drafts] Receiver's behavior on k… Kazuho Oku
- Re: [quicwg/base-drafts] Receiver's behavior on k… Kazuho Oku
- Re: [quicwg/base-drafts] Receiver's behavior on k… David Schinazi
- Re: [quicwg/base-drafts] Receiver's behavior on k… Kazuho Oku
- Re: [quicwg/base-drafts] Receiver's behavior on k… Kazuho Oku
- Re: [quicwg/base-drafts] Receiver's behavior on k… David Schinazi
- Re: [quicwg/base-drafts] Receiver's behavior on k… Kazuho Oku
- Re: [quicwg/base-drafts] Receiver's behavior on k… Kazuho Oku
- Re: [quicwg/base-drafts] Receiver's behavior on k… Kazuho Oku
- Re: [quicwg/base-drafts] Receiver's behavior on k… MikkelFJ
- Re: [quicwg/base-drafts] Receiver's behavior on k… Kazuho Oku
- Re: [quicwg/base-drafts] Receiver's behavior on k… Kazuho Oku
- Re: [quicwg/base-drafts] Receiver's behavior on k… MikkelFJ
- Re: [quicwg/base-drafts] Receiver's behavior on k… MikkelFJ
- Re: [quicwg/base-drafts] Receiver's behavior on k… MikkelFJ
- Re: [quicwg/base-drafts] Receiver's behavior on k… MikkelFJ
- Re: [quicwg/base-drafts] Receiver's behavior on k… Kazuho Oku
- Re: [quicwg/base-drafts] Receiver's behavior on k… Kazuho Oku
- Re: [quicwg/base-drafts] Receiver's behavior on k… David Schinazi
- Re: [quicwg/base-drafts] Receiver's behavior on k… Kazuho Oku
- Re: [quicwg/base-drafts] Receiver's behavior on k… Kazuho Oku
- Re: [quicwg/base-drafts] Receiver's behavior on k… David Schinazi
- Re: [quicwg/base-drafts] Receiver's behavior on k… Martin Thomson
- Re: [quicwg/base-drafts] Receiver's behavior on k… Martin Thomson