-
Notifications
You must be signed in to change notification settings - Fork 5.2k
[release/6.0] disable sending NT Authority in TLS handshake if specific trust was specified #61713
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
Conversation
Tagging subscribers to this area: @dotnet/ncl, @vcsjones |
The actual change is scoped to if (certificateContext?.Trust?._sendTrustInHandshake == true)
flags |= Interop.SspiCli.SCH_CREDENTIALS.Flags.SCH_CRED_NO_SYSTEM_MAPPER; That is new API added in 6.0 and AAD is only one user at the moment AFAIK. Impact on existing users would be possible only if there is some new bug in the hashing that comes with this change. (to treat the context with trust as different (separate small bug)) |
One more note that when we implement this on Linux/macOS, there will not be any "NT Authority". So this also makes it more consistent across (future) platforms) |
Approved offline by Steve |
@safern just curious why is it marked as NO MERGE? |
It is because the branch is closed, so we can't merge servicing fixes to the branch yet. We will be able to merge it next week when we open the branch. |
Thanks @safern. I was just surprised that it is used for external reasons. I would naively expect that the label is property of the PR -- i.e. it is not approved yet, or is not ready. I would expect readiness of branch to be tracked externally as it is about timing. Also, using it this way means all servicing PRs should be labeled this way (which they are not), which would be probably not very useful - it is basically global boolean. |
No worries. Thanks for explaining the confusion, I'll try to be consistent either way for next servicing release. |
Backport of #60988 to release/6.0
Fixes #60949
/cc @wfurt
Customer Impact
This impacts ability to send custom trust list in TLS handshake. This feature was requested by AAD Gateway and it is new in 6.0. By default, SslStream/Schannel sends extra synthetic entry in the CA list. Would be generally fine, but it breaks use case when AAD Gateway tries to send empty list. Since there is extra entry, TLS Handshake fails with .NET clients.
Testing
This was tested manually and customer (AAD Gateway) verified with 7.0 daily build.
Risk
Small. The change is scoped to disable the option only when the new API is in use.
cc: @avparuch