Параметры реестра протокола 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) метода сопоставления сертификатов:
- Сопоставление службы Kerberos для пользователя (S4U) (включено по умолчанию)
- Сопоставление имени участника-пользователя.
- Сопоставление "один к одному" (также называемое сопоставлением "субъект/поставщик").
- Сопоставление "многие к одному".
Путь к реестру: 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 задано состояние Включено :
Чтобы переопределить системное значение по умолчанию и задать поддерживаемую версию протокола (D)TLS или SSL в состояние Отключено , измените значение реестра DWORD "Enabled" на "0" в соответствующем подразделе для конкретной версии.
В следующем примере показан параметр DTLS 1.2, отключенный в реестре:
Переключение версии протокола (D)TLS или SSL в состояние Отключено может привести к сбою вызовов AcquireCredentialsHandle из-за отсутствия версий протокола, включенных в системе и в то же время разрешенных определенными вызывающими SSPI. Кроме того, сокращение набора версий Enabled (D)TLS и SSL может нарушить взаимодействие с удаленными одноранговыми узлами.
После изменения параметров версии протокола (D)TLS или SSL они вступают в силу для подключений, установленных с помощью дескрипторов учетных данных, открытых последующими вызовами AcquireCredentialsHandle . (D) Клиентские и серверные приложения и службы TLS и SSL, как правило, повторно использует дескриптор учетных данных для нескольких подключений из соображений производительности. Чтобы эти приложения могли повторно запрашивать свои дескрипторы учетных данных, может потребоваться перезапуск приложения или службы.
Эти параметры реестра применяются только к SChannel SSP и не влияют на сторонние реализации (D)TLS и SSL, которые могут быть установлены в системе.