Exchange Server bonnes pratiques en matière de configuration TLS

Cette documentation décrit les étapes requises pour configurer (activer ou désactiver) correctement des versions TLS spécifiques sur Exchange Server 2013, Exchange Server 2016 et Exchange Server 2019. L’article explique également comment optimiser les suites de chiffrement et les algorithmes de hachage utilisés par TLS. Si TLS n’est pas configuré correctement, vous pouvez rencontrer divers problèmes lors de l’interaction avec Microsoft 365 ou d’autres systèmes, qui sont configurés de telle sorte qu’ils nécessitent une certaine norme TLS minimale.

Si vous souhaitez en savoir plus sur les protocoles TLS (et SSL), lisez l’article Protocole transport layer security .

Importante

Lisez attentivement, car certaines des étapes décrites ici ne peuvent être effectuées que sur des systèmes d’exploitation spécifiques ou des versions Exchange Server spécifiques.

Au début de chaque section se trouve une matrice qui indique si un paramètre est pris en charge ou non et s’il a déjà été préconfiguré à partir d’une certaine version Exchange Server.

Éléments à prendre en compte avant de désactiver une version TLS

Conseil

Vous pouvez utiliser le script Exchange HealthChecker pour case activée la configuration TLS actuelle de votre serveur Exchange.

Assurez-vous que chaque application prend en charge les versions TLS, qui restent activées. Considérations telles que (mais sans s’y limiter) :

  • Vos contrôleurs de domaine et serveurs de catalogue global prennent-ils en charge, par exemple, une configuration TLS 1.2 uniquement ?
  • Les applications partenaires (telles que SharePoint, Lync, Skype Entreprise, etc.) prennent-elles en charge, par exemple, une configuration TLS 1.2 uniquement ?
  • Avez-vous mis à jour des ordinateurs de bureau Windows 7 plus anciens à l’aide d’Outlook pour prendre en charge TLS 1.2 sur WinHTTP ?
  • Vos équilibreurs de charge prennent-ils en charge l’utilisation de TLS 1.2 ?
  • Vos applications de bureau, mobiles et de navigateur prennent-elles en charge TLS 1.2 ?
  • Les appareils tels que les imprimantes multi-fonctions prennent-ils en charge TLS 1.2 ?
  • Vos applications tierces ou personnalisées qui s’intègrent à Exchange Server ou Microsoft 356 prennent-elles en charge une implémentation TLS forte ?

Par conséquent, nous vous recommandons vivement d’effectuer d’abord toutes les étapes de transition vers TLS 1.2 et d’abandonner les protocoles de sécurité plus anciens dans des laboratoires qui simulent vos environnements de production avant de commencer lentement à les déployer en production.

Les étapes utilisées pour désactiver une version TLS spécifique, comme indiqué ci-dessous, s’appliquent aux fonctionnalités Exchange Server suivantes :

  • Protocole SMTP (Simple Mail Transport Protocol)
  • Connectivité du client Outlook (Outlook Anywhere / MAPI/HTTP)
  • Exchange Active Sync (EAS)
  • Outlook sur le web (OWA)
  • Exchange Administration Center (EAC) et Exchange Panneau de configuration (ECP)
  • Autodiscover
  • Services Web Exchange (EWS)
  • REST (Exchange Server 2016/2019)
  • Utilisation de PowerShell par Exchange sur HTTPS
  • POP et IMAP

Conditions préalables

La prise en charge de TLS 1.2 a été ajoutée avec Exchange Server 2013 CU19 et Exchange Server 2016 CU8. Exchange Server 2019 prend en charge TLS 1.2 par défaut.

Exchange Server ne peut pas s’exécuter sans Windows Server et il est donc important d’installer les dernières mises à jour du système d’exploitation pour exécuter une implémentation TLS stable et sécurisée.

Il est également nécessaire de disposer de la dernière version du .NET Framework et des correctifs associés pris en charge par votre cu .

En fonction de votre système d’exploitation, vérifiez que les mises à jour suivantes sont également en place (elles doivent être installées si votre serveur est à jour sur Windows Mises à jour) :

Si votre système d’exploitation est Windows Server 2012 ou Windows Server 2012 R2, KB3161949 et KB2973337 doivent être installés avant que TLS 1.2 puisse être activé.

Avertissement

le support étendu Windows Server 2012 et Windows Server 2012 R2 a pris fin le 10 octobre 2023. Ces serveurs ne recevront plus Sécurité Windows Mises à jour sans ESU. Nous vous recommandons vivement de migrer vers une version prise en charge dès que possible !

Veillez à redémarrer le Exchange Server après l’application de la configuration TLS. Il devient actif après le redémarrage du serveur.

Préparation du .NET Framework pour hériter des valeurs par défaut de Schannel

Le tableau suivant présente les combinaisons Exchange Server/Windows Server avec la configuration d’héritage Schannel .NET Framework par défaut :

Exchange Server Windows Server Pris en charge Configuré par défaut
Exchange Server 2019 CU14 ou version ultérieure N’importe lequel Oui Oui (nouvelles installations uniquement)
Exchange Server 2019 N’importe lequel Oui Partiellement (SchUseStrongCrypto doit être configuré manuellement)
Exchange Server 2016 N’importe lequel Oui Non (les valeurs par défaut du système d’exploitation seront utilisées)
Exchange Server 2013 N’importe lequel Oui Non (les valeurs par défaut du système d’exploitation seront utilisées)

La SystemDefaultTlsVersions valeur de Registre définit la version de protocole de sécurité par défaut qui sera utilisée par .NET Framework 4.x. Si la valeur est définie sur 1, .NET Framework 4.x hérite de ses valeurs par défaut des valeurs de Registre Schannel (Windows Secure Channel). DisabledByDefault Si la valeur n’est pas définie, elle se comporte comme si la valeur était définie sur 0.

Le chiffrement fort (configuré par la valeur de SchUseStrongCrypto Registre) utilise des protocoles réseau plus sécurisés (TLS 1.2 et TLS 1.1) et bloque les protocoles qui ne sont pas sécurisés. SchUseStrongCrypto affecte uniquement les connexions clientes (sortantes) dans votre application. En configurant .NET Framework 4.x pour hériter de ses valeurs de Schannel, nous obtenons la possibilité d’utiliser les dernières versions de TLS prises en charge par le système d’exploitation, y compris TLS 1.2.

Activer l’héritage Schannel .NET Framework 4.x

Exécutez les commandes suivantes à partir d’une fenêtre PowerShell avec élévation de privilèges pour configurer l’héritage Schannel .NET Framework 4.x :

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

Activer l’héritage Schannel .NET Framework 3.5

Remarque

Exchange Server 2013 et versions ultérieures n’ont pas besoin de ce paramètre. Toutefois, nous vous recommandons de le configurer de la même manière que les paramètres .NET 4.x pour garantir une configuration cohérente.

Exécutez les commandes suivantes à partir d’une fenêtre PowerShell avec élévation de privilèges pour configurer l’héritage Schannel .NET Framework 3.5 :

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

Étapes de configuration de TLS 1.2

Le tableau suivant présente les combinaisons Exchange Server/Windows Server sur lesquelles TLS 1.2 est pris en charge. Le tableau montre également la configuration par défaut :

Exchange Server Windows Server Pris en charge Configuré par défaut
Exchange Server 2019 N’importe lequel Oui Oui (enabled)
Exchange Server 2016 N’importe lequel Oui Non
Exchange Server 2013 N’importe lequel Oui Non

Activer TLS 1.2

Exécutez la commande suivante à partir d’une fenêtre PowerShell avec élévation de privilèges pour activer TLS 1.2 pour les connexions client et serveur :

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

Désactiver TLS 1.2

Exécutez la commande suivante à partir d’une fenêtre PowerShell avec élévation de privilèges pour désactiver TLS 1.2 pour les connexions client et serveur :

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

Étapes de configuration de TLS 1.1

Le tableau suivant présente les combinaisons Exchange Server/Windows Server sur lesquelles TLS 1.1 est pris en charge. Le tableau montre également la configuration par défaut :

Exchange Server Windows Server Pris en charge Configuré par défaut
Exchange Server 2019 N’importe lequel Oui Oui (disabled)
Exchange Server 2016 N’importe lequel Oui Non
Exchange Server 2013 N’importe lequel Oui Non

Activer TLS 1.1

Remarque

L’implémentation de Microsoft TLS 1.1 ne présente aucune faille de sécurité connue. Toutefois, en raison du potentiel de futures attaques de rétrogradation de protocole et d’autres vulnérabilités TLS, il est recommandé de planifier et de désactiver soigneusement TLS 1.1. Si vous ne planifiez pas soigneusement, les clients risquent de perdre la connectivité.

Exécutez la commande suivante à partir d’une fenêtre PowerShell avec élévation de privilèges pour activer TLS 1.1 pour les connexions client et serveur :

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

Désactiver TLS 1.1

Exécutez la commande suivante à partir d’une fenêtre PowerShell avec élévation de privilèges pour désactiver TLS 1.1 pour les connexions client et serveur :

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

Étapes de configuration de TLS 1.0

Le tableau suivant présente les combinaisons Exchange Server/Windows Server sur lesquelles TLS 1.0 est pris en charge. Le tableau montre également la configuration par défaut :

Exchange Server Windows Server Pris en charge Configuré par défaut
Exchange Server 2019 N’importe lequel Oui Oui (disabled)
Exchange Server 2016 N’importe lequel Oui Non
Exchange Server 2013 N’importe lequel Oui Non

Activer TLS 1.0

Remarque

L’implémentation du service TLS 1.0 de Microsoft ne comporte aucune vulnérabilité de sécurité connue. Toutefois, en raison du potentiel de futures attaques de rétrogradation de protocole et d’autres vulnérabilités TLS, il est recommandé de planifier et de désactiver soigneusement TLS 1.0. Si vous ne planifiez pas soigneusement, les clients risquent de perdre la connectivité.

Exécutez la commande suivante à partir d’une fenêtre PowerShell avec élévation de privilèges pour activer TLS 1.0 pour les connexions client et serveur :

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

Désactiver TLS 1.0

Exécutez la commande suivante à partir d’une fenêtre PowerShell avec élévation de privilèges pour désactiver TLS 1.0 pour les connexions client et serveur :

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

Bonnes pratiques relatives aux algorithmes de chiffrement et de hachage

Importante

Les étapes décrites dans cette section sont facultatives pour les étapes décrites précédemment. Il est nécessaire de configurer TLS 1.2 et de désactiver complètement TLS 1.0 et 1.1 avant d’effectuer les étapes suivantes.

Envisagez d’appliquer ces paramètres séparément pour désactiver TLS 1.0 et TLS 1.1 pour isoler les problèmes de configuration avec les clients problématiques.

Configurer le mode strict de renégociation TLS client et serveur

Le tableau suivant présente les combinaisons Exchange Server/Windows Server avec la configuration par défaut du mode strict de renégociation TLS :

Exchange Server Windows Server Pris en charge Configuré par défaut
Exchange Server 2019 N’importe lequel Oui Oui (strict mode enabled)
Exchange Server 2016 N’importe lequel Oui Non
Exchange Server 2013 N’importe lequel Non S/O

Ces paramètres sont utilisés pour configurer le mode strict de renégociation TLS. Cela signifie que le serveur autorise uniquement les clients auxquels cette mise à jour de sécurité est appliquée pour configurer et renégocier des sessions TLS. Le serveur n’autorise pas les clients auxquels cette mise à jour de sécurité n’est pas appliquée à configurer la session TLS. Dans ce cas, le serveur met fin à ces demandes des clients.

De même, si cette mise à jour de sécurité est appliquée au client et que le client est en mode strict, le client peut configurer et renégocier des sessions TLS avec tous les serveurs pour lesquels cette mise à jour de sécurité est appliquée. Les clients ne peuvent pas configurer de sessions TLS avec des serveurs pour lesquels cette mise à jour de sécurité n’est pas appliquée. Le client ne peut pas aller de l’avant avec une tentative de négociation TLS avec ces serveurs.

Exécutez la commande suivante à partir d’une fenêtre PowerShell avec élévation de privilèges pour activer le mode strict de renégociation :

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

Le tableau suivant présente les combinaisons Exchange Server/Windows Server avec la configuration de suites de chiffrement recommandée par défaut :

Exchange Server Windows Server Pris en charge Configuré par défaut
Exchange Server 2019 N’importe lequel Oui Oui
Exchange Server 2016 N’importe lequel Oui Non
Exchange Server 2013 Windows Server 2012 (R2) Oui Non

Windows Server 2012 et Windows Server 2012 R2

Exécutez les commandes suivantes à partir d’une fenêtre PowerShell avec élévation de privilèges pour configurer les suites de chiffrement recommandées :

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 supérieur

Remarque

Il est possible de configurer les suites de chiffrement à l’aide d’un objet stratégie de groupe (GPO). Vous ne pouvez pas les configurer manuellement via Enable/Disable-TLSCipherSuite l’applet de commande si elles ont déjà été configurées via un objet de stratégie de groupe ou si la clé de Registre Functions existe déjà sous le chemin suivant.

HKLM :\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002

Exécutez les commandes suivantes à partir d’une fenêtre PowerShell avec élévation de privilèges pour configurer les suites de chiffrement recommandées.

La première tâche consiste à désactiver toutes les suites de chiffrement existantes :

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

La deuxième tâche consiste à activer uniquement les suites de chiffrement recommandées 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++
}

Désactiver les chiffrements et les hachages obsolètes

Le tableau suivant présente les combinaisons Exchange Server/Windows Server avec la configuration des chiffrements et des hachages obsolètes par défaut :

Exchange Server Windows Server Pris en charge Configuré par défaut
Exchange Server 2019 N’importe lequel Oui Oui
Exchange Server 2016 N’importe lequel Oui Non
Exchange Server 2013 Windows Server 2012 (R2) Oui Non

Exécutez la commande suivante à partir d’une fenêtre PowerShell avec élévation de privilèges pour désactiver les chiffrements et les hachages obsolètes :

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

Configurer la préférence de courbe elliptique

Le tableau suivant présente les combinaisons Exchange Server/Windows Server avec la configuration de préférence de courbe elliptique par défaut :

Exchange Server Windows Server Pris en charge Configuré par défaut
Exchange Server 2019 N’importe lequel Oui Oui
Exchange Server 2016 Windows Server 2016 Oui Non
Exchange Server 2013 N’importe lequel Non S/O

Remarque

Nous vous recommandons de désactiver la curve25519 courbe elliptique, car elle n’est pas disponible en mode FIPS. Pour plus d’informations, consultez : Courbes elliptiques TLS dans Windows 10 version 1607 et ultérieure

Exécutez la commande suivante à partir d’une fenêtre PowerShell avec élévation de privilèges pour configurer la préférence de courbe elliptique :

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

Validation de l’utilisation de TLS 1.2

Une fois QUE TLS 1.2 a été activé, il peut être utile de vérifier que votre travail a réussi et que le système est en mesure de négocier TLS 1.2 pour les connexions entrantes (serveur) et sortantes (client). Il existe quelques méthodes disponibles pour valider l’utilisation de TLS. Certaines d’entre elles sont décrites dans les sections suivantes.

De nombreux protocoles utilisés dans Exchange Server sont basés sur HTTP et par conséquent, traversent les processus IIS sur le serveur Exchange. MAPI/HTTP, Outlook Anywhere, services web Exchange, Exchange ActiveSync, REST, OWA & EAC, téléchargements de carnet d’adresses en mode hors connexion et découverte automatique sont des exemples de protocoles HTTP utilisés par Exchange Server.

Journaux IIS (Internet Information Services)

L’équipe IIS a ajouté des fonctionnalités pour Windows Server 2012 R2 ou version ultérieure pour journaliser les champs personnalisés liés aux versions et aux chiffrements du protocole de chiffrement. Nous vous recommandons de consulter le blog pour obtenir de la documentation sur la façon d’activer ces champs personnalisés et de commencer à analyser les journaux pour obtenir des informations sur les connexions entrantes dans votre environnement liées aux protocoles BASÉS sur HTTP.

Ces champs personnalisés IIS n’existent pas pour la version de Windows Server antérieure Windows Server 2012 R2. Votre équilibreur de charge ou les journaux de pare-feu peuvent fournir ces informations. Demandez conseil à vos fournisseurs pour déterminer si leurs journaux peuvent fournir ces informations.

Vérification de la version TLS à l’aide des outils de développement Microsoft Edge

Vous pouvez utiliser le Developer Tools, qui sont disponibles avec Microsoft Edge, pour case activée la version TLS utilisée pour établir une connexion sécurisée, lors de la connexion à Outlook sur le Web (OWA) ou au Centre Administration Exchange (ECP). Pour cela, procédez comme suit :

  1. Ouvrez le navigateur Microsoft Edge et établissez une connexion HTTPS à OWA ou ECP.
  2. Appuyez sur CTRL + SHIFT + I pour ouvrir le Developer Tools.
  3. Cliquez sur le + symbole dans le coin supérieur droit.
  4. Cliquez sur Security dans le menu déroulant.
  5. Vérifiez la version tls dans la Connection - secure connection settings section .

Capture d’écran montrant les outils de développement du navigateur Edge avec l’outil de sécurité, qui a été ajouté à la barre d’activité. Dans l’outil de sécurité, la section « Connexion - paramètres de connexion sécurisée » s’affiche et TLS 1.2 est mis en surbrillance.

En-têtes de message (Exchange Server 2016 ou version ultérieure)

Les données d’en-tête de message dans Exchange Server 2016 ou version ultérieure fournissent le protocole négocié et utilisé lorsque l’hôte d’envoi et de réception a échangé un message. Vous pouvez utiliser l’Analyseur d’en-tête de message pour obtenir une vue d’ensemble claire de chaque tronçon.

Remarque

Il existe une exception connue pour l’exemple d’en-têtes de message. Lorsqu’un client envoie un message en se connectant à un serveur à l’aide de SMTP authentifié (également appelé protocole de soumission du client SMTP), la version TLS dans les en-têtes de messages n’affiche pas la version TLS correcte utilisée par le client ou l’appareil d’un client. Microsoft étudie la possibilité d’ajouter ces informations dans une prochaine mise à jour.

Flux de messagerie via la journalisation SMTP

Les journaux SMTP de Exchange Server 2013 et versions ultérieures contiennent le protocole de chiffrement et d’autres informations relatives au chiffrement utilisées lors de l’échange d’e-mails entre deux systèmes.

Lorsque le serveur est le SMTP receiving system, recherchez dans Server value le journal en fonction de la version de TLS utilisée. Si le serveur est , SMTP sending systemrecherchez dans Client value le journal en fonction de la version de TLS utilisée.

Version TLS Valeur du serveur Valeur du 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 TLS1_2_CLIENT SP_PROT

L’exemple suivant recherche dans les fichiers journaux sur un serveur Exchange, qui exécute le rôle de boîte aux lettres, les connexions qui ont été établies à l’aide du protocole TLS 1.0 :

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

Exemple de recherche de fichiers journaux sur un serveur Exchange, qui exécute le rôle de transport edge, pour les connexions établies à l’aide du protocole TLS 1.1 :

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

POP et IMAP

Il n’existe aucune journalisation qui exposera la version du protocole de chiffrement utilisée pour les clients POP et IMAP. Pour capturer ces informations, vous devrez peut-être capturer une trace Netmon à partir de votre serveur ou inspecter le trafic à mesure qu’il transite par votre équilibreur de charge ou votre pare-feu où le pontage HTTPS a lieu.