Exchange Server práticas recomendadas de configuração do TLS

Essa documentação descreve as etapas necessárias para configurar corretamente (habilitar ou desabilitar) versões específicas do TLS em Exchange Server 2013, Exchange Server 2016 e Exchange Server 2019. O artigo também explica como otimizar os conjuntos de criptografia e os algoritmos de hash usados pelo TLS. Se o TLS não estiver configurado corretamente, você poderá enfrentar vários problemas ao interagir com o Microsoft 365 ou outros sistemas, que são configurados de forma que eles exijam um determinado padrão TLS mínimo.

Se você quiser saber mais sobre os protocolos TLS (e SSL), leia o artigo Protocolo de Segurança de Camada de Transporte .

Importante

Leia atentamente, pois algumas das etapas descritas aqui só podem ser executadas em sistemas operacionais específicos ou em versões Exchange Server específicas.

No início de cada seção, há uma matriz que mostra se uma configuração tem suporte ou não e se ela já foi pré-configurada de uma determinada versão Exchange Server.

Coisas a considerar antes de desabilitar uma versão do TLS

Dica

Você pode usar o script Do Exchange HealthChecker para marcar a configuração TLS atual do servidor exchange.

Verifique se cada aplicativo dá suporte às versões TLS, que permanecem habilitadas. Considerações como (mas não se limitando a):

  • Os controladores de domínio e os servidores do Catálogo Global dão suporte, por exemplo, a uma configuração somente do TLS 1.2?
  • Aplicativos parceiros (como, mas não se limitando a, SharePoint, Lync, Skype for Business etc.) dão suporte, por exemplo, a uma configuração somente do TLS 1.2?
  • Você atualizou áreas de trabalho mais antigas do Windows 7 usando o Outlook para dar suporte ao TLS 1.2 no WinHTTP?
  • Os balanceadores de carga dão suporte ao TLS 1.2 que está sendo usado?
  • Os aplicativos da área de trabalho, do celular e do navegador dão suporte ao TLS 1.2?
  • Dispositivos como impressoras de várias funções dão suporte ao TLS 1.2?
  • Seus aplicativos internos ou de terceiros ou personalizados que se integram ao Exchange Server ou ao Microsoft 356 dão suporte a uma implementação TLS forte?

Como tal, recomendamos fortemente que todas as etapas que você tomar para fazer a transição para o TLS 1.2 e longe de protocolos de segurança mais antigos sejam executadas primeiro em laboratórios que simulam seus ambientes de produção antes de começar lentamente a implantá-los em produção.

As etapas usadas para desabilitar uma versão específica do TLS, conforme descrito abaixo, serão aplicadas às seguintes funcionalidades Exchange Server:

  • Protocolo de Transporte de Email Simples (SMTP)
  • Conectividade do cliente do Outlook (Outlook Anywhere / MAPI/HTTP)
  • EAS (Sincronização Ativa do Exchange)
  • Outlook na Web (OWA)
  • EAC (Exchange Administração Center) e Exchange Painel de Controle (ECP)
  • Autodiscover
  • Serviços Web do Exchange (EWS)
  • REST (Exchange Server 2016/2019)
  • Uso do PowerShell by Exchange por HTTPS
  • POP e IMAP

Pré-requisitos

O suporte ao TLS 1.2 foi adicionado com Exchange Server CU19 2013 e Exchange Server CU8 de 2016. Exchange Server 2019 dá suporte ao TLS 1.2 por padrão.

Exchange Server não pode ser executado sem o Windows Server e, portanto, é importante ter as atualizações mais recentes do sistema operacional instaladas para executar uma implementação TLS estável e segura.

Também é necessário ter a versão mais recente de .NET Framework e patches associados com suporte por sua CU no local.

Com base no sistema operacional, verifique se as atualizações a seguir também estão em vigor (elas devem ser instaladas se o servidor estiver atual no Windows Atualizações):

Se o sistema operacional estiver Windows Server 2012 ou Windows Server 2012 R2, KB3161949 e KB2973337 devem ser instalados antes que o TLS 1.2 possa ser habilitado.

Aviso

Windows Server 2012 e Windows Server 2012 suporte estendido do R2 terminou em 10 de outubro de 2023. Esses servidores não receberão mais Segurança do Windows Atualizações sem um ESU. Recomendamos migrar para uma versão com suporte o mais rápido possível!

Reinicialize o Exchange Server após a aplicação da configuração do TLS. Ele fica ativo depois que o servidor foi reiniciado.

Preparando .NET Framework para herdar padrões do Schannel

A tabela a seguir mostra as combinações Exchange Server/Windows Server com a configuração padrão de herança do Schannel .NET Framework:

Exchange Server Windows Server Com suporte Configurado por padrão
Exchange Server CU14 2019 ou posterior Qualquer Sim Sim (somente novas instalações)
Exchange Server 2019 Qualquer Sim Parcialmente (SchUseStrongCrypto deve ser configurado manualmente)
Exchange Server 2016 Qualquer Sim Não (padrões do sistema operacional serão usados)
Exchange Server 2013 Qualquer Sim Não (padrões do sistema operacional serão usados)

O SystemDefaultTlsVersions valor do registro define quais padrões de versão do protocolo de segurança serão usados pelo .NET Framework 4.x. Se o valor for definido como 1, .NET Framework 4.x herdará seus padrões dos valores de registro do Windows Secure Channel (SchannelDisabledByDefault). Se o valor estiver indefinido, ele se comportará como se o valor fosse definido 0como .

A criptografia forte (configurada pelo valor do SchUseStrongCrypto registro) usa protocolos de rede mais seguros (TLS 1.2 e TLS 1.1) e bloqueia protocolos que não são seguros. SchUseStrongCrypto afeta apenas conexões de cliente (saída) em seu aplicativo. Ao configurar .NET Framework 4.x para herdar seus valores do Schannel, obtemos a capacidade de usar as versões mais recentes do TLS com suporte pelo sistema operacional, incluindo o TLS 1.2.

Habilitar .NET Framework herança do Schannel 4.x

Execute os seguintes comandos de uma janela do PowerShell elevada para configurar o .NET Framework herança do Schannel 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

Habilitar .NET Framework herança do Schannel 3.5

Observação

Exchange Server 2013 e posteriores não precisam dessa configuração. No entanto, recomendamos configurá-lo de forma idêntica às configurações do .NET 4.x para garantir uma configuração consistente.

Execute os seguintes comandos de uma janela do PowerShell elevada para configurar o .NET Framework herança Schannel 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

Etapas para configurar o TLS 1.2

A tabela a seguir mostra as combinações Exchange Server/Windows Server nas quais o TLS 1.2 tem suporte. A tabela também mostra a configuração padrão:

Exchange Server Windows Server Com suporte Configurado por padrão
Exchange Server 2019 Qualquer Sim Sim (enabled)
Exchange Server 2016 Qualquer Sim Não
Exchange Server 2013 Qualquer Sim Não

Habilitar o TLS 1.2

Execute o seguinte comando de uma janela do PowerShell elevada para habilitar o TLS 1.2 para conexões de cliente e servidor:

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

Desabilitar o TLS 1.2

Execute o seguinte comando de uma janela do PowerShell elevada para desabilitar o TLS 1.2 para conexões de cliente e servidor:

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

Etapas para configurar o TLS 1.1

A tabela a seguir mostra as combinações Exchange Server/Windows Server nas quais o TLS 1.1 tem suporte. A tabela também mostra a configuração padrão:

Exchange Server Windows Server Com suporte Configurado por padrão
Exchange Server 2019 Qualquer Sim Sim (disabled)
Exchange Server 2016 Qualquer Sim Não
Exchange Server 2013 Qualquer Sim Não

Habilitar o TLS 1.1

Observação

A implementação do Microsoft TLS 1.1 não tem vulnerabilidades de segurança conhecidas. Mas devido ao potencial para futuros ataques de downgrade de protocolo e outras vulnerabilidades TLS, é recomendável planejar e desabilitar cuidadosamente o TLS 1.1. A falha no planejamento cuidadosamente pode fazer com que os clientes percam a conectividade.

Execute o seguinte comando de uma janela do PowerShell elevada para habilitar o TLS 1.1 para conexões de cliente e servidor:

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

Desabilitar o TLS 1.1

Execute o seguinte comando de uma janela do PowerShell elevada para desabilitar o TLS 1.1 para conexões de cliente e servidor:

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

Etapas para configurar o TLS 1.0

A tabela a seguir mostra as combinações Exchange Server/Windows Server nas quais o TLS 1.0 tem suporte. A tabela também mostra a configuração padrão:

Exchange Server Windows Server Com suporte Configurado por padrão
Exchange Server 2019 Qualquer Sim Sim (disabled)
Exchange Server 2016 Qualquer Sim Não
Exchange Server 2013 Qualquer Sim Não

Habilitar o TLS 1.0

Observação

A implementação do Microsoft TLS 1.0 não tem vulnerabilidades de segurança conhecidas. Mas devido ao potencial para futuros ataques de downgrade de protocolo e outras vulnerabilidades TLS, é recomendável planejar e desabilitar cuidadosamente o TLS 1.0. A falha no planejamento cuidadosamente pode fazer com que os clientes percam a conectividade.

Execute o seguinte comando de uma janela do PowerShell elevada para habilitar o TLS 1.0 para conexões de cliente e servidor:

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

Desabilitar o TLS 1.0

Execute o seguinte comando de uma janela do PowerShell elevada para desabilitar o TLS 1.0 para conexões de cliente e servidor:

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

Práticas recomendadas de algoritmos de codificação e hash

Importante

As etapas descritas nesta seção são opcionais para as etapas descritas antes. É necessário configurar o TLS 1.2 e desabilitar totalmente o TLS 1.0 e 1.1 antes de executar as próximas etapas.

Considere aplicar essas configurações separadas para desabilitar o TLS 1.0 e o TLS 1.1 para isolar problemas de configuração com clientes problemáticos.

Configurar o modo estrito de renegociação de TLS do cliente e do servidor

A tabela a seguir mostra as combinações Exchange Server/Windows Server com a configuração padrão de modo rígido de renegociação TLS:

Exchange Server Windows Server Com suporte Configurado por padrão
Exchange Server 2019 Qualquer Sim Sim (strict mode enabled)
Exchange Server 2016 Qualquer Sim Não
Exchange Server 2013 Qualquer Não N/D

Essas configurações são usadas para configurar o modo rígido de renegociação do TLS. Isso significa que o servidor permite apenas os clientes aos quais essa Atualização de Segurança é aplicada para configurar e renegociar sessões TLS. O servidor não permite os clientes aos quais essa Atualização de Segurança não é aplicada para configurar a sessão TLS. Nesse caso, o servidor encerra essas solicitações dos clientes.

Da mesma forma, se essa Atualização de Segurança for aplicada ao cliente e o cliente estiver no modo estrito, o cliente poderá configurar e renegociar sessões TLS com todos os servidores para os quais essa atualização de segurança é aplicada. Os clientes não podem configurar sessões TLS com servidores para os quais essa atualização de segurança não é aplicada. O cliente não pode avançar com uma tentativa de negociação do TLS com esses servidores.

Execute o seguinte comando de uma janela do PowerShell elevada para habilitar o modo estrito de renegociação:

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

A tabela a seguir mostra as combinações Exchange Server/Windows Server com a configuração padrão de pacotes de criptografia recomendados:

Exchange Server Windows Server Com suporte Configurado por padrão
Exchange Server 2019 Qualquer Sim Sim
Exchange Server 2016 Qualquer Sim Não
Exchange Server 2013 Windows Server 2012 (R2) Sim Não

Windows Server 2012 e Windows Server 2012 R2

Execute os seguintes comandos de uma janela do PowerShell elevada para configurar os pacotes de criptografia recomendados:

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 ou superior

Observação

É possível configurar os pacotes de criptografia utilizando um GPO (objeto Política de Grupo). Não é possível configurá-los manualmente por meio do Enable/Disable-TLSCipherSuite cmdlet se eles já estiverem configurados via GPO ou se a chave do Functions registro já existir no seguinte caminho: HKLM:\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002

Execute os comandos a seguir de uma janela do PowerShell elevada para configurar os pacotes de cifras recomendados.

A primeira tarefa é desabilitar todos os pacotes de criptografia existentes:

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

A segunda tarefa é habilitar apenas os pacotes de criptografia recomendados do 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++
}

Desabilitar cifras e hashes desatualizados

A tabela a seguir mostra as combinações Exchange Server/Windows Server com as cifras e hashes desatualizados padrão:

Exchange Server Windows Server Com suporte Configurado por padrão
Exchange Server 2019 Qualquer Sim Sim
Exchange Server 2016 Qualquer Sim Não
Exchange Server 2013 Windows Server 2012 (R2) Sim Não

Execute o seguinte comando de uma janela do PowerShell elevada para desabilitar cifras e hashes desatualizados:

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

Configurar a preferência da curva elíptica

A tabela a seguir mostra as combinações Exchange Server/Windows Server com a configuração padrão de preferência de curva elíptica:

Exchange Server Windows Server Com suporte Configurado por padrão
Exchange Server 2019 Qualquer Sim Sim
Exchange Server 2016 Windows Server 2016 Sim Não
Exchange Server 2013 Qualquer Não N/D

Observação

Recomendamos desabilitar a curve25519 curva elíptica, pois ela não está disponível no modo FIPS. Para obter mais informações, confira: Curvas elípticas do TLS no Windows 10 versão 1607 e posterior

Execute o seguinte comando de uma janela do PowerShell elevada para configurar a preferência da curva elíptica:

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

Validar que o TLS 1.2 é usado

Depois que o TLS 1.2 estiver habilitado, pode ser útil validar seu trabalho com êxito e o sistema poderá negociar o TLS 1.2 para conexões de entrada (servidor) e conexões de saída (cliente). Há alguns métodos disponíveis para validar o uso do TLS, alguns deles são discutidos nas seções a seguir.

Muitos protocolos usados em Exchange Server são baseados em HTTP e, portanto, percorrem os processos do IIS no servidor exchange. MAPI/HTTP, Outlook Anywhere, Exchange Web Services, Exchange ActiveSync, REST, OWA & EAC, downloads de Catálogo de Endereços Offline e AutoDiscover são exemplos de protocolos baseados em HTTP usados pelo Exchange Server.

Logs do IIS (Serviços de Informações da Internet)

A equipe do IIS adicionou recursos ao Windows Server 2012 R2 ou posterior para registrar campos personalizados relacionados a versões e cifras de protocolo de criptografia. Recomendamos examinar o blog para obter documentação sobre como habilitar esses campos personalizados e começar a analisar logs para obter informações sobre conexões de entrada em seu ambiente relacionadas a protocolos baseados em HTTP.

Esses campos personalizados do IIS não existem para a versão do Windows Server anterior Windows Server 2012 R2. O balanceador de carga ou os logs de firewall podem ser capazes de fornecer essas informações. Solicite orientações de seus fornecedores para determinar se os logs podem fornecer essas informações.

Verificando a versão do TLS usando as Ferramentas de Desenvolvedor do Microsoft Edge

Você pode utilizar o , que está disponível com o Developer ToolsMicrosoft Edge, para marcar a versão TLS usada para estabelecer uma conexão segura ao se conectar ao Outlook na Web (OWA) ou ao Exchange Administração Center (ECP). Para fazer isso, siga estas etapas:

  1. Abra o navegador do Microsoft Edge e estabeleça uma conexão HTTPS com OWA ou ECP.
  2. Pressione CTRL + SHIFT + I para abrir o Developer Tools.
  3. Clique no + símbolo no canto superior direito.
  4. Clique no Security menu suspenso.
  5. Verifique a versão do TLS na Connection - secure connection settings seção.

Uma captura de tela que mostra as Ferramentas de Desenvolvedor do Edge Browser com a Ferramenta de Segurança, que foi adicionada à Barra de Atividades. Na Ferramenta de Segurança, a seção

Cabeçalhos de mensagem (Exchange Server 2016 ou posterior)

Os dados do cabeçalho de mensagem no Exchange Server 2016 ou posterior fornecem o protocolo negociado e usado quando o host de envio e recebimento trocou um pedaço de email. Você pode usar o Analisador de Cabeçalho de Mensagem para obter uma visão geral clara de cada salto.

Observação

Há uma exceção conhecida para o exemplo de cabeçalhos de mensagem. Quando um cliente envia uma mensagem conectando-se a um servidor usando o SMTP autenticado (também conhecido como protocolo de envio de cliente SMTP), a versão TLS nos cabeçalhos de mensagens não mostra a versão TLS correta usada pelo cliente ou dispositivo de um cliente. A Microsoft está investigando a possibilidade de adicionar essas informações em uma atualização futura.

Fluxo de Email por meio do log SMTP

Os logs do SMTP no Exchange Server 2013 e posteriores conterão o protocolo de criptografia e outras informações relacionadas à criptografia usadas durante a troca de email entre dois sistemas.

Quando o servidor for o SMTP receiving system, pesquise o Server value no log dependendo da versão do TLS usada. Se o servidor for o SMTP sending system, pesquise o Client value no log, dependendo da versão do TLS usada.

Versão TLS Valor do servidor Valor do cliente
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

O exemplo a seguir pesquisa os arquivos de log em um servidor do Exchange, que executa a função de caixa de correio, para conexões feitas usando o protocolo TLS 1.0:

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

Exemplo de pesquisa de arquivos de log em um servidor exchange, que executa a função de transporte de borda, para conexões feitas usando o protocolo TLS 1.1:

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

POP e IMAP

Não existe registro em log que exponha a versão do protocolo de criptografia usada para clientes POP e IMAP. Para capturar essas informações, talvez seja necessário capturar um rastreamento do Netmon do servidor ou inspecionar o tráfego à medida que ele flui pelo balanceador de carga ou firewall em que a ponte HTTPS está ocorrendo.