Параметры реестра протокола TLS

Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows 11, Windows 10 и более ранние версии, как указано выше.

В этой статье описываются сведения о поддерживаемых параметрах реестра для реализации Windows протоколов TLS и SSL через поставщика поддержки безопасности (SSP) SChannel. Подразделы и записи реестра, описанные в этой статье, помогут вам администрировать И устранять неполадки sSP SChannel, в частности протоколы TLS и SSL.

Внимание!

Эти сведения предоставляются в виде справочника для использования при устранении неполадок или проверки правильности применения нужных параметров. Рекомендуется не изменять реестр напрямую, если есть другие возможности. Изменения в реестре не проверяются редактором реестра или операционной системой Windows перед их применением. В результате могут сохраниться неверные значения, что приведет к неустранимым ошибкам в системе. По возможности вместо редактирования реестра напрямую используйте групповая политика или другие средства Windows, такие как консоль управления (MMC). Если отредактировать реестр все же необходимо, соблюдайте крайнюю осторожность.

Ведение журнала SChannel

Существует восемь уровней ведения журнала для событий SChannel, сохраненных в журнале системных событий и доступных для просмотра с помощью Просмотр событий. Этот путь к реестру хранится в HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL в разделе EventLogging со значением DWORD, равным 1.

Десятичная или шестнадцатеричная События ведения журнала SChannel
0 Нет событий
1 События ошибок
2 События предупреждений
3 События ошибок и предупреждений
4 Информационные события и события успеха
5 События ошибок, информационных событий и событий успешного выполнения
6 События предупреждения, информационные события и события успешного выполнения
7 События ошибок, предупреждений, информационных событий и событий успешного выполнения

Примечание

После изменения уровня ведения журнала SChannel необходимо перезагрузить устройство.

CertificateMappingMethods

Когда серверное приложение требует проверки подлинности клиента, SChannel автоматически пытается сопоставить сертификат, предоставленный клиентским компьютером, с учетной записью пользователя. Вы можете проверять подлинность пользователей, выполняющих вход с сертификатом клиента, создавая сопоставления, связывающие данные сведения с учетной записью пользователя Windows.

После создания и включения сопоставления сертификатов каждый раз, когда клиент предоставляет сертификат клиента, серверное приложение автоматически сопоставляет этого пользователя с соответствующей учетной записью Windows.

В большинстве случаев сертификат сопоставляется с учетной записью пользователя одним из двух следующих способов.

  • Один сертификат сопоставляется с одной учетной записью пользователя (сопоставление "один к одному").
  • Несколько сертификатов сопоставляются с одной учетной записью пользователя (сопоставление "многие к одному").

Поставщик SChannel использует четыре (4) метода сопоставления сертификатов:

  1. Сопоставление службы Kerberos для пользователя (S4U) (включено по умолчанию)
  2. Сопоставление имени участника-пользователя.
  3. Сопоставление "один к одному" (также называемое сопоставлением "субъект/поставщик").
  4. Сопоставление "многие к одному".

Путь к реестру: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Имя записи DWORD По умолчанию включено
Тема или издатель 0x000000001 Нет
Издатель 0x000000002 Нет
UPN 0x000000004 Нет
S4U2Self 0x000000008 Да
S4U2Self Explicit 0x000000010 Да

Применимые версии: как указано в списке Применяется к в начале этой статьи.

Ciphers

Шифры TLS/SSL должны управляться путем настройки порядка комплектов шифров. Дополнительные сведения см. в разделе Настройка заказа комплектов шифров TLS.

Сведения о заказах комплектов шифров по умолчанию, используемых поставщиком SChannel SSP, см. в разделе Комплекты шифров в TLS/SSL (SChannel SSP).

CipherSuites

Настройка комплектов шифров TLS/SSL должна выполняться с помощью групповой политики, MDM или PowerShell. Дополнительные сведения см. в статье Настройка заказа комплектов шифров TLS .

Сведения о заказах комплектов шифров по умолчанию, используемых поставщиком SChannel SSP, см. в разделе Комплекты шифров в TLS/SSL (SChannel SSP).

ClientCacheTime

Эта запись указывает время существования элемента кэша сеанса TLS клиента в миллисекундах. Начиная с Windows Server 2008 и Windows Vista по умолчанию используется 10 часов. Значение 0 отключает кэширование сеанса TLS на клиенте.

При первом подключении клиента к серверу через SChannel SSP выполняется полное подтверждение TLS/SSL. После завершения главная копия секрета, комплект шифров и сертификаты хранятся в кэше сеанса на соответствующем клиенте и сервере.

Путь к реестру: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

EnableOcspStaplingForSni

