Subject: [quicwg/base-drafts] 2fc515: Authenticate connection IDs

From: Martin Thomson <[email-masked]>
Date: Sun, 17 May 2020 17:53:53 -0700

Branch: refs/heads/master
  Home:   https://github.com/quicwg/base-drafts
  Commit: 2fc5157ed013ae8f84f17e44409c42be87660feb
      https://github.com/quicwg/base-drafts/commit/2fc5157ed013ae8f84f17e44409c42be87660feb
  Author: Martin Thomson <[email-masked]>
  Date:   2020-03-11 (Wed, 11 Mar 2020)

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

  Log Message:
  -----------
  Authenticate connection IDs

This authenticates all of them.

Note that I have chosen to use position in the protocol (Source vs.
Destination) as opposed to who selects the values (client vs. server) as
the means of deciding where each lies.  This avoids regressing an
existing protocol characteristic.

This changes the definition of original_connection_id so that it is
mandatory for the server to include always.  A new
handshake_connection_id (which might be initial_connection_id, but I
think that's confusing) is also mandatory for both roles.  The
retry_connection_id is used when there is a Retry.

This is a granular encoding.  That means some additional bytes for the
types of transport parameters, but not so many as to be intolerable, I
think.  A single transport parameter, or a header on the transport
parameter encoding (as we used to have) might be slightly more
efficient, but offhand I think that the net saving would be at most 2
bytes, so I'm going with simple over small.

Closes #3439.

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

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

  Log Message:
  -----------
  Review feedback from David and Martin

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

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

  Log Message:
  -----------
  Less text, more cross-reference

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

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

  Log Message:
  -----------
  singular

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

  Commit: 41928cd80c885542633c0bd9898640850e51c69c
      https://github.com/quicwg/base-drafts/commit/41928cd80c885542633c0bd9898640850e51c69c
  Author: Martin Thomson <[email-masked]>
  Date:   2020-03-24 (Tue, 24 Mar 2020)

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

  Log Message:
  -----------
  complete sentences.

Co-Authored-By: Mike Bishop <[email-masked]>

  Commit: f44f24e94b3eae910909cdcc76b738792a6a0105
      https://github.com/quicwg/base-drafts/commit/f44f24e94b3eae910909cdcc76b738792a6a0105
  Author: Martin Thomson <[email-masked]>
  Date:   2020-03-24 (Tue, 24 Mar 2020)

  Changed paths:
    M .circleci/config.yml
    M .lint.py
    M draft-ietf-quic-http.md
    M draft-ietf-quic-invariants.md
    M draft-ietf-quic-recovery.md
    M draft-ietf-quic-tls.md
    M draft-ietf-quic-transport.md

  Log Message:
  -----------
  Merge branch 'master' into authenticate-hs-cid

  Commit: c7a236086266f17ba091046840d6e3d1e58251fe
      https://github.com/quicwg/base-drafts/commit/c7a236086266f17ba091046840d6e3d1e58251fe
  Author: Martin Thomson <[email-masked]>
  Date:   2020-04-09 (Thu, 09 Apr 2020)

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

  Log Message:
  -----------
  Jana's suggestion from review

I'll need to reflow these...

Co-Authored-By: Jana Iyengar <[email-masked]>

  Commit: 6f5e5478139beb1f0d187c2ea58a7449098e7711
      https://github.com/quicwg/base-drafts/commit/6f5e5478139beb1f0d187c2ea58a7449098e7711
  Author: Martin Thomson <[email-masked]>
  Date:   2020-04-09 (Thu, 09 Apr 2020)

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

  Log Message:
  -----------
  Reformat

  Commit: 8cec1c293b280b20329837cf4528187480986ba3
      https://github.com/quicwg/base-drafts/commit/8cec1c293b280b20329837cf4528187480986ba3
  Author: Martin Thomson <[email-masked]>
  Date:   2020-04-09 (Thu, 09 Apr 2020)

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

  Log Message:
  -----------
  Rename to initial_connection_id

  Commit: b0ef978e1e2451acc6db7857698b141c4e7cad29
      https://github.com/quicwg/base-drafts/commit/b0ef978e1e2451acc6db7857698b141c4e7cad29
  Author: Martin Thomson <[email-masked]>
  Date:   2020-04-09 (Thu, 09 Apr 2020)

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

  Log Message:
  -----------
  Merge branch 'master' into authenticate-hs-cid

  Commit: e2f2b33800cb09add5e185e09f1512ef71e86099
      https://github.com/quicwg/base-drafts/commit/e2f2b33800cb09add5e185e09f1512ef71e86099
  Author: Martin Thomson <[email-masked]>
  Date:   2020-04-14 (Tue, 14 Apr 2020)

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

  Log Message:
  -----------
  Restore active_connection_id_limit

  Commit: e30cf5fc52da2f7958901fbdf5bcbec920a60d71
      https://github.com/quicwg/base-drafts/commit/e30cf5fc52da2f7958901fbdf5bcbec920a60d71
  Author: Martin Thomson <[email-masked]>
  Date:   2020-05-11 (Mon, 11 May 2020)

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

  Log Message:
  -----------
  Editorial comments thanks to @DavidSchinazi

There are a bunch of things here, but mostly this is just a
transcription of the helpful suggestions.

I have also renamed the parameters.

  Commit: 81bcdb67d85d953aca7ae378b1f2e4c6a4744578
      https://github.com/quicwg/base-drafts/commit/81bcdb67d85d953aca7ae378b1f2e4c6a4744578
  Author: Martin Thomson <[email-masked]>
  Date:   2020-05-12 (Tue, 12 May 2020)

  Changed paths:
    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
    R workflow.xml

  Log Message:
  -----------
  Merge branch 'master' into authenticate-hs-cid

  Commit: 740cd920d57433273a5dbc74b7fb9a276f6c84bc
      https://github.com/quicwg/base-drafts/commit/740cd920d57433273a5dbc74b7fb9a276f6c84bc
  Author: Martin Thomson <[email-masked]>
  Date:   2020-05-12 (Tue, 12 May 2020)

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

  Log Message:
  -----------
  Add a picture

This new figure shows the complete set of messages that determine the
connection ID that each peer uses.  The explanation describes how the
connection IDs in those messages are included in transport parameters.

Hopefully this aids in understanding how this is put together.  It's not
complicated, but it's not necessarily clear from reading a set of rules
that this is the case.

  Commit: 6c046207932beb402d293fc5b2c37180995e0dba
      https://github.com/quicwg/base-drafts/commit/6c046207932beb402d293fc5b2c37180995e0dba
  Author: Martin Thomson <[email-masked]>
  Date:   2020-05-12 (Tue, 12 May 2020)

  Changed paths:
    M draft-ietf-quic-invariants.md
    M draft-ietf-quic-transport.md

  Log Message:
  -----------
  Merge branch 'master' into authenticate-hs-cid

  Commit: 6ae7f18bfb4052e352d91c2f95715867b41d2582
      https://github.com/quicwg/base-drafts/commit/6ae7f18bfb4052e352d91c2f95715867b41d2582
  Author: Martin Thomson <[email-masked]>
  Date:   2020-05-12 (Tue, 12 May 2020)

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

  Log Message:
  -----------
  Use a more generic reference

  Commit: fee4020ce6d9aaa9bbee74a51424701ca98bbf44
      https://github.com/quicwg/base-drafts/commit/fee4020ce6d9aaa9bbee74a51424701ca98bbf44
  Author: Martin Thomson <[email-masked]>
  Date:   2020-05-12 (Tue, 12 May 2020)

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

  Log Message:
  -----------
  Correct a few more errors

  Commit: 27dfb6973f76c27fee090c001b6f82427b463806
      https://github.com/quicwg/base-drafts/commit/27dfb6973f76c27fee090c001b6f82427b463806
  Author: Martin Thomson <[email-masked]>
  Date:   2020-05-12 (Tue, 12 May 2020)

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

  Log Message:
  -----------
  Fewer words

  Commit: 62103ceb9ff5b87b2717bea1af6ff64cff1a989e
      https://github.com/quicwg/base-drafts/commit/62103ceb9ff5b87b2717bea1af6ff64cff1a989e
  Author: Martin Thomson <[email-masked]>
  Date:   2020-05-18 (Mon, 18 May 2020)

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

  Log Message:
  -----------
  Only valid packets change this state

Co-authored-by: ekr <[email-masked]>

  Commit: e8531a05f0aa5fb25d3686695600c291cb2d737f
      https://github.com/quicwg/base-drafts/commit/e8531a05f0aa5fb25d3686695600c291cb2d737f
  Author: Martin Thomson <[email-masked]>
  Date:   2020-05-18 (Mon, 18 May 2020)

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

  Log Message:
  -----------
  Merge pull request #3499 from quicwg/authenticate-hs-cid

Authenticate connection IDs

Compare: https://github.com/quicwg/base-drafts/compare/9b80e966caf6...e8531a05f0aa