Subject: [quicwg/base-drafts] Add note that middleboxes might change datagram boundaries (#3337)

From: Eric Kinnear <[email-masked]>
Date: Mon, 13 Jan 2020 13:27:43 -0800

Add a minor editorial note that middle boxes might change datagram boundaries and that this is still considered a connection failure.

Closes #3317.
You can view, comment on, or merge this pull request online at:

  https://github.com/quicwg/base-drafts/pull/3337

-- Commit Summary --

  * Add note that middleboxes might change datagram boundaries

-- File Changes --

    M draft-ietf-quic-transport.md (4)

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/3337.patch
https://github.com/quicwg/base-drafts/pull/3337.diff

-- 
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/3337

---

From: Eric Kinnear <[email-masked]>
Date: Mon, 13 Jan 2020 13:28:25 -0800

Technically, they can coalesce many datagrams into one as long as all of the packet are there, but that shouldn't cause the handshake to fail. If anyone has better text to suggest, will happily switch to that!

-- 
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/3337#issuecomment-573879360

---

From: Martin Thomson <[email-masked]>
Date: Mon, 13 Jan 2020 17:34:13 -0800

I think that I might prefer that this go in the security analysis from #2925.  The "On-Path Handshake Termination" section seems like a good home.

-- 
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/3337#issuecomment-573956479

---

From: Mike Bishop <[email-masked]>
Date: Tue, 14 Jan 2020 07:21:29 -0800

MikeBishop approved this pull request.

+1 to Martin's suggestion that this go in the Security Considerations.

> @@ -3515,6 +3515,10 @@ A server MAY send a CONNECTION_CLOSE frame with error code PROTOCOL_VIOLATION in
 response to an Initial packet it receives from a client if the UDP datagram is
 smaller than 1200 bytes. It MUST NOT send any other frame type in response, or
 otherwise behave as if any part of the offending packet was processed as valid.
+Note that a middlebox might modify datagram boundaries when multiple QUIC
+packets have been coalesced into a single UDP datagram, causing the handshake to
+fail. This is considered a failure of the path to support datagrams of the size

I'm not sure this last sentence is entirely true, or necessary.  It looks to the client like its packets didn't get through, and there are many reasons that might happen (including path MTU); it looks to the server like the client is violating the protocol by sending undersized Initials.

-- 
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/3337#pullrequestreview-342612657

---

From: Eric Kinnear <[email-masked]>
Date: Thu, 16 Jan 2020 22:26:07 -0800

erickinnear commented on this pull request.

I tend to agree with both the sentence, as well as your statements. :) 
Really what I'm looking for is "this is a failure on the part of the network and something we've decided to live with and if someone on the path does this, it's their fault" -- better wording welcome!

-- 
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/3337#discussion_r367785373

---

From: Eric Kinnear <[email-masked]>
Date: Thu, 16 Jan 2020 22:36:38 -0800

Works for me! Will fold this in to #2925. 

How's this look for that section (otherwise this will get lost in a sea of green, new text is second half of the first sentence only): 
```
#### On-Path Handshake Termination

An on-path attacker can force the QUIC handshake to fail by replacing either the
client or server Initial messages with invalid messages or by modifying datagram
boundaries of coalesced QUIC packets, resulting in invalid Initial messages.  An
off-path attacker can also mount this attack by racing the Initials. Once valid
Initial messages have been exchanged, the remaining handshake messages are
protected with the handshake keys and an on-path attacker cannot force handshake
failure, though they can produce a handshake timeout by dropping packets.

An on-path attacker can also replace the addresses of packets on either side and
therefore cause the client or server to have an incorrect view of the remote
addresses. Such an attack is indistinguishable from the functions performed by a
NAT.
```

-- 
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/3337#issuecomment-575495109

---

From: Eric Kinnear <[email-masked]>
Date: Thu, 16 Jan 2020 22:36:58 -0800

Removed this in the proposed text to go into 2925.

-- 
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/3337#discussion_r367787589

---

From: Martin Thomson <[email-masked]>
Date: Sun, 19 Jan 2020 21:45:21 -0800

I would say on-path or off-path for the first two sentences and save a sentence.  Otherwise: 👍 

-- 
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/3337#issuecomment-576116237

---

From: Martin Thomson <[email-masked]>
Date: Tue, 21 Jan 2020 15:32:22 -0800

Moved into #2925, so closing this.

-- 
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/3337#issuecomment-576936447

---

From: Martin Thomson <[email-masked]>
Date: Tue, 21 Jan 2020 15:32:22 -0800

Closed #3337.

-- 
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/3337#event-2968170888