Параметры реестра протокола TLS
В этой статье описываются поддерживаемые сведения о параметрах реестра для реализации протокола 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 использует четыре метода сопоставления сертификатов:
- Сопоставление Kerberos service-for-user (S4U) (включено по умолчанию)
- Сопоставление имени участника-пользователя.
- Сопоставление "один к одному" (также называемое сопоставлением "субъект/поставщик").
- Сопоставление "многие к одному".
Путь к реестру: 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:00000000
Примечание.
Включение этого раздела реестра может повлиять на производительность.
Hashes
Алгоритмы хэша 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
Эти следующие записи могут не существовать в реестре по умолчанию и должны быть созданы вручную. Использование алгоритмов обмена ключами должно контролироваться путем настройки порядка набора шифров. Дополнительные сведения о криптографических алгоритмах набора шифров 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 бита является минимальным.
Примечание.
Настроенные эллиптические кривые определяют криптографическую силу обмена ключами ECDHE. Дополнительные сведения см. в разделе "Управление безопасностью транспортного уровня ( TLS)".
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: обновление, которое позволяет 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
Серверы TLS могут отправлять список различаемых имен допустимых центров сертификации при запросе проверки подлинности клиента. Это поможет клиентам TLS выбрать соответствующий сертификат клиента TLS. Серверы TLS на основе SChannel по умолчанию не отправляют этот список доверенных издателей, так как он предоставляет центрам сертификации доверенные сервером пассивные наблюдатели, а также увеличивает объем данных, обмениваемых в ходе подтверждения TLS. Если задать значение 1 , серверы на основе SChannel отправляют свои списки доверенных издателей.
Не отправляя список доверенных издателей, может повлиять на то, что клиент отправляет, когда он запрашивает сертификат клиента. Например, когда Microsoft Edge получает запрос на проверку подлинности клиента, он отображает только сертификаты клиента, цепочки до одного из центров сертификации, отправляемых сервером. Если сервер не отправил список, Microsoft Edge отображает все сертификаты клиента, установленные на клиенте.
Это поведение может быть нежелательно. Например, если среды PKI включают кросс-сертификаты, сертификаты клиента и сервера не имеют одного корневого ЦС. Поэтому Microsoft Edge не может выбрать сертификат, который объединяется с одним из ЦС сервера. Клиенты 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> <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
Чтобы переопределить системную версию по умолчанию и задать поддерживаемую версию Enabled
протокола TLS или SSL, создайте значение Enabled
реестра DWORD с значением записи "1" в соответствующем подразделе для конкретной версии.
В следующем примере показан клиент TLS 1.0 с включенным состоянием:
Чтобы переопределить системное значение по умолчанию и задать поддерживаемую версию Disabled
протокола TLS или SSL, измените значение Enabled
реестра DWORD на "0" в соответствующем подразделе для конкретной версии.
В следующем примере показан параметр DTLS 1.2, отключенный в реестре:
Переключение версии протокола TLS или SSL на Disabled
состояние может привести к сбою вызовов AcquireCredentialsHandle из-за отсутствия версий протокола, включенных системой, и в то же время, разрешенных определенными вызывающими пользователями SSPI. Кроме того, сокращение набора версий Enabled
TLS и SSL может нарушить взаимодействие с удаленными одноранговыми узлами.
После изменения параметров версии протокола TLS или SSL они вступают в силу для подключений, установленных с помощью дескрипторов учетных данных, открытых последующими вызовами AcquireCredentialsHandle . (D)Клиент TLS и серверные приложения и службы TLS, как правило, повторно используют дескриптор учетных данных для нескольких подключений по соображениям производительности. Чтобы получить эти приложения для повторного получения маркеров учетных данных, может потребоваться перезапуск приложения или службы.
Эти параметры реестра применяются только к SChannel SSP и не влияют на сторонние реализации TLS и SSL, которые могут быть установлены в системе.
Предупреждение
Попытка создать или изменить параметры реестра SChannel, которые не подробно описаны в этой статье, не рекомендуется из-за потенциальных рисков и непредвиденных последствий, которые могут возникнуть из неподдерживаемых конфигураций.
Дополнительные сведения об управлении набором шифров TLS с помощью PowerShell см . в справочнике по командам TLS. Если вы хотите управлять параметрами TLS с помощью групповой политики, ознакомьтесь с настройкой заказа набора шифров TLS с помощью групповой политики.