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

Errors for bogus tickets. Fixes #1247 #1269

Closed
wants to merge 1 commit into from

Conversation

ekr
Copy link
Contributor

@ekr ekr commented Oct 21, 2022

No description provided.

@ekr
Copy link
Contributor Author

ekr commented Oct 21, 2022

As noted in the original issue, we he have unknown_psk_identity, so I think this is unnecessary after all.

@emanjon @chris-wood ?

@@ -4102,6 +4103,13 @@ decrypt_error:
to correctly verify a signature or validate a Finished message
or a PSK binder.

ticket_invalid:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"ticket" has a very specific connotation that I think you might want to avoid here. How about psk_rejected? My only reservation there is that it looks like your goal is to signal that the psk identifier is not acceptable to the server.

Comment on lines +4110 to +4111
is being used for session resumption, the server MAY
ignore the ticket and perform a full handshake instead.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you really want 2119 language here? This is just how session resumption is supposed to work.

Suggested change
is being used for session resumption, the server MAY
ignore the ticket and perform a full handshake instead.
is being used for session resumption, the server is expected
to ignore the ticket and perform a full handshake instead.

@@ -4836,7 +4846,7 @@ The registries and their allocation policies are below:
with the values from {{alert-messages-appendix}}. The
"DTLS-OK" column is marked as "Y" for all such values.
Values marked as "_RESERVED" have comments
describing their previous usage.
describing their previous usage
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
describing their previous usage
describing their previous usage.

Other list items have a period.

@tomato42
Copy link
Contributor

Shouldn't we add a security section to that? It feels to me like it may be very easy to mess up the identity checks in a way that provides information to the attacker (Bleichenbacher style).

@ekr
Copy link
Contributor Author

ekr commented Oct 24, 2022 via email

@tomato42
Copy link
Contributor

It's very implementation dependent, how the ticket is constructed. A ticket that's RSA encrypted, AES encrypted, or just a database key will have completely different behaviours and possible attacks, so unfortunately at best I think we can provide only something vague and generic.

Rather bad, bad something like this:

Note that the decryption and processing of the ticket may provide a side channel about information contained in the ticket or internal state of the server.
Implements should analyse if the particular ticket construction doesn't leak sensitive information when processed from malformed messages or unexpected sources. Using authenticated encryption over all fields of the ticket is one of recommended mitigation strategies. 

@ekr
Copy link
Contributor Author

ekr commented Oct 24, 2022 via email

@tomato42
Copy link
Contributor

tomato42 commented Oct 24, 2022

I wasn't thinking about the presence or even value of the alert being the side channel, I was thinking about timing side-channels.

@ekr
Copy link
Contributor Author

ekr commented Oct 24, 2022 via email

@ekr ekr closed this Nov 10, 2022
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

Successfully merging this pull request may close these issues.

None yet

3 participants