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

Net: Implement replay protection #306

Open
solardiz opened this issue Feb 25, 2024 · 0 comments
Open

Net: Implement replay protection #306

solardiz opened this issue Feb 25, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@solardiz
Copy link
Contributor

Combined from comments I originally made on Nov 9 to Nov 28, 2022.

We already have replay protection within TCP streams due to use of hydrogen's message numbers. It will protect against pieces within TCP sessions from being replayed. It will not protect from replay of TCP sessions (entire or partial) from their beginnings.

We could also implement protection against replay of TCP sessions, in three ways:

  1. If we continue to use or allow data payloads without a full handshake (non-interactive Noise pattern or first step in an interactive pattern), we could check timestamps inside first messages of TCP sessions, and impose restrictions on whether/when/how time can go back.
  2. We could implement an interactive Noise pattern (which we'd also want for forward secrecy) and only be sending data payloads after full handshake.
  3. If we implement client authentication via challenge/response and with at least the response coming as a Noise payload, this can also defeat replay even while keeping the non-interactive Noise pattern.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant