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


рекомендации по настройке TLS Exchange Server

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

Дополнительные сведения о протоколах TLS см. в документации по протоколу безопасности транспортного уровня .

Совет

Скрипт Exchange HealthChecker можно использовать для проверка текущей конфигурации TLS сервера Exchange.

Читайте внимательно, так как некоторые действия можно выполнить только в определенных операционных системах или Exchange Server версиях. Каждый раздел начинается с матрицы, показывающей, поддерживается ли параметр и был ли он предварительно настроен в определенной Exchange Server версии, после чего следуют шаги по включению или отключению определенного протокола ИЛИ функции TLS.

Что следует учитывать перед отключением версии TLS

Убедитесь, что каждое приложение поддерживает версии TLS, которые остаются включенными. Рекомендации, такие как (но не только):

  • Поддерживают ли ваши контроллеры домена и серверы глобального каталога, например конфигурацию только TLS 1.2 или TLS 1.3?
  • Поддерживают ли партнерские приложения, например конфигурацию только TLS 1.2 или TLS 1.3?
  • Поддерживает ли операционная система последнюю версию протокола TLS 1.2 через WinHTTP?
  • Поддерживают ли ваши подсистемы балансировки нагрузки использование TLS 1.2 или TLS 1.3?
  • Поддерживают ли классические, мобильные и браузерные приложения TLS 1.2 или TLS 1.3?
  • Поддерживают ли устройства, например многофункциональные принтеры, TLS 1.2 или TLS 1.3?
  • Поддерживают ли сторонние или пользовательские собственные приложения, которые интегрируются с Exchange Server или Microsoft 356, надежную реализацию TLS?

Поэтому мы настоятельно рекомендуем выполнить все действия, которые вы предпринимаете для перехода на TLS 1.2 или TLS 1.3 и от старых протоколов безопасности, сначала выполнять в лабораториях, которые имитируют рабочие среды, прежде чем вы начнете медленно развертывать их в рабочей среде.

Действия, используемые для отключения определенной версии TLS, как описано ниже, применяются к следующим функциям Exchange Server:

  • Протокол SMTP
  • Подключение клиента Outlook (Любой Outlook/ MAPI/HTTP)
  • Exchange Active Sync (EAS)
  • Outlook в Интернете (OWA)
  • Центр Администратор Exchange (EAC) и Exchange панель управления (ECP)
  • Автообнаружения
  • Веб-службы Exchange (EWS)
  • REST (Exchange Server 2016/2019)
  • Использование PowerShell в Exchange по протоколу HTTPS
  • POP и IMAP

Предварительные условия

Поддержка TLS 1.3 появилась с накопительным пакетом обновления 15 Exchange Server 2019 Windows Server 2022 и Windows Server 2025 г., за исключением протокола SMTP. Поддержка этого протокола будет добавлена с последующим обновлением. Поддержка TLS 1.2 появилась в Exchange Server 2013 CU19 и Exchange Server 2016 CU8. Exchange Server 2019 по умолчанию поддерживает TLS 1.2.

Exchange Server не может работать без Windows Server, поэтому важно установить последние обновления операционной системы для запуска стабильной и безопасной реализации TLS.

Кроме того, требуется наличие последней версии платформа .NET Framework и связанных исправлений, поддерживаемых накопительным пакетом обновления.

В зависимости от операционной системы убедитесь, что также установлены следующие обновления (они должны быть установлены, если сервер является текущим в Windows Обновления):

Если ваша операционная система Windows Server 2012 или Windows Server 2012 R2, перед включением TLS 1.2 необходимо установить KB3161949 и KB2973337.

Предупреждение

расширенная поддержка Windows Server 2012 и Windows Server 2012 R2 прекращена 10 октября 2023 г. Эти серверы больше не получают Безопасность Windows Обновления без ESU. Мы настоятельно рекомендуем выполнить миграцию на поддерживаемую версию как можно скорее!

Обязательно перезагрузите Exchange Server после применения конфигурации TLS. Он становится активным после перезапуска сервера.

Подготовка платформа .NET Framework к наследованию значений по умолчанию от Schannel

В следующей таблице показаны сочетания Exchange Server/Windows Server с конфигурацией наследования Schannel по умолчанию платформа .NET Framework:

Exchange Server Windows Server Поддерживается Настроено по умолчанию
Exchange Server 2019 CU14 или более поздней версии Любой Да Да (только для новых установок)
Exchange Server 2019 CU13 или более поздней версии Любой Да Частично (SchUseStrongCrypto необходимо настроить вручную)
Exchange Server 2016 Любой Да Нет (используются значения по умолчанию для ОС)
Exchange Server 2013 Любой Да Нет (используются значения по умолчанию для ОС)

Значение SystemDefaultTlsVersions реестра определяет, какие версии протокола безопасности по умолчанию используются платформа .NET Framework 4.x. Если для параметра задано значение 1, то платформа .NET Framework 4.x наследует значения по умолчанию от значений реестра Windows Secure Channel (Schannel). DisabledByDefault Если значение не определено, оно ведет себя так, как если бы для него задано значение 0.

Надежное шифрование (настроенное по значению SchUseStrongCrypto реестра) использует более безопасные сетевые протоколы (TLS 1.3, TLS 1.2 и TLS 1.1) и блокирует небезопасные протоколы. SchUseStrongCrypto влияет только на клиентские (исходящие) подключения в приложении. Настроив платформа .NET Framework 4.x для наследования значений от Schannel, мы получаем возможность использовать последние версии TLS, поддерживаемые ОС, включая TLS 1.2 и TLS 1.3.

Включение наследования Schannel платформа .NET Framework 4.x

Выполните следующие команды в окне PowerShell с повышенными привилегиями, чтобы настроить наследование Schannel платформа .NET Framework 4.x:

Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" -Name "SystemDefaultTlsVersions" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319" -Name "SystemDefaultTlsVersions" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -Value 1 -Type DWord

Включение наследования Schannel платформа .NET Framework 3.5

Exchange Server 2013 и более поздних версиях этот параметр не требуется. Однако мы рекомендуем настроить его идентично параметрам .NET 4.x, чтобы обеспечить согласованную конфигурацию.

Выполните следующие команды в окне PowerShell с повышенными привилегиями, чтобы настроить наследование Schannel платформа .NET Framework 3.5:

Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v2.0.50727" -Name "SystemDefaultTlsVersions" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v2.0.50727" -Name "SchUseStrongCrypto" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727" -Name "SystemDefaultTlsVersions" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727" -Name "SchUseStrongCrypto" -Value 1 -Type DWord

Действия по настройке TLS 1.3

В следующей таблице показаны сочетания Exchange Server и Windows Server, в которых поддерживается ПРОТОКОЛ TLS 1.3. В таблице также показана конфигурация по умолчанию:

Exchange Server Windows Server Поддерживается Настроено по умолчанию
Exchange Server 2019 CU15 Windows Server 2022/2025 Да Да (enabled)
Exchange Server 2019 CU15 в Windows Server 2019; Нет Н/Д
Exchange Server 2019 CU14 или более поздней версии Любой Нет Н/Д
Exchange Server 2016 Любой Нет Н/Д
Exchange Server 2013 Любой Нет Н/Д

Включение TLS 1.3

Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы включить TLS 1.3 для клиентских и серверных подключений:

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.3" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client" -Name "Enabled" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server" -Name "Enabled" -Value 1 -Type DWord

Согласно стандарту RFC 8446 TLS 1.3 использует то же пространство набора шифров, что и в предыдущих версиях TLS. Однако наборы шифров TLS 1.3 определяются по-разному, указывая только симметричные шифры, и не могут использоваться для TLS 1.2. Аналогичным образом наборы шифров для TLS 1.2 и более ранних версий не могут использоваться с TLS 1.3.

Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы настроить наборы шифров TLS 1.3:

Enable-TlsCipherSuite -Name TLS_AES_256_GCM_SHA384 -Position 0
Enable-TlsCipherSuite -Name TLS_AES_128_GCM_SHA256 -Position 1

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

Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы явно отключить TLS 1.3 для клиентских и серверных подключений:

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.3" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server" -Name "Enabled" -Value 0 -Type DWord

Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы удалить наборы шифров TLS 1.3:

Remove-TlsCipherSuite -Name TLS_AES_256_GCM_SHA384 -ErrorAction SilentlyContinue
Remove-TlsCipherSuite -Name TLS_AES_128_GCM_SHA256 -ErrorAction SilentlyContinue

Действия по настройке TLS 1.2

В следующей таблице показаны сочетания Exchange Server и Windows Server, в которых поддерживается ПРОТОКОЛ TLS 1.2. В таблице также показана конфигурация по умолчанию:

Exchange Server Windows Server Поддерживается Настроено по умолчанию
Exchange Server 2019 Любой Да Да (enabled)
Exchange Server 2016 Любой Да Нет
Exchange Server 2013 Любой Да Нет

Включить протокол TLS 1.2

Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы включить TLS 1.2 для клиентских и серверных подключений:

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.2" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "Enabled" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -Name "Enabled" -Value 1 -Type DWord

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

Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы явно отключить TLS 1.2 для клиентских и серверных подключений:

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.2" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -Name "Enabled" -Value 0 -Type DWord

Действия по настройке TLS 1.1

В следующей таблице показаны сочетания Exchange Server и Windows Server, в которых поддерживается ПРОТОКОЛ TLS 1.1. В таблице также показана конфигурация по умолчанию:

Exchange Server Windows Server Поддерживается Настроено по умолчанию
Exchange Server 2019 Любой Да Да (disabled)
Exchange Server 2016 Любой Да Нет
Exchange Server 2013 Любой Да Нет

Включение TLS 1.1

Примечание.

Реализация Microsoft TLS 1.1 не имеет известных уязвимостей системы безопасности. Но из-за возможности будущих атак с понижением уровня протокола и других уязвимостей TLS рекомендуется тщательно спланировать и отключить TLS 1.1. При тщательном планировании клиенты могут потерять подключение.

Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы включить TLS 1.1 для клиентских и серверных подключений:

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.1" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" -Name "Enabled" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" -Name "Enabled" -Value 1 -Type DWord

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

Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы явно отключить TLS 1.1 для клиентских и серверных подключений:

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.1" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" -Name "Enabled" -Value 0 -Type DWord

Действия по настройке TLS 1.0

В следующей таблице показаны сочетания Exchange Server и Windows Server, в которых поддерживается ПРОТОКОЛ TLS 1.0. В таблице также показана конфигурация по умолчанию:

Exchange Server Windows Server Поддерживается Настроено по умолчанию
Exchange Server 2019 Любой Да Да (disabled)
Exchange Server 2016 Любой Да Нет
Exchange Server 2013 Любой Да Нет

Включение TLS 1.0

Примечание.

Внедрение Microsoft TLS 1.0 не имеет известных уязвимостей безопасности. Но из-за возможности будущих атак с понижением уровня протокола и других уязвимостей TLS рекомендуется тщательно спланировать и отключить TLS 1.0. При тщательном планировании клиенты могут потерять подключение.

Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы включить TLS 1.0 для клиентских и серверных подключений:

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.0" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" -Name "Enabled" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" -Name "Enabled" -Value 1 -Type DWord

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

Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы явно отключить TLS 1.0 для клиентских и серверных подключений:

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols" -Name "TLS 1.0" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0" -Name "Client" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0" -Name "Server" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" -Name "DisabledByDefault" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" -Name "Enabled" -Value 0 -Type DWord

Действия по настройке строгого режима повторного согласования TLS

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

В следующей таблице показаны сочетания Exchange Server/Windows Server с конфигурацией строгого режима перезаключения TLS по умолчанию.

Exchange Server Windows Server Поддерживается Настроено по умолчанию
Exchange Server 2019 Любой Да Да (enabled)
Exchange Server 2016 Любой Да Нет
Exchange Server 2013 Любой Нет Н/Д

Включение строгого режима повторного согласования TLS

Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы включить строгий режим повторного переговоров:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "AllowInsecureRenegoClients" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "AllowInsecureRenegoServers" -Value 0 -Type DWord

