Re: [quicwg/base-drafts] Add initial threat model to security considerations (#2925)

Martin Thomson <> Wed, 11 December 2019 02:23 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id AB4F11200F5 for <>; Tue, 10 Dec 2019 18:23:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -8
X-Spam-Status: No, score=-8 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id H2UgW9do35dd for <>; Tue, 10 Dec 2019 18:23:01 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 24012120059 for <>; Tue, 10 Dec 2019 18:23:01 -0800 (PST)
Received: from ( []) by (Postfix) with ESMTP id 3724D2C0A52 for <>; Tue, 10 Dec 2019 18:23:00 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1576030980; bh=50e4vWyjrLwHwLRIAEKP2XRXXmnBVZgFQX7CnasawJ0=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=NGHvlRjaqeJiQTUeCviB2YztU8TWSKO0nQBayetVTXHJblKe04zmJLWpiqEGs/YrI yW7gDuhukvUA7HTtD5YxYf/Uy+Lx/YQD/79W6C4AU2W6XDAQGAr2C0sUqF9CLzOuYn 5dlBRt8XmXnZnZSATa9bqCr7PN4SvwvyCTkcMA10=
Date: Tue, 10 Dec 2019 18:23:00 -0800
From: Martin Thomson <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/pull/2925/review/>
In-Reply-To: <quicwg/base-drafts/pull/>
References: <quicwg/base-drafts/pull/>
Subject: Re: [quicwg/base-drafts] Add initial threat model to security considerations (#2925)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5df0530428b01_32db3f885f6cd960141389"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: martinthomson
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
Archived-At: <>
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 11 Dec 2019 02:23:02 -0000

martinthomson commented on this pull request.

> +{{handshake-properties}}.  Similarly, any active attacker that observes QUIC
+packets and attempts to insert new data or modify existing data in those packets
+should not be able to generate packets deemed valid by the receiving endpoint.
+A spoofing attack, in which an active attacker rewrites unprotected parts of a
+QUIC packet that it forwards or injects, such as the source or destination
+address, is only effective if the attacker can forward packets to the original
+endpoint.  Packet protection ensures that the packet payloads can only be
+processed by the endpoints that completed the handshake, and invalid QUIC
+packets are ignored by those endpoints.
+An attacker can also modify the boundaries between QUIC packets and UDP
+datagrams, causing multiple packets to be coalesced into a single datagram, or
+splitting coalesced packets into multiple datagrams.  Such modification has no
+functional effect on a QUIC connection, although it might change the performance
+characteristics exhibited by the receiving endpoint.

Of note here is that we allow Initial packets to be smaller than 1200 bytes, as long as they are coalesced with other stuff to make up a 1200 byte UDP datagram.  That too is vulnerable to this sort of composition problem.  I think that it's fine to make these assumptions and risk modification as long as they are recognized as such.  For Initial, we are doing so on the understanding that elements on the path are able to disrupt the handshake at that point anyway.  For PMTUD, we might make a different assessment as the conditions are different.

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub: