Exchange Server procedure consigliate per la configurazione di TLS

Questa documentazione descrive i passaggi necessari per configurare correttamente (abilitare o disabilitare) versioni TLS specifiche in Exchange Server 2013, Exchange Server 2016 e Exchange Server 2019. L'articolo illustra anche come ottimizzare i pacchetti di crittografia e gli algoritmi di hash usati da TLS. Se TLS non è configurato correttamente, è possibile riscontrare diversi problemi durante l'interazione con Microsoft 365 o altri sistemi, configurati in modo che richiedano un determinato standard TLS minimo.

Per altre informazioni sui protocolli TLS (e SSL), vedere l'articolo Protocollo transport layer security .

Importante

Leggere attentamente come alcuni dei passaggi descritti qui possono essere eseguiti solo su sistemi operativi specifici o specifiche versioni Exchange Server.

All'inizio di ogni sezione è presente una matrice che indica se un'impostazione è supportata o meno e se è già stata pre-configurata da una determinata versione Exchange Server.

Aspetti da considerare prima di disabilitare una versione di TLS

Consiglio

È possibile usare lo script HealthChecker di Exchange per controllare la configurazione TLS corrente del server Exchange.

Assicurarsi che ogni applicazione supporti le versioni di TLS, che rimangono abilitate. Considerazioni come (ma non solo):

  • I controller di dominio e i server del catalogo globale supportano, ad esempio, una configurazione solo TLS 1.2?
  • Le applicazioni partner ,ad esempio SharePoint, Lync, Skype for Business e così via, supportano, ad esempio, una configurazione solo TLS 1.2?
  • Hai aggiornato i desktop di Windows 7 meno recenti usando Outlook per supportare TLS 1.2 su WinHTTP?
  • I servizi di bilanciamento del carico supportano TLS 1.2 in uso?
  • Le applicazioni desktop, mobili e browser supportano TLS 1.2?
  • I dispositivi come le stampanti multifunzione supportano TLS 1.2?
  • Le applicazioni aziendali di terze parti o personalizzate che si integrano con Exchange Server o Microsoft 356 supportano un'implementazione TLS avanzata?

Di conseguenza, è consigliabile eseguire tutti i passaggi da eseguire per passare a TLS 1.2 e non ai protocolli di sicurezza meno recenti nei lab che simulano gli ambienti di produzione prima di iniziare lentamente a distribuirli nell'ambiente di produzione.

I passaggi usati per disabilitare una versione TLS specifica, come illustrato di seguito, si applicano alle funzionalità di Exchange Server seguenti:

  • Smtp (Simple Mail Transport Protocol)
  • Connettività client di Outlook (Outlook Via Internet/MAPI/HTTP)
  • Exchange Active Sync (EAS)
  • Outlook sul Web (OWA)
  • Exchange Amministrazione Center (EAC) ed Exchange Pannello di controllo (ECP)
  • Autodiscover
  • Servizi Web Exchange (EWS)
  • REST (Exchange Server 2016/2019)
  • Uso di PowerShell da Exchange tramite HTTPS
  • POP e IMAP

Prerequisiti

Il supporto di TLS 1.2 è stato aggiunto con Exchange Server 2013 CU19 e Exchange Server 2016 CU8. Exchange Server 2019 supporta TLS 1.2 per impostazione predefinita.

Exchange Server non può essere eseguito senza Windows Server ed è quindi importante installare gli aggiornamenti più recenti del sistema operativo per eseguire un'implementazione TLS stabile e sicura.

È anche necessario disporre della versione più recente di .NET Framework e delle patch associate supportate dall'cu in uso.

In base al sistema operativo, assicurarsi che siano presenti anche gli aggiornamenti seguenti (devono essere installati se il server è aggiornato in Windows Aggiornamenti):

Se il sistema operativo è Windows Server 2012 o Windows Server 2012 R2, è necessario installare KB3161949 e KB2973337 prima di poter abilitare TLS 1.2.

Avviso

il supporto esteso per Windows Server 2012 e Windows Server 2012 R2 è terminato il 10 ottobre 2023. Questi server non riceveranno più Sicurezza di Windows Aggiornamenti senza una ESU. È consigliabile eseguire la migrazione a una versione supportata il prima possibile.

Assicurarsi di riavviare il Exchange Server dopo l'applicazione della configurazione TLS. Diventa attivo dopo il riavvio del server.

Preparazione di .NET Framework per ereditare le impostazioni predefinite da Schannel

La tabella seguente illustra le combinazioni Exchange Server/Windows Server con la configurazione predefinita dell'ereditarietà Schannel di .NET Framework:

