Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DTLS concerns #23

Open
thomwiggers opened this issue Jul 5, 2023 · 1 comment
Open

DTLS concerns #23

thomwiggers opened this issue Jul 5, 2023 · 1 comment

Comments

@thomwiggers
Copy link
Member

Ilari writes:

Reading the draft, it occurs to me that adapting it to work on DTLS (or unreliable CTLS) might require major and very challenging changes to DTLS 1.3. Especially with client authentication.

And 0-RTT client auth probably can not work in DTLS at all, since DTLS has no reliability for 0-RTT, unlike other handshake, which is reliable.

@thomwiggers
Copy link
Member Author

From another message by Ilari:

Actually, the changes might not be quite so nasty:

  • The DTLS epoch numbering needs to be changed: If AuthKEM is used,
    then epoch 3 needs to be autheticated_handshake epoch instead of
    application_0 epoch, which is pushed to epoch 4 and then that pushes
    other application epoch one number forward.

  • Fortunately even if there are 5 active epochs during handshake,
    the 2 bits in DTLS header are still enough, because one of those is
    plaintext, and can be recognized from record types used.

  • There actually might be chance to make the early auth work. However,
    there are subtle details:

    • The certificate being a message, it is subject to acknowledgements.
      However, server hello must be logically before it. This is required
      to meet the acknowledgment epoch rule.
    • The server flight needs to be broken into two just before server
      Finished, first part being unordered with certificate, and second
      being the next flight. This is required to have the certificate
      available for computing finished, and to meet the implicit
      acknowledgment rule.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant