Thanks to visit codestin.com
Credit goes to github.com

Skip to content

SNI: added restriction for TLSv1.3 cross-SNI session resumption. #493

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

Merged
merged 1 commit into from
Feb 5, 2025

Conversation

pluknet
Copy link
Contributor

@pluknet pluknet commented Feb 5, 2025

In OpenSSL, session resumption always happens in the default SSL context, prior to invoking the SNI callback. Further, unlike in TLSv1.2 and older protocols, SSL_get_servername() returns values received in the resumption handshake, which may be different from the value in the initial handshake. Notably, this makes the restriction added in b720f65 insufficient for sessions resumed with different SNI server name.

Considering the example from b720f65, previously, a client was able to request example.org by presenting a certificate for example.org, then to resume and request example.com.

The fix is to reject handshakes resumed with a different server name, if verification of client certificates is enabled in a corresponding server configuration.

Proposed changes

Describe the use case and detail of the change.

If this pull request addresses an issue on GitHub, make sure to reference that
issue using one of the
supported keywords.

Before creating a pull request, make sure to comply with the
Contributing Guidelines.

In OpenSSL, session resumption always happens in the default SSL context,
prior to invoking the SNI callback.  Further, unlike in TLSv1.2 and older
protocols, SSL_get_servername() returns values received in the resumption
handshake, which may be different from the value in the initial handshake.
Notably, this makes the restriction added in b720f65 insufficient for
sessions resumed with different SNI server name.

Considering the example from b720f65, previously, a client was able to
request example.org by presenting a certificate for example.org, then to
resume and request example.com.

The fix is to reject handshakes resumed with a different server name, if
verification of client certificates is enabled in a corresponding server
configuration.
@pluknet pluknet requested a review from arut February 5, 2025 16:09
@pluknet pluknet merged commit 46b9f5d into nginx:master Feb 5, 2025
1 check passed
@pluknet pluknet deleted the snisni branch February 5, 2025 16:11
@Maryna-f5 Maryna-f5 added this to the nginx-1.27.4 milestone Feb 5, 2025
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.

3 participants