Exchange Server Server Windows Supportato Configurato per impostazione predefinita
Exchange Server 2019 CU14 o versioni successive Qualsiasi Sì (solo nuove installazioni)
Exchange Server 2019 Qualsiasi Parzialmente (SchUseStrongCrypto deve essere configurato manualmente)
Exchange Server 2016 Qualsiasi No (verranno usate le impostazioni predefinite del sistema operativo)
Exchange Server 2013 Qualsiasi No (verranno usate le impostazioni predefinite del sistema operativo)

Il SystemDefaultTlsVersions valore del Registro di sistema definisce le impostazioni predefinite della versione del protocollo di sicurezza che verranno usate da .NET Framework 4.x. Se il valore è impostato su 1, .NET Framework 4.x eredita le impostazioni predefinite dai valori del Registro di sistema canale sicuro di Windows (Schannel DisabledByDefault ). Se il valore non è definito, si comporta come se il valore fosse impostato su 0.

La crittografia avanzata (configurata dal valore del SchUseStrongCrypto Registro di sistema) usa protocolli di rete più sicuri (TLS 1.2 e TLS 1.1) e blocca i protocolli non sicuri. SchUseStrongCrypto influisce solo sulle connessioni client (in uscita) nell'applicazione. Configurando .NET Framework 4.x per ereditare i relativi valori da Schannel si ottiene la possibilità di usare le versioni più recenti di TLS supportate dal sistema operativo, incluso TLS 1.2.

Abilitare l'ereditarietà Schannel di .NET Framework 4.x

Eseguire i comandi seguenti da una finestra di PowerShell con privilegi elevati per configurare l'ereditarietà Schannel di .NET Framework 4.x:

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

Abilitare l'ereditarietà Schannel di .NET Framework 3.5

Nota

Exchange Server 2013 e versioni successive non è necessaria questa impostazione. Tuttavia, è consigliabile configurarlo in modo identico alle impostazioni di .NET 4.x per garantire una configurazione coerente.

Eseguire i comandi seguenti da una finestra di PowerShell con privilegi elevati per configurare l'ereditarietà Schannel di .NET Framework 3.5:

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

Passaggi per configurare TLS 1.2

La tabella seguente illustra le combinazioni Exchange Server/Windows Server in cui è supportato TLS 1.2. La tabella mostra anche la configurazione predefinita:

Exchange Server Server Windows Supportato Configurato per impostazione predefinita
Exchange Server 2019 Qualsiasi Sì (enabled)
Exchange Server 2016 Qualsiasi No
Exchange Server 2013 Qualsiasi No

Abilitare TLS 1.2

Eseguire il comando seguente da una finestra di PowerShell con privilegi elevati per abilitare TLS 1.2 per le connessioni client e server:

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

Disabilitare TLS 1.2

Eseguire il comando seguente da una finestra di PowerShell con privilegi elevati per disabilitare TLS 1.2 per le connessioni client e server:

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

Passaggi per configurare TLS 1.1

La tabella seguente mostra le combinazioni Exchange Server/Windows Server in cui è supportato TLS 1.1. La tabella mostra anche la configurazione predefinita:

Exchange Server Server Windows Supportato Configurato per impostazione predefinita
Exchange Server 2019 Qualsiasi Sì (disabled)
Exchange Server 2016 Qualsiasi No
Exchange Server 2013 Qualsiasi No

Abilitare TLS 1.1

Nota

L'implementazione di Microsoft TLS 1.1 non presenta vulnerabilità di sicurezza note. Ma a causa del potenziale per futuri attacchi di downgrade del protocollo e altre vulnerabilità TLS, è consigliabile pianificare e disabilitare con attenzione TLS 1.1. Se non si pianifica con attenzione, i client perdono la connettività.

Eseguire il comando seguente da una finestra di PowerShell con privilegi elevati per abilitare TLS 1.1 per le connessioni client e server:

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

Disabilitare TLS 1.1

Eseguire il comando seguente da una finestra di PowerShell con privilegi elevati per disabilitare TLS 1.1 per le connessioni client e server:

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

Passaggi per configurare TLS 1.0

La tabella seguente mostra le combinazioni Exchange Server/Windows Server in cui è supportato TLS 1.0. La tabella mostra anche la configurazione predefinita:

Exchange Server Server Windows Supportato Configurato per impostazione predefinita
Exchange Server 2019 Qualsiasi Sì (disabled)
Exchange Server 2016 Qualsiasi No
Exchange Server 2013 Qualsiasi No

Abilitare TLS 1.0

Nota

