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 0
como .
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
Habilitar pacotes de cifras recomendados
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 Tools
Microsoft 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:
- Abra o navegador do Microsoft Edge e estabeleça uma conexão HTTPS com OWA ou ECP.
- Pressione
CTRL + SHIFT + I
para abrir oDeveloper Tools
. - Clique no
+
símbolo no canto superior direito. - Clique no
Security
menu suspenso. - Verifique a versão do TLS na
Connection - secure connection settings
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.