Скобление протокола OCSP позволяет веб-серверу, например службам IIS, предоставлять текущее состояние отзыва сертификата сервера при отправке сертификата сервера клиенту во время подтверждения TLS. Эта функция снижает нагрузку на серверы OCSP, так как веб-сервер может кэшировать текущее состояние OCSP сертификата сервера и отправлять его нескольким веб-клиентам. Без этой функции каждый веб-клиент попытается получить текущее состояние OCSP сертификата сервера с сервера OCSP. Это приведет к высокой нагрузке на этом сервере OCSP.

Помимо СЛУЖБ IIS, этот параметр также может использовать веб-службы http.sys, включая службы федерации Active Directory (AD FS) (AD FS) и веб-Application Proxy (WAP).

По умолчанию поддержка OCSP включена для веб-сайтов IIS с простой безопасной привязкой (SSL/TLS). Однако эта поддержка не включена по умолчанию, если веб-сайт IIS использует один или оба из следующих типов привязок SSL/TLS:

  • Требовать указание имени сервера
  • Использовать централизованное хранилище сертификатов

В этом случае ответ hello сервера во время подтверждения TLS по умолчанию не будет включать состояние OCSP со скрепкой. Такое поведение повышает производительность. Реализация скобок Windows OCSP масштабируется до сотен сертификатов сервера. Однако указание имени сервера (SNI) и центральное хранилище сертификатов (CCS) позволяют IIS масштабироваться до тысяч веб-сайтов, которые потенциально имеют тысячи сертификатов сервера, поэтому включение скобок OCSP для привязок CCS может привести к проблемам с производительностью.

Применимые версии: все версии, начиная с Windows Server 2012 и Windows 8.

Путь к реестру: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Добавьте следующий ключ:

"EnableOcspStaplingForSni" = DWORD: 00000001

Чтобы отключить, задайте для параметра DWORD значение 0:

"EnableOcspStaplingForSni" = DWORD: 00000000

Примечание

Включение этого раздела реестра может повлиять на производительность.

Хэш-коды

Хэш-алгоритмы TLS/SSL должны управляться путем настройки порядка набора шифров. Дополнительные сведения см. в разделе Настройка заказа комплекта шифров TLS .

IssuerCacheSize

Эта запись управляет размером кэша издателя и используется с сопоставлением издателя. SChannel SSP пытается сопоставить всех издателей в цепочке сертификатов клиента, а не только непосредственного издателя сертификата клиента. Если издатели не сопоставляют учетную запись, что является типичным случаем, сервер может пытаться сопоставить одно и то же имя издателя несколько раз, сотни раз в секунду.

Чтобы избежать этого, сервер имеет отрицательный кэш, поэтому, если имя издателя не сопоставляется с учетной записью, оно добавляется в кэш, и SChannel SSP не будет пытаться сопоставить имя издателя снова, пока не истечет срок действия записи кэша. Эта запись реестра указывает размер кэша. Эта запись не существует в реестре по умолчанию. Значение по умолчанию равно 100.

Применимые версии: все версии, начиная с Windows Server 2008 и Windows Vista.

Путь к реестру: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

IssuerCacheTime

Эта запись определяет продолжительность интервала времени ожидания кэша в миллисекундах. SChannel SSP пытается сопоставить всех издателей в цепочке сертификатов клиента, а не только непосредственного издателя сертификата клиента. В случае, когда издатели не сопоставляют учетную запись, что является типичным случаем, сервер может пытаться сопоставить одно и то же имя издателя несколько раз, сотни раз в секунду.

Чтобы избежать этого, сервер имеет отрицательный кэш, поэтому, если имя издателя не сопоставляется с учетной записью, оно добавляется в кэш, и SChannel SSP не будет пытаться сопоставить имя издателя снова, пока не истечет срок действия записи кэша. Этот кэш хранится по соображениям производительности, чтобы система не продолжала пытаться сопоставить одних и того же издателя. Эта запись не существует в реестре по умолчанию. Значение по умолчанию — 10 минут.

Применимые версии: все версии, начиная с Windows Server 2008 и Windows Vista.

Путь к реестру: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Размеры ключей KeyExchangeAlgorithm

Эти записи, перечисленные ниже, могут не существовать в реестре по умолчанию и должны быть созданы вручную. Использование алгоритмов обмена ключами должно контролироваться путем настройки порядка набора шифров.

Добавлено в Windows 10 версии 1507 и Windows Server 2016.

Путь к реестру: HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman

Чтобы указать минимальный поддерживаемый диапазон Diffie-Hellman длины ключа для клиента TLS, создайте запись ClientMinKeyBitLength . После создания записи измените значение DWORD на нужную битовую длину. Если значение не настроено, минимальное значение будет составлять 1024 бита.

