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

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

В этой статье описываются поддерживаемые сведения о параметрах реестра для реализации протокола TLS и протокола SSL через поставщик поддержки безопасности SChannel (SSP). Подразделы реестра и записи, описанные в этой статье, помогают администрировать и устранять неполадки SChannel SSP, в частности протоколы 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 использует четыре метода сопоставления сертификатов:

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

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

Имя записи DWORD Включено по умолчанию
Тема или издатель 0x000000001 No
Издатель 0x000000002 No
UPN 0x000000004 No
S4U2Self 0x000000008 Да
S4U2Self Явный 0x000000010 Да

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

Ciphers

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

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

CipherSuites

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

Сведения о заказах набора шифров по умолчанию, используемых SSP SChannel, см. в статьях "Наборы шифров" в 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 (IIS), предоставить текущее состояние отзыва сертификата сервера при отправке сертификата сервера клиенту во время подтверждения TLS. Эта функция снижает нагрузку на серверы OCSP, так как веб-сервер может кэшировать текущее состояние сертификата сервера OCSP и отправлять его нескольким веб-клиентам. Без этой функции каждый веб-клиент попытается получить текущее состояние OCSP сертификата сервера с сервера OCSP. Это приведет к высокой нагрузке на этот сервер OCSP.

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

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

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

В этом случае ответ приветствия сервера во время подтверждения 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:000000000

Примечание.

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

хэш-коды;

Алгоритмы хэша 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 на текущем компьютере несоответствующим с ПРОТОКОЛАМИ RFCS.

Максимальный допустимый размер может быть увеличен до 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 и более поздних версий FALSE
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 поддерживают разные версии протокола. Набор доступных версий TLS и SSL может быть ограничен (но не расширен) вызывающими средствами SSPI, указывающими структуру SCH_CREDENTIALS в вызове AcquireCredentialsHandle . Рекомендуется использовать системные значения по умолчанию, а не вводить ограничения версий протокола.

Поддерживаемая версия протокола 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

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

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

Screenshot of Set TLS 1.0 client-side to enabled in Windows Server registry setting.

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

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

Screenshot of Windows Server registry setting for DTLS 1.2 set to disabled by default.

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

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

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