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

Redesign Session Resumption feature #5154

Open
maddeleine opened this issue Feb 28, 2025 · 0 comments
Open

Redesign Session Resumption feature #5154

maddeleine opened this issue Feb 28, 2025 · 0 comments

Comments

@maddeleine
Copy link
Contributor

Security issue notifications

If you discover a potential security issue in s2n we ask that you notify
AWS Security via our vulnerability reporting page. Please do not create a public github issue.

Problem:

Over the years, we've found that the original session resumption design is not as future-proof as we would like it to be. Some of the past design decisions are hard to justify, and some others just don't let us add additional capabilities to it. Examples of our gripes with the current design:

  1. Which ticket key to use for encryption is a weighted random selection algorithm. This is unintuitive and has a variety of side effects that are weird; for example, testing a non-deterministic algorithm means we have to build in a certain amount of expected failure.
  2. In general, the ticket key lifecycle is quite rigid, you can't add keys that are only for ticket decryption.
  3. Design is not very user friendly, having to input ticket keys on a schedule is hard. Might be easier to just call a callback asking for a ticket key for an encrypt/decrypt operation.
  4. Original design did not consider thread safety, leading to bugs in multi-threaded environments.
    ... and more.
    In general, our team has a lot of ideas for improving the feature that can't really be added on to the current design.

Solution:

Redesign the resumption feature with our current understanding of safety and usability.

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