Чтобы указать максимальный поддерживаемый диапазон Diffie-Hellman бит ключа для клиента TLS, создайте запись ClientMaxKeyBitLength . После создания записи измените значение DWORD на нужную битовую длину.

Чтобы указать длину бита ключа Diffie-Hellman для сервера TLS по умолчанию, создайте запись ServerMinKeyBitLength . После создания записи измените значение DWORD на нужную битовую длину. Если значение не настроено, по умолчанию используется 2048 бит.

Примечание

Настроенные эллиптические кривые определяют криптографическую надежность обмена ключами ECDHE. Дополнительные сведения см. в статье Управление протоколом TLS.

Дополнительные сведения о криптографических алгоритмах набора шифров TLS/SSL см. в следующем разделе:

MaximumCacheSize

Эта запись управляет максимальным числом сеансов TLS для кэширования. Установка параметра MaximumCacheSize в значение 0 отключает кэш сеансов на стороне сервера, чтобы предотвратить возобновление сеанса. Если для MaximumCacheSize задать значение больше установленного по умолчанию, Lsass.exe будет потреблять дополнительный объем памяти. Для каждого элемента кэша сеанса обычно требуется от 2 ДО 4 КБ памяти. Эта запись не существует в реестре по умолчанию. Значение по умолчанию — 20000.

Применимые версии: все версии, начиная с Windows Server 2008 и Windows Vista.

Путь к реестру: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Обмен сообщениями — анализ фрагментов

Эта запись управляет максимальным допустимым размером сообщения подтверждения TLS, которое будет принято. Сообщения, превышающие допустимый размер, не будут приняты, и подтверждение TLS завершится ошибкой. По умолчанию эти записи не существуют в реестре.

При установке значения 0x0 фрагментированные сообщения не обрабатываются и это приведет к сбою подтверждения TLS. Это делает tls-клиенты или серверы на текущем компьютере несовместимыми с RFC TLS.

Максимальный допустимый размер можно увеличить до 2^16 байт. Разрешение клиенту или серверу считывать и хранить большие объемы непроверенных данных из сети не рекомендуется и будет потреблять дополнительную память для каждого контекста безопасности.

Добавлено в Windows 7 и Windows Server 2008 R2: доступно обновление, позволяющее Обозреватель Интернета в Windows XP, Windows Vista или Windows Server 2008 для анализа фрагментированных сообщений подтверждения TLS/SSL.

Путь к реестру: HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Messaging

Чтобы указать максимально допустимый размер фрагментированных сообщений подтверждения TLS, которые будет принимать клиент TLS, создайте запись MessageLimitClient . После создания записи измените значение DWORD на нужную битовую длину. Если значение не настроено, значение по умолчанию — 0x8000 байт.

Чтобы указать максимально допустимый размер фрагментированных сообщений подтверждения TLS, которые сервер TLS будет принимать при отсутствии проверки подлинности клиента, создайте запись MessageLimitServer . После создания записи измените значение DWORD на нужную битовую длину. Если значение не настроено, значение по умолчанию — 0x4000 байт.

Чтобы указать максимально допустимый размер фрагментированных сообщений подтверждения TLS, которые сервер TLS будет принимать при проверке подлинности клиента, создайте запись MessageLimitServerClientAuth . После создания записи измените значение DWORD на нужную битовую длину. Если значение не настроено, значение по умолчанию — 0x8000 байт.

SendTrustedIssuerList

Серверы TLS могут отправлять список различающихся имен допустимых центров сертификации при запросе проверки подлинности клиента. Это может помочь клиентам TLS выбрать соответствующий сертификат клиента TLS. Серверы TLS на основе SChannel не отправляют этот список доверенных издателей по умолчанию, так как он предоставляет центры сертификации, доверенные сервером, пассивным наблюдателям, а также увеличивает объем данных, обмениваемых в ходе подтверждения TLS. Если задать для этого значения значение 1 , серверы на основе SChannel будут отправлять свои списки доверенных издателей.

Отсутствие отправки списка доверенных издателей может повлиять на то, что клиент отправляет при запросе сертификата клиента. Например, получив запрос на проверку подлинности клиента, Internet Explorer отображает только сертификаты клиента, по цепочке связанные с одним из центров сертификации, отправленных сервером. Если сервер не отправил список, интернет-Обозреватель отображает все сертификаты клиента, установленные на клиенте.

Это поведение может быть нежелательно. Например, если среды PKI включают кросс-сертификаты, сертификаты клиента и сервера не будут иметь одинаковый корневой ЦС; Поэтому интернет-Обозреватель не могут выбрать сертификат, который связан с одним из ЦС сервера. Клиенты TLS могут предлагать любой доступный сертификат клиента, если сервер не отправляет список доверенных издателей. Эта запись не существует в реестре по умолчанию.

Поведение отправки списка доверенных издателей по умолчанию

Версия Windows Поведение по умолчанию
Windows Server 2012, Windows 8 и более поздние версии Ложь.
Windows Server 2008 R2, Windows 7 и более ранние версии TRUE

Применимые версии: все версии, начиная с Windows Server 2008 и Windows Vista.

Путь к реестру: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

ServerCacheTime

Эта запись указывает время существования элемента кэша сеанса TLS сервера в миллисекундах. Значение по умолчанию — 10 часов. Значение 0 отключает кэширование сеанса TLS на сервере и предотвращает возобновление сеанса. Если для ServerCacheTime задать значение больше установленного по умолчанию, Lsass.exe будет потреблять дополнительный объем памяти. Для каждого элемента кэша сеанса обычно требуется от 2 ДО 4 КБ памяти. Эта запись не существует в реестре по умолчанию.

Применимые версии: все версии, начиная с Windows Server 2008 и Windows Vista.

Путь к реестру: HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL

Время кэша сервера по умолчанию: 10 часов

Параметры версии протокола TLS, DTLS и SSL

SChannel SSP реализует версии протоколов TLS, DTLS и SSL. Разные выпуски Windows поддерживают разные версии протокола. Набор версий (D)TLS и SSL, доступных для всей системы, может быть ограничен (но не расширен) вызывающими элементами SSPI, указывая структуру SCH_CREDENTIALS в вызове AcquireCredentialsHandle . Рекомендуется, чтобы вызывающие SSPI использовали системные значения по умолчанию, а не накладывали ограничения на версию протокола.

Поддерживаемая версия протокола (D)TLS или SSL может существовать в одном из следующих состояний:

  • Включено. Если вызывающий объект SSPI явно не отключает эту версию протокола с помощью SCH_CREDENTIALS структуры, SChannel SSP может согласовать эту версию протокола с поддерживающим одноранговым элементом.
  • Отключено: SChannel SSP не согласовывает эту версию протокола независимо от параметров, которые может указать вызывающий поставщик SSPI.

Эти значения реестра настраиваются отдельно для ролей клиента протокола и сервера в подразделах реестра с именем в следующем формате:

<Основной номер> версии SSL/TLS/DTLS.<>< дополнительный номер><версии Client\Server>

Эти подразделы для конкретных версий можно создать в следующем пути реестра:

HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols

Например, ниже приведены некоторые допустимые пути к реестру с подразделами для конкретной версии:

  • HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client

  • HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server

  • HKLM SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\DTLS 1.2\Client

Чтобы переопределить системное значение по умолчанию и задать поддерживаемую версию протокола (D)TLS или SSL в состояние Включено , создайте значение реестра DWORD Enabled со значением записи "1" в соответствующем подразделе для конкретной версии.

В следующем примере показано, что для клиента TLS 1.0 задано состояние Включено :

Снимок экрана: настройка на стороне клиента TLS 1.0 для включения в параметре реестра Windows Server.

Чтобы переопределить системное значение по умолчанию и задать поддерживаемую версию протокола (D)TLS или SSL в состояние Отключено , измените значение реестра DWORD "Enabled" на "0" в соответствующем подразделе для конкретной версии.

В следующем примере показан параметр DTLS 1.2, отключенный в реестре:

Снимок экрана: параметр реестра Windows Server для DTLS 1.2 с отключенным по умолчанию.

Переключение версии протокола (D)TLS или SSL в состояние Отключено может привести к сбою вызовов AcquireCredentialsHandle из-за отсутствия версий протокола, включенных в системе и в то же время разрешенных определенными вызывающими SSPI. Кроме того, сокращение набора версий Enabled (D)TLS и SSL может нарушить взаимодействие с удаленными одноранговыми узлами.

После изменения параметров версии протокола (D)TLS или SSL они вступают в силу для подключений, установленных с помощью дескрипторов учетных данных, открытых последующими вызовами AcquireCredentialsHandle . (D) Клиентские и серверные приложения и службы TLS и SSL, как правило, повторно использует дескриптор учетных данных для нескольких подключений из соображений производительности. Чтобы эти приложения могли повторно запрашивать свои дескрипторы учетных данных, может потребоваться перезапуск приложения или службы.

Эти параметры реестра применяются только к SChannel SSP и не влияют на сторонние реализации (D)TLS и SSL, которые могут быть установлены в системе.