Поделиться через


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

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

Caution

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

Schannel logging

Существует восемь уровней ведения журнала для событий Schannel, сохраненных в системном журнале событий и доступных для просмотра с помощью средства просмотра событий. This registry path is stored in HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL under the EventLogging key with a DWORD value set to 1.

Десятичная или шестнадцатеричная События журнала Schannel
0 No events
1 Error events
2 Warning events
3 События ошибки и предупреждения
4 Информационные и успешные события
5 События ошибки, информационные и успешные события
6 События предупреждения, информационные и успешные события
7 События ошибки, предупреждения, информационные и успешные события

Note

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

CertificateMappingMethods

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

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

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

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

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

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

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

Entry name DWORD Включено по умолчанию
Subject/Issuer 0x000000001 No
Issuer 0x000000002 No
UPN 0x000000004 No
S4U2Self 0x000000008 Yes
S4U2Self Explicit 0x000000010 Yes

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 часов. A value of 0 turns off TLS session caching on the client.

При первом подключении клиента к серверу через 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 может привести к проблемам с производительностью.

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

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

"EnableOcspStaplingForSni"=dword:00000001

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

"EnableOcspStaplingForSni"=dword:00000000

Note

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

Hashes

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

IssuerCacheSize

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

Чтобы предотвратить это, сервер имеет отрицательный кэш, поэтому если имя издателя не сопоставляется с учетной записью, он добавляется в кэш, и Schannel SSP не пытается сопоставить имя издателя еще раз до истечения срока действия записи кэша. Эта запись реестра указывает размер кэша. Эта запись не существует в реестре по умолчанию. The default value is 100.

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

IssuerCacheTime

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

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

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

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

Эти следующие записи могут не существовать в реестре по умолчанию и должны быть созданы вручную. Использование алгоритмов обмена ключами должно контролироваться путем настройки порядка набора шифров. Дополнительные сведения о криптографических алгоритмах наборов шифров TLS/SSL можно найти в статье Наборы шифров в TLS/SSL (Schannel SSP).

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

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

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

Note

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

MaximumCacheSize

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

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

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

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

При установке значения 0x0фрагментированные сообщения не обрабатываются и вызывают сбой подтверждения TLS. Это делает клиенты ИЛИ серверы TLS на текущем компьютере несоответствующим с ПРОТОКОЛАМИ RFCS.

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

Добавлено в 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 на нужную битовую длину. If not configured, the default value is 0x4000 bytes.

Чтобы указать максимальный допустимый размер фрагментированных сообщений подтверждения TLS, которые сервер TLS принимает при проверке подлинности клиента, создайте MessageLimitServerClientAuth запись. После создания записи измените значение DWORD на нужную битовую длину. If not configured, the default value is 0x8000 bytes.

SendTrustedIssuerList

Серверы TLS могут отправлять список различаемых имен допустимых центров сертификации при запросе проверки подлинности клиента. Это поможет клиентам TLS выбрать соответствующий сертификат клиента TLS. Серверы TLS на основе Schannel по умолчанию не отправляют этот список доверенных издателей сертификатов, так как это разоблачает центры сертификации, которым доверяет сервер, для пассивных наблюдателей и увеличивает объем данных, обмениваемых в ходе рукопожатия TLS. Setting this value to 1 causes Schannel-based servers to send their lists of trusted issuers.

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

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

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

Windows version Default behavior
Windows Server 2012, Windows 8 и более поздних версий FALSE

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

ServerCacheTime

Эта запись указывает время существования элемента кэша сеансов TLS сервера в миллисекундах. Значение по умолчанию — 10 часов. A value of 0 turns off TLS session caching on the server and prevents session resumption. Если для ServerCacheTime задать значение больше установленного по умолчанию, Lsass.exe будет потреблять дополнительный объем памяти. Каждый элемент кэша сеансов обычно требует 2 КБ до 4 КБ памяти. Эта запись не существует в реестре по умолчанию.

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

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

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

SChannel SSP реализует версии протоколов TLS, DTLS и SSL. Different Windows releases support different protocol versions. The set of (D)TLS and SSL versions available system-wide can be restricted (but not expanded) by SSPI callers specifying the SCH_CREDENTIALS structure in the AcquireCredentialsHandle call. Рекомендуется использовать системные значения по умолчанию, а не вводить ограничения версий протокола.

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

  • Enabled: Unless the SSPI caller explicitly disables this protocol version using SCH_CREDENTIALS structure, Schannel SSP might negotiate this protocol version with a supporting peer.
  • Disabled: Schannel SSP doesn't negotiate this protocol version regardless of the settings the SSPI caller might specify.

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

<SSL/TLS/DTLS> <major version number>.<minor version number><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

In order to override a system default and set a supported (D)TLS or SSL protocol version to the Enabled state, create a DWORD registry value named Enabled with an entry value of "1" under the corresponding version-specific subkey.

The following example shows TLS 1.0 client set to the Enabled state:

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

In order to override a system default and set a supported (D)TLS or SSL protocol version to the Disabled state, change the DWORD registry value of Enabled to "0" under the corresponding version-specific subkey.

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

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

Switching a (D)TLS or SSL protocol version to Disabled state might cause AcquireCredentialsHandle calls to fail due to the lack of protocol versions enabled system-wide and at the same time allowed by particular SSPI callers. Кроме того, сокращение набора версий Enabled TLS и SSL может нарушить взаимодействие с удаленными одноранговыми узлами.

Once the (D)TLS or SSL protocol version settings are modified, they take effect on connections established using credential handles opened by subsequent AcquireCredentialsHandle calls. (D)Клиент TLS и серверные приложения и службы TLS, как правило, повторно используют дескриптор учетных данных для нескольких подключений по соображениям производительности. Чтобы получить эти приложения для повторного получения маркеров учетных данных, может потребоваться перезапуск приложения или службы.

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

Warning

Попытка создать или изменить параметры реестра Schannel, которые не подробно описаны в этой статье, не рекомендуется из-за потенциальных рисков и непредвиденных последствий, которые могут возникнуть из неподдерживаемых конфигураций.

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