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

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

В этой статье описываются сведения о поддерживаемых параметрах реестра для реализации windows протокола TLS и ПРОТОКОЛА SSL через поставщик поддержки безопасности (SSP) SChannel. Подразделы реестра и записи, описанные в этой статье, помогут вам администрировать поставщик SChannel SSP и устранять неполадки, в частности протоколы TLS и SSL.

Внимание!

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

Примечание

Отключение компонентов SChannel с помощью параметров реестра не рекомендуется и официально устарело для вызова определенного поведения криптографических компонентов.

Ведение журнала 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. Сопоставление сертификатов "служба для пользователя" (S4U) Kerberos.
  2. Сопоставление имени участника-пользователя.
  3. Сопоставление "один к одному" (также называемое сопоставлением "субъект/поставщик").
  4. Сопоставление "многие к одному".

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

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

Ciphers

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

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

CipherSuites

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

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

ClientCacheTime

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

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

Начиная с Windows Server 2008 и Windows Vista время кэширования клиента по умолчанию составляет 10 часов.

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

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

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

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

"EnableOcspStaplingForSni" = DWORD: 00000001

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

"EnableOcspStaplingForSni" = DWORD: 00000000

Примечание

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

FIPSAlgorithmPolicy

Эта запись определяет соответствие требованиям Федерального стандарта обработки информации (FIPS). Значение по умолчанию — 0.

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

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

Комплекты шифров WINDOWS Server FIPS. См. раздел Поддерживаемые комплекты шифров и протоколы в Schannel SSP.

Хэш-коды

Хэш-алгоритмы 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

Эти записи, перечисленные ниже, могут не существовать в реестре по умолчанию и должны быть созданы вручную. Чтобы включить определенный алгоритм, создайте раздел реестра с именем Enabled в соответствующем пути реестра со значением DWORD 1. Это также можно отключить, задав для параметра DWORD значение 0. Рекомендуется использовать не менее 2048 бит для длины ключа клиента и сервера.

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

Добавлено в 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 бит.

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

MaximumCacheSize

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

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

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

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

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

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

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

Добавлено в Windows 7 и Windows Server 2008 R2: доступно обновление, позволяющее Internet Explorer в 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

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

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

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

Эта запись не существует в реестре по умолчанию.

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

Версия 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

Эта запись определяет время в миллисекундах, через которое в операционной системе истекает срок действия записей кэша на стороне сервера. Значение 0 отключает кэш сеанса на стороне сервера и запрещает переподключение. Если для 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 или SCHANNEL_CRED в вызове AcquireCredentialsHandle . Рекомендуется, чтобы вызывающие SSPI использовали системные значения по умолчанию, а не накладывали ограничения на версию протокола.

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

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

Системный администратор может переопределить параметры версии протокола (D)TLS и SSL по умолчанию, создав значения реестра DWORD Enabled и DisabledByDefault. Эти значения реестра настраиваются отдельно для ролей клиента протокола и сервера в подразделах реестра с именем в следующем формате:

<Основной номер> версии 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 в состояние Enabled , создайте значение реестра DWORD Enabled со значением записи "1" и значение реестра DWORD с именем "DisabledByDefault" со значением "0" в соответствующем подразделе для конкретной версии.

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

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

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

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

Чтобы переопределить системное значение по умолчанию и задать поддерживаемую версию протокола (D)TLS или SSL в состояние Disabled , создайте значение реестра 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 и не влияют на сторонние реализации TLS и SSL, которые могут быть установлены в системе.