Stateless Reset QUIC Interim 2017-06, Paris Manifest Confusion - - PowerPoint PPT Presentation

stateless reset
SMART_READER_LITE
LIVE PREVIEW

Stateless Reset QUIC Interim 2017-06, Paris Manifest Confusion - - PowerPoint PPT Presentation

Stateless Reset QUIC Interim 2017-06, Paris Manifest Confusion What is the purpose of a Stateless Reset? What signals do we want endpoints to generate? ...and who do we want to have consume those signals? What is the role of a middlebox in


slide-1
SLIDE 1

Stateless Reset

QUIC Interim 2017-06, Paris

slide-2
SLIDE 2

Manifest Confusion

What is the purpose of a Stateless Reset? What signals do we want endpoints to generate? ...and who do we want to have consume those signals? What is the role of a middlebox in QUIC?

2

slide-3
SLIDE 3

Signals Taxonomy

A simplistic taxonomy divides things into sender/receiver end-to-end - most things end-to-path - a bunch of implicit signals only path-to-end - PMTU signals, ECN One of these is not like the others: there is only one connection, but multiple paths

3

slide-4
SLIDE 4

Simple Migration

4

S C Handshake happens on

  • ne path
slide-5
SLIDE 5

Simple Migration

5

S C C >> migration >> Handshake happens on

  • ne path

Any number of paths might be used in between

slide-6
SLIDE 6

Simple Migration

6

S C C C >> migration >> >> migration >> Handshake happens on

  • ne path

Terminatio n happens

  • n another

Any number of paths might be used in between

slide-7
SLIDE 7

Limited Scope Stateless Reset

An end-to-end signal Used only when a server (not a client) loses state Terminates the connection Not visible to middleboxes (?)

7

slide-8
SLIDE 8

As originally designed, Public Reset is an end-to-end signal … that leaks information to the path Connection termination also means flow termination Path elements have an incentive to look for and consume these packets

Signal Leakage

8

slide-9
SLIDE 9

A path element might act on a spoofed Stateless Reset That could break a flow, even if the signal is not genuine TCP RST is used for man-on-the-side DoS attacks ...it would be nice if QUIC weren’t similarly vulnerable

Acting on Partial Information

9

slide-10
SLIDE 10

Solution Options

A (#20): Expose the verifier and have path elements validate Problem: path elements won’t see the handshake always Problem: they might only look at the packet type octet B (Grease): Send lots of fake Stateless Resets ...with (B1) or without (B2) a publicly visible verifier Problem: wastes bandwidth and effort C (Hide): Make the Stateless Reset look like any other packet

10

slide-11
SLIDE 11

Proposal: Remove the Leakage (Option C)

Send n during the handshake, encrypted Stateless Reset looks like a regular packet Contents are n plus random padding Looks like ciphertext but won’t decrypt Client compares packet to n if it doesn’t decrypt Server generates n from a static key and connection ID e.g., HKDF(Kstatic, connectionID || serverID, ‘reset’, L)

11

slide-12
SLIDE 12

Wait!

12

slide-13
SLIDE 13

The only signal the path gets is the handshake ...and that is only for the first path For other paths, it’s either packets flowing or not That means timers, and timers are terrible Please, propose a separate, explicit end-to-path signal

What about the path?

13