L'implementazione di Microsoft TLS 1.0 non contiene vulnerabilità di sicurezza note. Ma a causa del potenziale per futuri attacchi di downgrade del protocollo e altre vulnerabilità TLS, è consigliabile pianificare e disabilitare attentamente TLS 1.0. Se non si pianifica con attenzione, i client perdono la connettività.

Eseguire il comando seguente da una finestra di PowerShell con privilegi elevati per abilitare TLS 1.0 per le connessioni client e server:

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

Disabilitare TLS 1.0

Eseguire il comando seguente da una finestra di PowerShell con privilegi elevati per disabilitare TLS 1.0 per le connessioni client e server:

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

Procedure consigliate per algoritmi di crittografia e hash

Importante

I passaggi descritti in questa sezione sono facoltativi per i passaggi descritti in precedenza. È necessario configurare TLS 1.2 e disabilitare completamente TLS 1.0 e 1.1 prima di eseguire i passaggi successivi.

Valutare la possibilità di applicare queste impostazioni separatamente per disabilitare TLS 1.0 e TLS 1.1 per isolare i problemi di configurazione con i client problematici.

Configurare la modalità strict di rinegoziazione TLS client e server

La tabella seguente mostra le combinazioni Exchange Server/Windows Server con la configurazione predefinita della modalità strict di rinegoziazione TLS:

Exchange Server Server Windows Supportato Configurato per impostazione predefinita
Exchange Server 2019 Qualsiasi Sì (strict mode enabled)
Exchange Server 2016 Qualsiasi No
Exchange Server 2013 Qualsiasi No N/D

Queste impostazioni vengono usate per configurare la modalità strict di rinegoziazione TLS. Ciò significa che il server consente solo i client a cui viene applicato questo aggiornamento della sicurezza per configurare e rinegoziare le sessioni TLS. Il server non consente ai client a cui non viene applicato questo aggiornamento della sicurezza di configurare la sessione TLS. In questo caso, il server termina tali richieste dai client.

Analogamente, se questo aggiornamento della sicurezza viene applicato al client e il client è in modalità strict, il client può configurare e rinegoziare le sessioni TLS con tutti i server per i quali viene applicato questo aggiornamento della sicurezza. I client non possono configurare sessioni TLS con server per i quali non viene applicato questo aggiornamento della sicurezza. Il client non può procedere con un tentativo di negoziazione TLS con tali server.

Eseguire il comando seguente da una finestra di PowerShell con privilegi elevati per abilitare la modalità strict di rinegoziazione:

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

La tabella seguente illustra le combinazioni Exchange Server/Windows Server con la configurazione predefinita consigliata per i pacchetti di crittografia:

Exchange Server Server Windows Supportato Configurato per impostazione predefinita
Exchange Server 2019 Qualsiasi
Exchange Server 2016 Qualsiasi No
Exchange Server 2013 Windows Server 2012 (R2) No

Windows Server 2012 e Windows Server 2012 R2

Eseguire i comandi seguenti da una finestra di PowerShell con privilegi elevati per configurare i pacchetti di crittografia consigliati:

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 o superiore

Nota

È possibile configurare i pacchetti di crittografia usando un oggetto Criteri di gruppo Object (GPO). Non è possibile configurarli manualmente tramite Enable/Disable-TLSCipherSuite cmdlet se sono già stati configurati tramite l'oggetto Criteri di gruppo o se la chiave del Functions Registro di sistema esiste già nel percorso seguente: HKLM:\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002

Eseguire i comandi seguenti da una finestra di PowerShell con privilegi elevati per configurare i pacchetti di crittografia consigliati.

La prima attività consiste nel disabilitare tutti i pacchetti di crittografia esistenti:

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

La seconda attività consiste nell'abilitare solo i pacchetti di crittografia consigliati di 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++
}

Disabilitare crittografie e hash obsoleti

La tabella seguente illustra le combinazioni Exchange Server/Windows Server con la configurazione predefinita di crittografie e hash obsoleti:

Exchange Server Server Windows Supportato Configurato per impostazione predefinita
Exchange Server 2019 Qualsiasi
Exchange Server 2016 Qualsiasi No
Exchange Server 2013 Windows Server 2012 (R2) No

Eseguire il comando seguente da una finestra di PowerShell con privilegi elevati per disabilitare crittografie e hash obsoleti:

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

Configurare la preferenza della curva ellittica

La tabella seguente mostra le combinazioni Exchange Server/Windows Server con la configurazione predefinita delle preferenze della curva ellittica:

Exchange Server Server Windows Supportato Configurato per impostazione predefinita
Exchange Server 2019 Qualsiasi
Exchange Server 2016 Windows Server 2016 No
Exchange Server 2013 Qualsiasi No N/D

Nota

È consigliabile disabilitare la curve25519 curva ellittica perché non è disponibile in modalità FIPS. Per altre informazioni, vedere: TLS Elliptic Curves in Windows 10 versione 1607 e successive

Eseguire il comando seguente da una finestra di PowerShell con privilegi elevati per configurare la preferenza della curva ellittica:

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

Convalida dell'uso di TLS 1.2

Dopo aver abilitato TLS 1.2, può essere utile verificare che il lavoro abbia avuto esito positivo e che il sistema sia in grado di negoziare TLS 1.2 per le connessioni in ingresso (server) e in uscita (client). Sono disponibili alcuni metodi per la convalida dell'utilizzo di TLS, alcuni dei quali sono illustrati nelle sezioni seguenti.

Molti protocolli usati in Exchange Server sono basati su HTTP e quindi attraversano i processi IIS nel server Exchange. MAPI/HTTP, Outlook Anywhere, Exchange Web Services, Exchange ActiveSync, REST, OWA & EAC, download della Rubrica offline e Individuazione automatica sono esempi di protocolli basati su HTTP usati da Exchange Server.

Log di Internet Information Services (IIS)

Il team IIS ha aggiunto funzionalità per Windows Server 2012 R2 o versioni successive per registrare i campi personalizzati correlati alle versioni del protocollo di crittografia e alle crittografie. È consigliabile consultare il blog per la documentazione su come abilitare questi campi personalizzati e iniziare ad analizzare i log per informazioni sulle connessioni in ingresso nell'ambiente correlate ai protocolli basati su HTTP.

Questi campi personalizzati iis non esistono per la versione di Windows Server precedente Windows Server 2012 R2. Il servizio di bilanciamento del carico o i log del firewall potrebbero essere in grado di fornire queste informazioni. Richiedere indicazioni ai fornitori per determinare se i log possono fornire queste informazioni.

Controllo della versione di TLS tramite Microsoft Edge Developer Tools

È possibile utilizzare , Developer Toolsdisponibile con Microsoft Edge, per controllare la versione di TLS usata per stabilire una connessione sicura, durante la connessione a Outlook sul Web (OWA) o exchange Amministrazione Center (ECP). A tal fine, attenersi alla seguente procedura:

  1. Aprire il browser Microsoft Edge e stabilire una connessione HTTPS a OWA o ECP.
  2. Premere CTRL + SHIFT + I per aprire .Developer Tools
  3. Fare clic sul + simbolo nell'angolo in alto a destra.
  4. Fare clic sul Security menu a discesa.
  5. Controllare la versione di TLS nella Connection - secure connection settings sezione .

Intestazioni dei messaggi (Exchange Server 2016 o versioni successive)

I dati dell'intestazione del messaggio in Exchange Server 2016 o versioni successive forniscono il protocollo negoziato e usato quando l'host di invio e ricezione ha scambiato un messaggio di posta elettronica. È possibile usare Message Header Analyzer per ottenere una panoramica chiara di ogni hop.

Nota

Esiste un'eccezione nota all'esempio di intestazioni di messaggio. Quando un client invia un messaggio connettendosi a un server tramite SMTP autenticato (noto anche come protocollo di invio client SMTP), la versione TLS nelle intestazioni dei messaggi non mostra la versione TLS corretta usata dal client o dal dispositivo di un cliente. Microsoft sta esaminando la possibilità di aggiungere queste informazioni in un aggiornamento futuro.

Flusso di posta tramite registrazione SMTP

I log SMTP in Exchange Server 2013 e versioni successive contengono il protocollo di crittografia e altre informazioni correlate alla crittografia usate durante lo scambio di posta elettronica tra due sistemi.

Quando il server è SMTP receiving system, cercare Server value nel log a seconda della versione di TLS usata. Se il server è SMTP sending system, cercare Client value nel log a seconda della versione di TLS usata.

Versione TLS Valore del server Valore client
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

Nell'esempio seguente vengono cercate le connessioni eseguite tramite il protocollo TLS 1.0 nei file di log in un server Exchange, che esegue il ruolo cassetta postale:

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

Esempio di ricerca di file di log in un server Exchange, che esegue il ruolo trasporto Edge, per le connessioni effettuate tramite il protocollo TLS 1.1:

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

POP e IMAP

Non esiste alcuna registrazione che esporrà la versione del protocollo di crittografia usata per i client POP e IMAP. Per acquisire queste informazioni, potrebbe essere necessario acquisire una traccia netmon dal server o controllare il traffico durante il flusso attraverso il servizio di bilanciamento del carico o il firewall in cui si sta verificando il bridging HTTPS.