Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
APLICA-SE A:2016
2019
Subscription Edition
Esta documentação descreve os passos necessários para configurar corretamente versões específicas do TLS no Microsoft Exchange Server. Também detalha como otimizar os conjuntos de cifras e os algoritmos de hash utilizados pelo TLS. A configuração incorreta do TLS pode originar vários problemas ao interagir com o Microsoft 365 ou outros sistemas que requerem um determinado padrão TLS mínimo.
Pode encontrar mais informações sobre os protocolos TLS na documentação do protocolo Transport Layer Security .
Dica
Pode utilizar o script Exchange HealthChecker para marcar a configuração atual do TLS do seu servidor Exchange.
Leia atentamente, uma vez que alguns passos só podem ser executados em sistemas operativos específicos ou em versões Exchange Server. Cada secção começa com uma matriz que mostra se uma definição é suportada e se foi pré-configurada a partir de uma determinada versão Exchange Server, seguida de passos para ativar ou desativar o protocolo ou funcionalidade TLS específico.
Aspetos a ter em conta antes de desativar uma versão do TLS
Certifique-se de que todas as aplicações suportam as versões do TLS, que permanecem ativadas. Considerações como (mas não limitadas a):
- Os controladores de domínio e os servidores de Catálogo Global suportam, por exemplo, apenas uma configuração TLS 1.2 ou TLS 1.3?
- As aplicações parceiras suportam, por exemplo, apenas uma configuração TLS 1.2 ou TLS 1.3?
- O Sistema Operativo (SO) suporta a versão mais recente do protocolo TLS TLS 1.2 através do WinHTTP?
- Os balanceadores de carga suportam a utilização do TLS 1.2 ou TLS 1.3?
- As aplicações de ambiente de trabalho, dispositivos móveis e browsers suportam o TLS 1.2 ou o TLS 1.3?
- Os dispositivos, como impressoras multifunções, suportam TLS 1.2 ou TLS 1.3?
- As suas aplicações internas personalizadas ou de terceiros que se integram com o Exchange Server ou o Microsoft 356 suportam uma implementação de TLS forte?
Como tal, recomendamos vivamente que todos os passos que efetuar para a transição para o TLS 1.2 ou TLS 1.3 e longe dos protocolos de segurança mais antigos sejam executados pela primeira vez em laboratórios que simulam os seus ambientes de produção antes de começar lentamente a executá-los na produção.
Os passos utilizados para desativar uma versão específica do TLS, conforme descrito abaixo, aplicam-se às seguintes funcionalidades de Exchange Server:
- Simple Mail Transport Protocol (SMTP)
- Conectividade de Cliente do Outlook (Outlook Anywhere/MAPI/HTTP)
- Exchange Active Sync (EAS)
- Outlook na Web (OWA)
- Exchange Administração Center (EAC) e Exchange Painel de Controle (ECP)
- Deteção Automática
- Serviços Web do Exchange (EWS)
- REST (Exchange Server 2016/2019)
- Utilização do PowerShell pelo Exchange através de HTTPS
- POP e IMAP
Pré-requisitos
O suporte do TLS 1.3 foi introduzido com Exchange Server Atualização Cumulativa () 2019 15 no Windows Server 2022 e Windows Server 2025, exceto para o protocolo SMTP. O suporte para este protocolo será adicionado com uma atualização futura. O suporte do TLS 1.2 foi introduzido com Exchange Server CU19 de 2013 e Exchange Server CU8 de 2016. Exchange Server 2019 suporta o TLS 1.2 por predefinição.
Exchange Server não é possível executar sem Windows Server e, por conseguinte, é importante ter as atualizações mais recentes do sistema operativo instaladas para executar uma implementação TLS estável e segura.
Também é necessário ter a versão mais recente do .NET Framework e os patches associados suportados pela SUA.
Com base no seu sistema operativo, certifique-se de que as seguintes atualizações também estão implementadas (devem ser instaladas se o servidor estiver atualizado no Windows Atualizações):
Se o seu sistema operativo estiver Windows Server 2012 ou Windows Server 2012 R2, KB3161949 e KB2973337 têm de ser instalados antes de o TLS 1.2 poder ser ativado.
Aviso
Windows Server 2012 e Windows Server 2012 suporte alargado R2 terminou a 10 de outubro de 2023. Estes servidores já não recebem Segurança do Windows Atualizações sem uma ESU. Recomendamos vivamente a migração para uma versão suportada o mais rapidamente possível!
Confirme que reinicia o Exchange Server depois de a configuração do TLS ter sido aplicada. Fica ativo depois de o servidor ter sido reiniciado.
Preparar .NET Framework herdar predefinições do Schannel
A tabela seguinte mostra as combinações de Exchange Server/Windows Server com a configuração de herança Schannel .NET Framework predefinida:
Exchange Server | Windows Server | Com suporte | Configurado por predefinição |
---|---|---|---|
Exchange Server 2019 CU14 ou posterior | Qualquer | Sim | Sim (apenas novas instalações) |
Exchange Server 2019 CU13 ou mais antigo | Qualquer | Sim | Parcialmente (SchUseStrongCrypto tem de ser configurado manualmente) |
Exchange Server 2016 | Qualquer | Sim | Não (são utilizadas predefinições do SO) |
Exchange Server 2013 | Qualquer | Sim | Não (são utilizadas predefinições do SO) |
O SystemDefaultTlsVersions
valor do registo define que predefinições de versão do protocolo de segurança são utilizadas pelo .NET Framework 4.x. Se o valor estiver definido como 1
, .NET Framework 4.x herda as predefinições dos valores de registo do Canal Seguro do Windows (SchannelDisabledByDefault
). Se o valor for indefinido, comporta-se como se o valor estivesse definido 0
como .
A criptografia forte (configurada pelo valor de SchUseStrongCrypto
registo) utiliza protocolos de rede mais seguros (TLS 1.3, TLS 1.2 e TLS 1.1) e bloqueia protocolos que não são seguros.
SchUseStrongCrypto
afeta apenas as ligações de cliente (de saída) na sua aplicação. Ao configurar .NET Framework 4.x para herdar os respetivos valores do Schannel, obtemos a capacidade de utilizar as versões mais recentes do TLS suportadas pelo SO, incluindo o TLS 1.2 e o TLS 1.3.
Ativar .NET Framework herança Schannel 4.x
Execute os seguintes comandos a partir de uma janela elevada do PowerShell para configurar o .NET Framework herança 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
Ativar .NET Framework herança Schannel 3.5
Exchange Server 2013 e posterior não precisa desta definição. No entanto, recomendamos que o configure de forma idêntica às definições do .NET 4.x para garantir uma configuração consistente.
Execute os seguintes comandos a partir de uma janela elevada do PowerShell 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
Passos para configurar o TLS 1.3
A tabela seguinte mostra as combinações Exchange Server/Windows Server nas quais o TLS 1.3 é suportado. A tabela também mostra a configuração predefinida:
Exchange Server | Windows Server | Com suporte | Configurado por predefinição |
---|---|---|---|
Exchange Server 2019 CU15 | Windows Server 2022/2025 | Sim | Sim (enabled ) |
Exchange Server 2019 CU15 | Windows Server 2019 | Não | N/D |
Exchange Server 2019 CU14 ou mais antigo | Qualquer | Não | N/D |
Exchange Server 2016 | Qualquer | Não | N/D |
Exchange Server 2013 | Qualquer | Não | N/D |
Ativar o TLS 1.3
Execute o seguinte comando a partir de uma janela elevada do PowerShell para ativar o TLS 1.3 para ligações de cliente e servidor:
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
De acordo com o RFC 8446 TLS 1.3, utiliza o mesmo espaço do conjunto de cifras que as versões anteriores do TLS. No entanto, os conjuntos de cifras TLS 1.3 são definidos de forma diferente, especificando apenas as cifras simétricas e não podem ser utilizados para o TLS 1.2. Da mesma forma, os conjuntos de cifras do TLS 1.2 e inferior não podem ser utilizados com o TLS 1.3.
Execute o seguinte comando a partir de uma janela elevada do PowerShell para configurar os conjuntos de cifras TLS 1.3:
Enable-TlsCipherSuite -Name TLS_AES_256_GCM_SHA384 -Position 0
Enable-TlsCipherSuite -Name TLS_AES_128_GCM_SHA256 -Position 1
Desativar o TLS 1.3
Execute o seguinte comando a partir de uma janela elevada do PowerShell para desativar explicitamente o TLS 1.3 para ligações de cliente e servidor:
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
Execute o seguinte comando a partir de uma janela elevada do PowerShell para remover os conjuntos de cifras TLS 1.3:
Disable-TlsCipherSuite -Name TLS_AES_256_GCM_SHA384
Disable-TlsCipherSuite -Name TLS_AES_128_GCM_SHA256
Passos para configurar o TLS 1.2
A tabela seguinte mostra as combinações Exchange Server/Windows Server nas quais o TLS 1.2 é suportado. A tabela também mostra a configuração predefinida:
Exchange Server | Windows Server | Com suporte | Configurado por predefiniçã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 a partir de uma janela elevada do PowerShell para ativar o TLS 1.2 para ligaçõ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
Desativar o TLS 1.2
Execute o seguinte comando a partir de uma janela elevada do PowerShell para desativar explicitamente o TLS 1.2 para ligaçõ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
Passos para configurar o TLS 1.1
A tabela seguinte mostra as combinações Exchange Server/Windows Server nas quais o TLS 1.1 é suportado. A tabela também mostra a configuração predefinida:
Exchange Server | Windows Server | Com suporte | Configurado por predefinição |
---|---|---|---|
Exchange Server 2019 | Qualquer | Sim | Sim (disabled ) |
Exchange Server 2016 | Qualquer | Sim | Não |
Exchange Server 2013 | Qualquer | Sim | Não |
Ativar o TLS 1.1
Observação
A implementação do Microsoft TLS 1.1 não tem vulnerabilidades de segurança conhecidas. No entanto, devido ao potencial de futuros ataques de mudança para uma versão anterior do protocolo e outras vulnerabilidades TLS, é recomendado planear e desativar cuidadosamente o TLS 1.1. A falha ao planear cuidadosamente pode fazer com que os clientes percam a conectividade.
Execute o seguinte comando a partir de uma janela elevada do PowerShell para ativar o TLS 1.1 para ligaçõ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
Desativar o TLS 1.1
Execute o seguinte comando a partir de uma janela elevada do PowerShell para desativar explicitamente o TLS 1.1 para ligaçõ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
Passos para configurar o TLS 1.0
A tabela seguinte mostra as combinações Exchange Server/Windows Server nas quais o TLS 1.0 é suportado. A tabela também mostra a configuração predefinida:
Exchange Server | Windows Server | Com suporte | Configurado por predefinição |
---|---|---|---|
Exchange Server 2019 | Qualquer | Sim | Sim (disabled ) |
Exchange Server 2016 | Qualquer | Sim | Não |
Exchange Server 2013 | Qualquer | Sim | Não |
Ativar o TLS 1.0
Observação
A implementação do Microsoft TLS 1.0 não tem vulnerabilidades de segurança conhecidas. No entanto, devido ao potencial de futuros ataques de mudança para uma versão anterior do protocolo e outras vulnerabilidades do TLS, é recomendado planear e desativar cuidadosamente o TLS 1.0. A falha ao planear cuidadosamente pode fazer com que os clientes percam a conectividade.
Execute o seguinte comando a partir de uma janela elevada do PowerShell para ativar o TLS 1.0 para ligaçõ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
Desativar o TLS 1.0
Execute o seguinte comando a partir de uma janela elevada do PowerShell para desativar explicitamente o TLS 1.0 para ligaçõ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
Passos para configurar o modo estrito de renegociação do TLS
O modo estrito TLS é uma funcionalidade de segurança que garante que apenas os clientes com as atualizações de segurança necessárias podem estabelecer e renegociar sessões TLS com o servidor.
A tabela seguinte mostra as combinações Exchange Server/Windows Server com a configuração de modo rigoroso de renegociação TLS predefinida:
Exchange Server | Windows Server | Com suporte | Configurado por predefinição |
---|---|---|---|
Exchange Server 2019 | Qualquer | Sim | Sim (enabled ) |
Exchange Server 2016 | Qualquer | Sim | Não |
Exchange Server 2013 | Qualquer | Não | N/D |
Ativar o modo estrito de renegociação do TLS
Execute o seguinte comando a partir de uma janela elevada do PowerShell para ativar 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
Desativar o modo estrito de renegociação do TLS
Execute o seguinte comando a partir de uma janela elevada do PowerShell para desativar explicitamente o modo restrito de renegociação:
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
Validar a utilização do TLS 1.2 ou TLS 1.3
Após a ativação do TLS 1.2 ou TLS 1.3, pode ser útil validar o seu trabalho com êxito e o sistema conseguir negociar o TLS 1.2 ou o TLS 1.3 para ligações de entrada (servidor) e ligações de saída (cliente). Existem alguns métodos disponíveis para validar a utilização do TLS. Alguns deles são abordados nas secções seguintes.
Muitos dos protocolos utilizados no Exchange Server são baseados em HTTP e, por conseguinte, percorrem os processos do IIS no servidor Exchange. MAPI/HTTP, Outlook Anywhere, Exchange Web Services, Exchange ActiveSync, REST, OWA & EAC, Transferências de Livros de Endereços Offline e Deteção Automática são exemplos de protocolos baseados em HTTP utilizados pelo Exchange Server.
Registo do IIS
A equipa dos Serviços de Informação Internet (IIS) adicionou capacidades ao Windows Server 2012 R2 ou posterior para registar campos personalizados relacionados com as versões e cifras do protocolo de encriptação. Recomendamos que reveja o blogue para obter documentação sobre como ativar estes campos personalizados e começar a analisar registos para obter informações sobre as ligações recebidas no seu ambiente relacionadas com protocolos baseados em HTTP.
Estes campos personalizados do IIS não existem para Windows Server versão anterior Windows Server 2012 R2. Os registos do balanceador de carga ou da firewall poderão ser capazes de fornecer estas informações. Peça orientações aos fornecedores para determinar se os registos podem fornecer estas informações.
Ferramentas de Programador do Microsoft Edge
Pode utilizar o , que está disponível com o Developer Tools
Microsoft Edge, para marcar a versão do TLS que foi utilizada para estabelecer uma ligação segura, ao ligar ao Outlook na Web (OWA) ou ao Exchange Administração Center (ECP). Para fazer isso, siga estas etapas:
Abra o browser Microsoft Edge e estabeleça uma ligação HTTPS ao OWA ou ECP.
Prima
CTRL + SHIFT + I
para abrir oDeveloper Tools
.Clique no
+
símbolo no canto superior direito.Clique em
Security
no menu pendente.Verifique a versão do TLS na
Connection - secure connection settings
secção .
Cabeçalhos da mensagem
Os dados do cabeçalho da mensagem no Exchange Server 2016 ou posterior fornecem o protocolo negociado e utilizado quando o anfitrião de envio e receção trocou um pedaço de correio. Pode utilizar o Analisador de Cabeçalhos de Mensagens para obter uma descrição geral clara de cada salto.
Existe uma exceção conhecida ao exemplo de cabeçalhos de mensagens. Quando um cliente envia uma mensagem ao ligar a um servidor através de SMTP autenticado (também conhecido como protocolo de submissão de cliente SMTP), a versão do TLS nos cabeçalhos de mensagens não mostra a versão do TLS correta utilizada pelo cliente. A Microsoft está a investigar a possibilidade de adicionar estas informações numa atualização futura.
Registo SMTP
Os registos SMTP no Exchange Server contêm o protocolo de encriptação e outras informações relacionadas com encriptação utilizadas durante a troca de e-mail entre dois sistemas.
Quando o servidor for o SMTP receiving system
, procure o Server value
no registo, dependendo da versão do TLS utilizada. Se o servidor for o SMTP sending system
, procure o Client value
no registo, dependendo da versão do TLS utilizada.
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 |
Observação
O suporte para o SMTP TLS 1.3 será incluído numa próxima atualização do Exchange 2019 CU15.
O exemplo seguinte procura nos ficheiros de registo num servidor Exchange, que executa a função de caixa de correio, para obter ligações efetuadas com 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 ficheiros de registo num servidor Exchange, que executa a função de Transporte edge, para ligações efetuadas com 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 nenhum registo que exponha a versão do protocolo de encriptação utilizada para clientes POP e IMAP. Para capturar estas informações, poderá ter de capturar um rastreio netmon do servidor ou inspecionar o tráfego à medida que este flui através do balanceador de carga ou da firewall onde está a ocorrer o bridging HTTPS.
Melhores práticas para os algoritmos de cifras e hash
Os passos nesta secção podem ser utilizados para configurar Exchange Server 2016 com o mesmo conjunto de algoritmos de cifra e hash que Exchange Server 2019. Estes passos não são necessários para Exchange Server 2019, uma vez que já vem com uma configuração de algoritmo de cifra e hash pré-configurada.
Como pré-requisito, primeiro tem de configurar o TLS 1.2 e, em seguida, desativar o TLS 1.0 e o TLS 1.1. Considere aplicar as seguintes definições separadamente da desativação do TLS 1.0 e TLS 1.1 para isolar problemas de configuração com clientes problemáticos.
Ativar conjuntos de cifras recomendados
Windows Server 2012 e Windows Server 2012 R2
Execute os seguintes comandos a partir de uma janela elevada do PowerShell para configurar os conjuntos de cifras 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
Execute os seguintes comandos a partir de uma janela elevada do PowerShell para configurar os conjuntos de cifras recomendados.
Observação
É possível configurar os conjuntos de cifras ao utilizar um Objeto Política de Grupo (GPO). Não pode configurá-los manualmente utilizando os cmdlets Enable-TlsCipherSuite ou Disable-TLSCipherSuite se já tiverem sido configurados através de GPO ou se a Functions
entrada de registo já existir no HKLM:\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002
caminho.
Primeiro, desative todos os conjuntos de cifras:
foreach ($suite in (Get-TLSCipherSuite).Name) {
if (-not([string]::IsNullOrWhiteSpace($suite))) {
Disable-TlsCipherSuite -Name $suite -ErrorAction SilentlyContinue
}
}
Em seguida, volte a ativar apenas os conjuntos de cifras TLS 1.2 recomendados:
$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++
}
Desativar cifras e hashes desatualizados
Execute o seguinte comando a partir de uma janela elevada do PowerShell para desativar explicitamente 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 de curva elíptica
Recomenda-se desativar a curve25519
curva elíptica, uma vez que não está disponível no modo FIPS.
Pode encontrar mais informações nas Curvas Elípticas do TLS no Windows 10 versão 1607 e na documentação posterior.
Execute o seguinte comando a partir de uma janela elevada do PowerShell para configurar a preferência de curva elíptica:
Disable-TlsEccCurve -Name "curve25519"
Enable-TlsEccCurve -Name "NistP384" -Position 0
Enable-TlsEccCurve -Name "NistP256" -Position 1