Subject: [quicwg/base-drafts] 449d63: Allow stream-related frames in 0-RTT

From: Martin Thomson <[email-masked]>
Date: Mon, 11 Mar 2019 15:51:29 -0700

Branch: refs/heads/master
  Home:   https://github.com/quicwg/base-drafts
  Commit: 449d636415a868bd503ac6334257dcb1f9bb93af
      https://github.com/quicwg/base-drafts/commit/449d636415a868bd503ac6334257dcb1f9bb93af
  Author: Martin Thomson <[email-masked]>
  Date:   2019-01-21 (Mon, 21 Jan 2019)

  Changed paths:
    M draft-ietf-quic-tls.md

  Log Message:
  -----------
  Allow stream-related frames in 0-RTT

In #2344, @kazuho suggests that we could allow RESET_STREAM in 0-RTT.
That seems slightly wrong, because why would someone send something then
give up without receiving anything in return, but that is actually
possible in the presence of packet loss.  And changing your mind is
perfectly acceptable.

But RESET_STREAM doesn't really cover it.  Streams can get blocked,
requests can go out with additional flow control credits, and maybe even
STOP_SENDING makes sense.  So this changes it so that any stream-related
frame (those that exist to convey application state or manage it), can
be sent in 0-RTT.  That seems more principled than just adding
RESET_STREAM.

Closes #2344.

  Commit: 59580812145936f7089586212155f14f4495d49f
      https://github.com/quicwg/base-drafts/commit/59580812145936f7089586212155f14f4495d49f
  Author: Martin Thomson <[email-masked]>
  Date:   2019-01-22 (Tue, 22 Jan 2019)

  Changed paths:
    M draft-ietf-quic-http.md
    M draft-ietf-quic-tls.md

  Log Message:
  -----------
  Expand the anti-replay story

The inclusion of RESET_STREAM (and all other frame types) in 0-RTT
inspired me to do some more analysis and due diligence on anti-replay.

This adds a security considerations section with requirements for
application protocols.  That section explains more about what the risks
for QUIC are, how QUIC itself isn't affected, but how an application
protocol might be.

It also adds a section to the HTTP draft citing RFC 8470, explaining how
that analysis is sufficient for HTTP/3.

  Commit: f9d24ec32312d0d0328c4d9057838d5653ece8e6
      https://github.com/quicwg/base-drafts/commit/f9d24ec32312d0d0328c4d9057838d5653ece8e6
  Author: Martin Thomson <[email-masked]>
  Date:   2019-01-22 (Tue, 22 Jan 2019)

  Changed paths:
    M draft-ietf-quic-tls.md

  Log Message:
  -----------
  Missing 'only'

  Commit: 0fe91c8cb89eed4b0a63b5994c7287933d37a54c
      https://github.com/quicwg/base-drafts/commit/0fe91c8cb89eed4b0a63b5994c7287933d37a54c
  Author: Martin Thomson <[email-masked]>
  Date:   2019-01-23 (Wed, 23 Jan 2019)

  Changed paths:
    M draft-ietf-quic-tls.md

  Log Message:
  -----------
  Fix CONNECTION_CLOSE

  Commit: fdfb19d5922e75b5d6b93eda217e3a9c242308f6
      https://github.com/quicwg/base-drafts/commit/fdfb19d5922e75b5d6b93eda217e3a9c242308f6
  Author: Martin Thomson <[email-masked]>
  Date:   2019-01-31 (Thu, 31 Jan 2019)

  Changed paths:
    M draft-ietf-quic-tls.md

  Log Message:
  -----------
  Move PADDING up

  Commit: 9400c2f9b2c5a235ce15377538bc8dc354467f39
      https://github.com/quicwg/base-drafts/commit/9400c2f9b2c5a235ce15377538bc8dc354467f39
  Author: Martin Thomson <[email-masked]>
  Date:   2019-02-06 (Wed, 06 Feb 2019)

  Changed paths:
    M draft-ietf-quic-tls.md

  Log Message:
  -----------
  Replay protection is the responsibility of application protocols

This is based on my recent conclusions about this subject.  It rewrites
the advice here by observing that QUIC does not inherently present a
replay risk. Instead, application protocols, in their use of QUIC, might
create an exposure to replay attack.

Rather than try to perform an analysis in the transport, based on
incomplete information, it is better to outline some risks (STREAM seems
like the only obvious one here, frankly, though I've pointed out a
couple of anti-patterns that might have accompanying replay risks) and
let the application protocol designers perform a more complete analysis.

We did that analysis for HTTP.  I believe that to be sufficient.  Though
I might include mention of the fact that stream cancellation and other
h2 mechanisms don't carry application semantics, but that is not a major
source of regret.

  Commit: 5bbe441637b02e211265464931913e393ef13fb8
      https://github.com/quicwg/base-drafts/commit/5bbe441637b02e211265464931913e393ef13fb8
  Author: Mike Bishop <[email-masked]>
  Date:   2019-02-12 (Tue, 12 Feb 2019)

  Changed paths:
    M CONTRIBUTING.md
    M draft-ietf-quic-http.md
    M draft-ietf-quic-invariants.md
    M draft-ietf-quic-qpack.md
    M draft-ietf-quic-recovery.md
    M draft-ietf-quic-tls.md
    M draft-ietf-quic-transport.md
    M tag.sh

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/master' into 0rtt-reset

  Commit: f95c289d1b49ed188ba1aa940de4feb3133adc4d
      https://github.com/quicwg/base-drafts/commit/f95c289d1b49ed188ba1aa940de4feb3133adc4d
  Author: Martin Thomson <[email-masked]>
  Date:   2019-02-13 (Wed, 13 Feb 2019)

  Changed paths:
    M draft-ietf-quic-tls.md

  Log Message:
  -----------
  Mike's comments

  Commit: 0974bda7da7977b5504d8eae222a1a57d5aa2af5
      https://github.com/quicwg/base-drafts/commit/0974bda7da7977b5504d8eae222a1a57d5aa2af5
  Author: Martin Thomson <[email-masked]>
  Date:   2019-02-13 (Wed, 13 Feb 2019)

  Changed paths:
    M draft-ietf-quic-tls.md

  Log Message:
  -----------
  Reword

  Commit: 0bb2046abc730c39e245f1041a4c074ce714454d
      https://github.com/quicwg/base-drafts/commit/0bb2046abc730c39e245f1041a4c074ce714454d
  Author: Martin Thomson <[email-masked]>
  Date:   2019-02-13 (Wed, 13 Feb 2019)

  Changed paths:
    M draft-ietf-quic-tls.md

  Log Message:
  -----------
  application semantics stuff

  Commit: c4e459ffda2a56980f5e61322342566ab263c179
      https://github.com/quicwg/base-drafts/commit/c4e459ffda2a56980f5e61322342566ab263c179
  Author: Jana Iyengar <[email-masked]>
  Date:   2019-02-13 (Wed, 13 Feb 2019)

  Changed paths:
    M draft-ietf-quic-tls.md

  Log Message:
  -----------
  attachment issue

Co-Authored-By: martinthomson <[email-masked]>

  Commit: e03aa6b5caf2644e813c4412d2cfe162b72e7134
      https://github.com/quicwg/base-drafts/commit/e03aa6b5caf2644e813c4412d2cfe162b72e7134
  Author: Martin Thomson <[email-masked]>
  Date:   2019-03-07 (Thu, 07 Mar 2019)

  Changed paths:
    M draft-ietf-quic-tls.md

  Log Message:
  -----------
  Taking Mikkel's review/suggestions into account, trimming, adding

  Commit: e5ca7387db8a6eac53d655304dc4be07673c8d1e
      https://github.com/quicwg/base-drafts/commit/e5ca7387db8a6eac53d655304dc4be07673c8d1e
  Author: Martin Thomson <[email-masked]>
  Date:   2019-03-11 (Mon, 11 Mar 2019)

  Changed paths:
    M draft-ietf-quic-tls.md

  Log Message:
  -----------
  Editorial tweaks

  Commit: b2566a13475480f52115e1cee0cb0c95d0b4ece7
      https://github.com/quicwg/base-drafts/commit/b2566a13475480f52115e1cee0cb0c95d0b4ece7
  Author: Martin Thomson <[email-masked]>
  Date:   2019-03-11 (Mon, 11 Mar 2019)

  Changed paths:
    M draft-ietf-quic-http.md
    M draft-ietf-quic-tls.md

  Log Message:
  -----------
  Merge pull request #2355 from quicwg/0rtt-reset

Allow most frames in 0-RTT

Compare: https://github.com/quicwg/base-drafts/compare/6aa59d8a6eac...b2566a134754