Отключение строгого режима повторного согласования TLS

Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы явно отключить строгий режим повторного переговоров:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "AllowInsecureRenegoClients" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "AllowInsecureRenegoServers" -Value 1 -Type DWord

Проверка использования TLS 1.2 или TLS 1.3

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

Многие протоколы, используемые в Exchange Server, основаны на HTTP и, следовательно, проходят процессы IIS на сервере Exchange Server. MAPI/HTTP, Outlook Anywhere, Веб-службы Exchange, Exchange ActiveSync, REST, OWA & EAC, загрузка автономной адресной книги и автообнаружение — это примеры протоколов на основе HTTP, используемых Exchange Server.

Ведение журнала IIS

Команда служб IIS добавила возможности для Windows Server 2012 R2 или более поздней версии для регистрации настраиваемых полей, связанных с версиями протокола шифрования и шифрами. Мы рекомендуем просмотреть в блоге документацию о том, как включить эти настраиваемые поля и начать анализ журналов для получения сведений о входящих подключениях в вашей среде, связанных с протоколами на основе HTTP.

Эти настраиваемые поля IIS не существуют для Windows Server версии, предшествующей Windows Server 2012 R2. Эти сведения могут предоставляться в журналах подсистемы балансировки нагрузки или брандмауэра. Запросите рекомендации у поставщиков, чтобы определить, могут ли их журналы предоставлять эту информацию.

Средства разработчика Microsoft Edge

Вы можете использовать Developer Tools, доступные в Microsoft Edge, чтобы проверка версию TLS, которая использовалась для установки безопасного подключения, при подключении к Outlook в Интернете (OWA) или Exchange Администратор Center (ECP). Для этого выполните следующие действия:

  1. Откройте браузер Microsoft Edge и установите HTTPS-подключение к OWA или ECP.

  2. Нажмите , CTRL + SHIFT + I чтобы открыть Developer Tools.

  3. Щелкните символ в + правом верхнем углу.

  4. Security Щелкните в раскрывающемся меню.

  5. Проверьте версию TLS в Connection - secure connection settings разделе .

Заголовки сообщений

Данные заголовков сообщений в Exchange Server 2016 или более поздней версии предоставляют протокол, согласованный и используемый, когда отправляющий и получающий узел обменивается фрагментом почты. Вы можете использовать анализатор заголовков сообщений , чтобы получить четкий обзор каждого прыжка.

Существует известное исключение из примера заголовков сообщений. Когда клиент отправляет сообщение путем подключения к серверу с использованием протокола SMTP с проверкой подлинности (также известного как протокол отправки клиента SMTP), версия TLS в заголовках сообщений не отображает правильную версию TLS, используемую клиентом. Корпорация Майкрософт изучает возможность добавления этой информации в будущем обновлении.

Ведение журнала SMTP

Журналы SMTP в Exchange Server содержат протокол шифрования и другую информацию, связанную с шифрованием, которая используется при обмене электронной почтой между двумя системами.

Если сервером является SMTP receiving system, найдите в журнале Server value в зависимости от используемой версии TLS. Если сервером является SMTP sending system, найдите в журнале Client value в зависимости от используемой версии TLS.

Версия TLS Значение сервера Значение клиента
TLS 1.0 SP_PROT_TLS1_0_SERVER SP_PROT TLS1_0_CLIENT
TLS 1.1 SP_PROT_TLS1_1_SERVER SP_PROT-TLS1_1_CLIENT
TLS 1.2 SP_PROT_TLS1_2_SERVER SP_PROT TLS1_2_CLIENT

Примечание.

Поддержка ПРОТОКОЛА SMTP TLS 1.3 будет включена в предстоящее обновление Exchange 2019 CU15.

В следующем примере выполняется поиск подключений, выполненных по протоколу TLS 1.0, в файлах журнала на сервере Exchange Server, на котором выполняется роль почтового ящика.

Select-String -Path (((Get-TransportService -Identity $env:COMPUTERNAME).ReceiveProtocolLogPath).PathName.Replace("Hub","FrontEnd")+"\*.log") "SP_PROT_TLS1_0"

Пример поиска файлов журнала на сервере Exchange Server, на котором выполняется роль пограничного транспорта, для подключений, выполненных по протоколу TLS 1.1:

Select-String -Path (((Get-TransportService -Identity $env:COMPUTERNAME).ReceiveProtocolLogPath).PathName+"\*.log") "SP_PROT_TLS1_1"

POP и IMAP

Не существует ведения журнала, предоставляющего версию протокола шифрования, используемую для клиентов POP и IMAP. Чтобы захватить эти сведения, может потребоваться записать трассировку Netmon с сервера или проверить трафик по мере его прохождения через подсистему балансировки нагрузки или брандмауэр, где выполняется мостовая передача HTTPS.

Рекомендации по алгоритмам шифрования и хэширования

Действия, описанные в этом разделе, можно использовать для настройки Exchange Server 2016 с тем же набором алгоритмов шифра и хэширования, что и Exchange Server 2019. Эти действия не являются обязательными для Exchange Server 2019 г., так как он уже поставляется с предварительно настроенным шифром и хэш-алгоритмом.

В качестве необходимого условия сначала необходимо настроить TLS 1.2, а затем отключить TLS 1.0 и TLS 1.1. Рассмотрите возможность применения следующих параметров отдельно от отключения TLS 1.0 и TLS 1.1 для изоляции проблемных клиентов с конфигурацией.

Windows Server 2012 и Windows Server 2012 R2.

Выполните следующие команды в окне PowerShell с повышенными привилегиями, чтобы настроить рекомендуемые наборы шифров:

New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002" -Name "Functions" -PropertyType MultiString -Value "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256" -Force

Windows Server 2016

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

Примечание.

Наборы шифров можно настроить, используя объект групповая политика (GPO). Вы не можете настроить их вручную с помощью командлетов Enable-TlsCipherSuite или Disable-TLSCipherSuite, если они уже настроены с помощью объекта групповой политики или если Functions запись реестра уже существует в HKLM:\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002 пути.

Сначала отключите все наборы шифров:

foreach ($suite in (Get-TLSCipherSuite).Name) {
    if (-not([string]::IsNullOrWhiteSpace($suite))) {
        Disable-TlsCipherSuite -Name $suite -ErrorAction SilentlyContinue
    }
}

Затем повторно включите только рекомендуемые наборы шифров TLS 1.2:

$cipherSuites = @('TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384',
                'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256',
                'TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384',
                'TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256',
                'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384',
                'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256',
                'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384',
                'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256')

$suiteCount = 0
foreach ($suite in $cipherSuites) {
    Enable-TlsCipherSuite -Name $suite -Position $suiteCount
    $suiteCount++
}

Отключение устаревших шифров и хэшей

Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы явно отключить устаревшие шифры и хэши:

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "Hashes" -ErrorAction SilentlyContinue
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" -Name "Ciphers" -ErrorAction SilentlyContinue
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("DES 56/56")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("NULL")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC2 40/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC2 56/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC2 56/56")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC4 40/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC4 56/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC4 64/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("RC4 128/128")
(Get-Item HKLM:).OpenSubKey("SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers", $true).CreateSubKey("Triple DES 168")
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes" -Name "MD5" -ErrorAction SilentlyContinue
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\DES 56/56" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\NULL" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 40/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 56/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 56/56" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 64/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168" -Name "Enabled" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\MD5" -Name "Enabled" -Value 0 -Type DWord

Настройка предпочтения эллиптических кривых

Рекомендуется отключить curve25519 эллиптическую кривую, так как она недоступна в режиме FIPS. Дополнительные сведения см. в документации по эллиптическим кривым TLS Windows 10 версии 1607 и более поздних версий.

Выполните следующую команду в окне PowerShell с повышенными привилегиями, чтобы настроить параметр эллиптической кривой:

Disable-TlsEccCurve -Name "curve25519"
Enable-TlsEccCurve -Name "NistP384" -Position 0
Enable-TlsEccCurve -Name "NistP256" -Position 1