Управление протоколами SSL/TLS и наборами шифров для AD FS

В следующей документации содержатся сведения об отключении и включении определенных протоколов TLS/SSL и наборов шифров, которые используют службы федерации Active Directory (AD FS) (AD FS).

Наборы шифров TLS/SSL, Schannel и шифров в AD FS

Протокол TLS обеспечивает зашифрованные защищенные коммуникации по сети. Протокол SSL шифрует обмен конфиденциальными данными, передаваемые между веб-сервером и веб-браузером, похожим на TLS. службы федерации Active Directory (AD FS) (AD FS) использует эти протоколы для обмена данными. Сегодня существуют несколько версий этих протоколов.

Канал безопасности (Schannel) — это поставщик поддержки безопасности (SSP), который реализует протоколы проверки подлинности SSL, TLS и DTLS в Интернете. Интерфейс поставщика поддержки безопасности (SSPI) является интерфейсом API, используемым системами Windows для выполнения функций, связанных с безопасностью, включая проверку подлинности. SSPI функционирует как общий интерфейс для нескольких SSPS, включая Schannel SSP.

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

  • обмена ключами;
  • массового шифрования;
  • проверки подлинности сообщений.

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

Управление протоколами TLS/SSL и наборами шифров

Внимание

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

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

Если эти изменения применяются, их необходимо применить ко всем серверам AD FS в ферме. После применения этих изменений требуется перезагрузка.

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

Следующие разделы реестра находятся в том же расположении: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols. Используйте редактор реестра или PowerShell, чтобы включить или отключить эти протоколы и наборы шифров.

Screenshot of the Registry Editor showing the registry keys located in the Protocols folder.

Включение и отключение SSL 3.0

Используйте следующие разделы реестра и их значения, чтобы включить и отключить SSL 3.0.

Включение SSL 3.0

Путь Имя значения Данные значения
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server Включен 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server DisabledByDefault 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client Включен 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client DisabledByDefault 00000000

Отключение SSL 3.0

Путь Имя значения Данные значения
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server Включен 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server DisabledByDefault 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client Включен 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client DisabledByDefault 00000001

Отключение SSL 3.0 с помощью PowerShell

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'SSL 3.0 has been disabled.'

Включение и отключение TLS 1.0

Используйте следующие разделы реестра и их значения, чтобы включить и отключить TLS 1.0.

Внимание

Отключение TLS 1.0 нарушает доверие WAP к AD FS. Если отключить TLS 1.0, необходимо включить надежную проверку подлинности для приложений. Дополнительные сведения см. в разделе "Включение строгой проверки подлинности для приложений .NET"

Включение TLS 1.0

Путь Имя значения Данные значения
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server Включен 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server DisabledByDefault 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client Включен 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client DisabledByDefault 00000000

отключение TLS 1.0;

Путь Имя значения Данные значения
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server Enabled"=0000000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server DisabledByDefault 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client Включен 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client DisabledByDefault 00000001

Отключение TLS 1.0 с помощью PowerShell

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'TLS 1.0 has been disabled.'

Включение и отключение TLS 1.1

Используйте следующие разделы реестра и их значения, чтобы включить и отключить TLS 1.1.

Включение протокола TLS 1.1

Путь Имя значения Данные значения
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server Включен 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server DisabledByDefault 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client Включен 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client DisabledByDefault 00000000

Отключение TLS 1.1

Путь Имя значения Данные значения
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server Включен 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server DisabledByDefault 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client Включен 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client DisabledByDefault 00000001

Отключение TLS 1.1 с помощью PowerShell

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'TLS 1.1 has been disabled.'

Отключение протокола TLS 1.2

ПРОТОКОЛ TLS 1.2 включен по умолчанию, начиная с Windows Server 2012. Для отключения TLS 1.2 можно использовать следующие разделы реестра и их значения.

Примечание.

Не рекомендуется отключить TLS 1.2.

Путь Имя значения Данные значения
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server Включен 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server DisabledByDefault 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client Включен 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client DisabledByDefault 00000001

Отключение TLS 1.2 с помощью PowerShell

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'TLS 1.2 has been disabled.'

Включение или отключение хэшей, шифров и наборов шифров

Управление шифрами, хэшами и алгоритмами обмена ключами, кроме размера ключа, через реестр не поддерживается. Хэши, шифры и алгоритмы обмена ключами управляются с помощью PowerShell, MDM или Cipher Suite Ordering.

Полный список поддерживаемых наборов шифров см. в разделе "Наборы шифров" в tls/SSL (Schannel SSP). Эта статья содержит таблицу наборов, включенных по умолчанию, и показывает, какие наборы поддерживаются, но не включены по умолчанию. Чтобы определить приоритеты наборов шифров, см. раздел "Приоритет schannel Cipher Suite".

Включение строгой проверки подлинности для приложений .NET

Приложения платформа .NET Framework 3.5/4.0/4.5.x могут переключить протокол по умолчанию на TLS 1.2, включив раздел реестра SchUseStrongCrypto. Эти разделы реестра позволяют приложениям .NET использовать TLS 1.2.

Внимание

Для AD FS в Windows Server 2016 и Windows Server 2012 R2 необходимо использовать ключ платформа .NET Framework 4.0/4.5.x: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\. NETFramework\v4.0.30319

Для платформа .NET Framework 3.5 используйте следующий раздел реестра:

Путь Имя значения Данные значения
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\. NETFramework\v2.0.50727 SchUseStrongCrypto 00000001

Для платформа .NET Framework 4.0/4.5.x используйте следующий раздел реестра:

Путь Имя значения Данные значения
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\. NETFramework\v4.0.30319 SchUseStrongCrypto 00000001

Screenshot of Registry Editor that highlights the SchUseStrongCrypto key

New-ItemProperty -path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -name 'SchUseStrongCrypto' -value '1' -PropertyType 'DWord' -Force | Out-Null

Дополнительная информация: