Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В ASP.NET Core 11 Microsoft.AspNetCore.Server.HttpSys безусловно настраивает группу URL-адресов при HttpServerChannelBindProperty запуске. Это предоставляет маркер привязки канала TLS для конечной точки RFC 5929 (CBT) для приложения с помощью нового ITlsConnectionFeature.TryGetChannelBindingBytes API, что обеспечивает расширенную защиту для проверки подлинности (EPA).
Представленная версия
.NET 11
Предыдущее поведение
Серверы с поддержкой HttpSys не настроили HttpServerChannelBindProperty в группе URL-адресов при запуске, а маркер привязки канала TLS RFC 5929 не был предоставлен приложению.
Приложения могут принять участие, включив переключатель Microsoft.AspNetCore.Server.HttpSys.EnableCBTHardeningAppContext . Этот параметр задает уровень Mediumзащиты, но он не задал HTTP_CHANNEL_BIND_SECURE_CHANNEL_TOKEN флаг, поэтому http.sys не доставлял cbT для каждого запроса.
ITlsConnectionFeature не удалось получить маркер. Единственный связанный API был ITlsTokenBindingFeatureустаревшим , который является другой, не связанной функцией.
Новое поведение
HttpSysOptionsимеет новое свойство типа (, , ), Strictкоторое по умолчанию имеет Mediumзначение . MediumLegacyHttpAuthenticationHardeningLevelHttpAuthenticationHardeningLevel
При запуске HttpSys безусловно вызывается HttpSetUrlGroupProperty с HttpServerChannelBindPropertyприменением настроенного уровня защиты. Для Medium и Strict, кроме того, он задает HTTP_CHANNEL_BIND_SECURE_CHANNEL_TOKEN флаг таким образом, чтобы http.sys предоставлял запрос HTTP_REQUEST_CHANNEL_BIND_STATUS.
Новое ITlsConnectionFeature.TryGetChannelBindingBytes(ChannelBindingKind kind, out ReadOnlyMemory<byte> channelBindingToken) возвращает конечную точку CBT (RFC 5929 tls-server-end-point) для прошедших проверку подлинности HTTPS-запросов.
HttpSetUrlGroupProperty Если вызов завершается сбоем (например, в старом или заблокированном ядре), он регистрируется и запускается. Приложение выполняется так, как будто Legacy настроено.
Тип разрушающего изменения
Это изменение поведения.
Причина изменения
Это изменение предоставляет привязку канала конечных точек RFC 5929 к ПО промежуточного слоя проверки подлинности, чтобы он смог реализовать расширенную защиту для проверки подлинности (EPA). Шифрование EPA привязывает Kerberos, NTLM или Согласование проверки подлинности к базовому каналу TLS, что позволяет снизить атаки ретранслятора проверки подлинности. Ранее сервер ASP.NET Core не предоставлял CBT управляемому коду.
Дополнительные сведения см. в разделе dotnet/aspnetcore#67436.
Рекомендуемое действие
Для большинства пользователей не требуется никаких действий. Новый API включен. Приложения, которые не вызываются TryGetChannelBindingBytes , по-прежнему требуют небольшой затраты на запрос: с Medium затвердением (по умолчанию), http.sys фиксирует маркер привязки канала для каждого HTTPS-запроса и включает его в сведения о запросе, переданные в пользовательский режим, который добавляет небольшое количество работы ядра и примерно 40 дополнительных байтов на запрос. Затраты не являются незначительными для типичных рабочих нагрузок, но не нулевой. Приложения, которые должны полностью исключить его, могут отказаться от настройки HttpAuthenticationHardeningLevel.Legacy (см. фрагмент кода ниже).
Чтобы восстановить поведение до .NET 11, задайте для уровня защиты значение Legacy:
builder.WebHost.UseHttpSys(options =>
{
options.HttpAuthenticationHardeningLevel = HttpAuthenticationHardeningLevel.Legacy;
});
При Legacy настройке HttpSys не задает флаг CBT, http.sys не заполняется HTTP_REQUEST_CHANNEL_BIND_STATUSи TryGetChannelBindingBytes возвращается false.
HttpServerChannelBindPropertyподдерживается в http.sys с Windows 7 и Windows Server 2008 R2 (выпущено 22 октября 2009 г.), что ниже этажа ОС для любой поддерживаемой версии ASP.NET Core. Не затрагивается ASP.NET Core поддерживаемая ОС.
Затронутые API
-
Microsoft.AspNetCore.Server.HttpSys.HttpSysOptions.HttpAuthenticationHardeningLevel(новое) -
Microsoft.AspNetCore.Server.HttpSys.HttpAuthenticationHardeningLevel(новая перечисление) -
Microsoft.AspNetCore.Http.Features.ITlsConnectionFeature.TryGetChannelBindingBytes(новый метод интерфейса по умолчанию)
ASP.NET Core