Re: [quicwg/base-drafts] Add initial threat model to security considerations (#2925)
Martin Thomson <notifications@github.com> Sat, 16 November 2019 08:24 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 11FE4120103 for <quic-issues@ietfa.amsl.com>; Sat, 16 Nov 2019 00:24:57 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8
X-Spam-Level:
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: 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 CZ_fGf9BfVQh for <quic-issues@ietfa.amsl.com>; Sat, 16 Nov 2019 00:24:53 -0800 (PST)
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 8F7D912004D for <quic-issues@ietf.org>; Sat, 16 Nov 2019 00:24:53 -0800 (PST)
Received: from github-lowworker-e8b54ca.ac4-iad.github.net (github-lowworker-e8b54ca.ac4-iad.github.net [10.52.23.39]) by smtp.github.com (Postfix) with ESMTP id E6646C60746 for <quic-issues@ietf.org>; Sat, 16 Nov 2019 00:24:52 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1573892692; bh=ET7S/G0JjwXMsFR+PC1WAeO5pDL9FvGUBIQDDNWNvZE=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=XFyVZDW/LZDjPiDaNTZXBoVKFE5uXKW3wn9uU5pzVXjQKvoQbohYLiqy8mjq/FFAc HYliZK9dcxfQdoU0ccv/Ds47xdxY20lWHv3LHcJMzw8AR8/ikDyU9knZzzlFfXQmzR sexPpSb25NiZN6fm6rPv4OFg886utIVlY1JQwThA=
Date: Sat, 16 Nov 2019 00:24:52 -0800
From: Martin Thomson <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK7ZHDJVXSKFLWBVIA533TSNJEVBNHHBYGSUE4@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/2925/review/317958576@github.com>
In-Reply-To: <quicwg/base-drafts/pull/2925@github.com>
References: <quicwg/base-drafts/pull/2925@github.com>
Subject: Re: [quicwg/base-drafts] Add initial threat model to security considerations (#2925)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5dcfb254d5a9c_77323fdf04ccd96826111b8"; 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
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/2vpwPDJ9w3Z_1bcRhNhEDqC2qJA>
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: Sat, 16 Nov 2019 08:24:57 -0000
martinthomson commented on this pull request. WIP > + +TBD. + +### Short Headers {#short-headers-properties} + +TBD. + +### Connection Migration {#migration-properties} + +Connection Migration ({{migration}}) provides endpoints with the ability to +transition between IP addresses and ports on multiple paths, using one path at a +time for transmission and receipt of non-probing frames. Path validation +({{migrate-validate}}) establishes that a peer is both willing and able +to receive packets sent on a particular path. This helps reduce the effects of +address spoofing, by limiting the number of packets sent to a spoofed address, +unless an attacker is able to also receive packets sent to that address. This can probably go, I think. ```suggestion ``` > +transition between IP addresses and ports on multiple paths, using one path at a +time for transmission and receipt of non-probing frames. Path validation +({{migrate-validate}}) establishes that a peer is both willing and able +to receive packets sent on a particular path. This helps reduce the effects of +address spoofing, by limiting the number of packets sent to a spoofed address, +unless an attacker is able to also receive packets sent to that address. + +This section describes the intended security properties of connection migration +when under various types of attack, as described in more detail by {{?RFC3552}}. + +For this purpose, attacks are divided into passive and active attacks, passive +attackers having the capability to read packets from the network and active +attackers having the capability to write packets into the network. + +Attackers are additionally categorized as either on-path attackers or off-path +attackers (see Section 3.5 of {{?RFC3552}}); an on-path attacker is on the ```suggestion attackers; see Section 3.5 of {{?RFC3552}}). An on-path attacker is on the ``` > +time for transmission and receipt of non-probing frames. Path validation +({{migrate-validate}}) establishes that a peer is both willing and able +to receive packets sent on a particular path. This helps reduce the effects of +address spoofing, by limiting the number of packets sent to a spoofed address, +unless an attacker is able to also receive packets sent to that address. + +This section describes the intended security properties of connection migration +when under various types of attack, as described in more detail by {{?RFC3552}}. + +For this purpose, attacks are divided into passive and active attacks, passive +attackers having the capability to read packets from the network and active +attackers having the capability to write packets into the network. + +Attackers are additionally categorized as either on-path attackers or off-path +attackers (see Section 3.5 of {{?RFC3552}}); an on-path attacker is on the +critical path for a given connection and can read, modify, or remove any packet This definition of on-path uses "on the critical path". I think that you can reduce to "can read, modify, or remove any packet [...]" > +unless an attacker is able to also receive packets sent to that address. + +This section describes the intended security properties of connection migration +when under various types of attack, as described in more detail by {{?RFC3552}}. + +For this purpose, attacks are divided into passive and active attacks, passive +attackers having the capability to read packets from the network and active +attackers having the capability to write packets into the network. + +Attackers are additionally categorized as either on-path attackers or off-path +attackers (see Section 3.5 of {{?RFC3552}}); an on-path attacker is on the +critical path for a given connection and can read, modify, or remove any packet +it observes such that it no longer reaches its destination, while an off-path +attacker observes the packets, but cannot prevent the original packet from +reaching its intended destination. An off-path attacker can transmit arbitrary +packets, and it may be able to attack the network so as to place itself on-path. This last clause is probably worth making its own sentence. That is, > Properties of connection migration allow an off-path attacker to place itself on path by sending packets under certain narrow conditions. > +Both on-path and off-path attackers can mount a passive attack in which they +save observed QUIC packets for an offline attack against QUIC packet protection +at a future time; this is true for any observer of any packet on any network. Is this something that ekr should deal with? > +save observed QUIC packets for an offline attack against QUIC packet protection +at a future time; this is true for any observer of any packet on any network. + + +#### Active Attacks + +An active attack ({{?RFC3552}}) involves writing data to the network. An +attacker with such a capability might be in a position to additionally prevent +the original packets it observes from reaching their intended destination. If +so, they are considered to be an on-path attacker. + +An active attacker may also choose to rewrite the source or destination IP +addresses of packets that it forwards or injects. Such spoofing attacks are only +effective against a QUIC connection if the attacker can still forward the +contents of the packets to the original endpoint, since QUIC connections are +both authenticated and encrypted. Not sure what this last bit is intended to say. Rewriting addresses is not covered by packet protection, but this might be read to imply otherwise. > + +An active attack ({{?RFC3552}}) involves writing data to the network. An +attacker with such a capability might be in a position to additionally prevent +the original packets it observes from reaching their intended destination. If +so, they are considered to be an on-path attacker. + +An active attacker may also choose to rewrite the source or destination IP +addresses of packets that it forwards or injects. Such spoofing attacks are only +effective against a QUIC connection if the attacker can still forward the +contents of the packets to the original endpoint, since QUIC connections are +both authenticated and encrypted. + +A blind attacker, one who injects packets without being able to observe valid +packets for a QUIC connection, is unlikely to be successful, since QUIC packet +protection ensures that valid packets are only generated by endpoints which +possess the key material established during the handshake. Similarly, any This will need a backref to the handshakey bits. > +#### Active Attacks + +An active attack ({{?RFC3552}}) involves writing data to the network. An +attacker with such a capability might be in a position to additionally prevent +the original packets it observes from reaching their intended destination. If +so, they are considered to be an on-path attacker. + +An active attacker may also choose to rewrite the source or destination IP +addresses of packets that it forwards or injects. Such spoofing attacks are only +effective against a QUIC connection if the attacker can still forward the +contents of the packets to the original endpoint, since QUIC connections are +both authenticated and encrypted. + +A blind attacker, one who injects packets without being able to observe valid +packets for a QUIC connection, is unlikely to be successful, since QUIC packet +protection ensures that valid packets are only generated by endpoints which The missing observation here is that endpoints won't accept invalid packets. > + +However, an attacker can 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, however it might change the performance +characteristics exhibited by the receiving endpoint. + +A spoofing attack, in which an attacker rewrites unprotected parts of a QUIC +packet such as the source or destination address, is only effective if the +attacker can forward packets to the original endpoint, as path validation +({{migrate-validate}}) ensures that an endpoint's ability and willingness to +decrypt QUIC packets is demonstrated before sending significant amounts of data +to a new endpoint as part of an established QUIC connection. + + +##### On-Path Active Attacks I don't accept patches with five ######### in a row. Can we bump the real stuff up a level? > +the original packets it observes from reaching their intended destination. If +so, they are considered to be an on-path attacker. + +An active attacker may also choose to rewrite the source or destination IP +addresses of packets that it forwards or injects. Such spoofing attacks are only +effective against a QUIC connection if the attacker can still forward the +contents of the packets to the original endpoint, since QUIC connections are +both authenticated and encrypted. + +A blind attacker, one who injects packets without being able to observe valid +packets for a QUIC connection, is unlikely to be successful, since QUIC packet +protection ensures that valid packets are only generated by endpoints which +possess the key material established during the handshake. 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. This belongs in earlier sections. This is packet protection. > +- Reorder packets +- Drop packets +- Split and merge datagrams along packet boundaries + +An on-path attacker cannot: + +- Modify an authenticated and encrypted portion of a packet and cause the + recipient to accept that packet + +An on-path attacker has the opportunity to modify the packets that it observes, +however any modifications to an authenticated portion of a packet will cause it +to be dropped by the receiving endpoint as invalid, as QUIC payloads are both +authenticated and encrypted. + +In the presence of an on-path attacker, QUIC aims to provide the following +properties. ```suggestion properties: ``` > +A limited on-path attacker differs from an on-path attacker in that it is not on +the original path between endpoints, and therefore the original packets sent by +an endpoint are still reaching their destination. This means that a future +failure to route copied packets to the destination faster than their original +path will not prevent the original packets from reaching the destination. + +A limited on-path attacker can: + +- Inspect packets +- Inject new packets +- Modify unencrypted packet headers +- Reorder packets + +A limited on-path attacker cannot: + +- Delay packets beyond the original packet duration ```suggestion - Delay packets so that they arrive later than packets sent on the original path ``` > +### Short Headers {#short-headers-properties} + +TBD. + +### Connection Migration {#migration-properties} + +Connection Migration ({{migration}}) provides endpoints with the ability to +transition between IP addresses and ports on multiple paths, using one path at a +time for transmission and receipt of non-probing frames. Path validation +({{migrate-validate}}) establishes that a peer is both willing and able +to receive packets sent on a particular path. This helps reduce the effects of +address spoofing, by limiting the number of packets sent to a spoofed address, +unless an attacker is able to also receive packets sent to that address. + +This section describes the intended security properties of connection migration +when under various types of attack, as described in more detail by {{?RFC3552}}. You definitely need to constrain this section to just DoS consequences of migration. Because this doesn't cover what an attacker might learn about communications. > + +- Inspect packets +- Inject new packets +- Modify unencrypted packet headers +- Reorder packets + +A limited on-path attacker cannot: + +- Delay packets beyond the original packet duration +- Drop packets +- Modify the authenticated and encrypted portion of a packet and cause the + recipient to accept that packet + +A limited on-path attacker can only delay packets up to the point that the +original packets arrive before the duplicate packets, meaning that it cannot +offer worse routing than the original path, only improved routing. If a limited ```suggestion offer routing with worse latency than the original path. If a limited ``` > + +A limited on-path attacker cannot: + +- Delay packets beyond the original packet duration +- Drop packets +- Modify the authenticated and encrypted portion of a packet and cause the + recipient to accept that packet + +A limited on-path attacker can only delay packets up to the point that the +original packets arrive before the duplicate packets, meaning that it cannot +offer worse routing than the original path, only improved routing. If a limited +on-path attacker drops packets, the original copy will still arrive at the +destination endpoint. + +In the presence of a limited on-path attacker, QUIC aims to provide the +following properties. ```suggestion following properties: ``` -- 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/2925#pullrequestreview-317958576
- [quicwg/base-drafts] Add initial threat model app… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Nick Banks
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Dmitri Tikhonov
- Re: [quicwg/base-drafts] Add initial threat model… Mike Bishop
- Re: [quicwg/base-drafts] Add initial threat model… Martin Thomson
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Mike Bishop
- Re: [quicwg/base-drafts] Add initial threat model… ianswett
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… mirjak
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Gorry Fairhurst
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Martin Thomson
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Mike Bishop
- Re: [quicwg/base-drafts] Add initial threat model… Martin Thomson
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… Martin Thomson
- Re: [quicwg/base-drafts] Add initial threat model… ianswett
- Re: [quicwg/base-drafts] Add initial threat model… Jana Iyengar
- Re: [quicwg/base-drafts] Add initial threat model… Martin Thomson
- Re: [quicwg/base-drafts] Add initial threat model… Martin Thomson
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… MikkelFJ
- Re: [quicwg/base-drafts] Add initial threat model… Eric Kinnear
- Re: [quicwg/base-drafts] Add initial threat model… MikkelFJ