Partager via


Exchange Server bonnes pratiques en matière de configuration TLS

Cette documentation décrit les étapes nécessaires pour configurer correctement des versions TLS spécifiques sur Microsoft Exchange Server. Il explique également comment optimiser les suites de chiffrement et les algorithmes de hachage utilisés par TLS. Une configuration TLS incorrecte peut entraîner divers problèmes lors de l’interaction avec Microsoft 365 ou d’autres systèmes qui nécessitent une certaine norme TLS minimale.

Vous trouverez plus d’informations sur les protocoles TLS dans la documentation sur le protocole transport layer security .

Conseil

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

Lisez attentivement, car certaines étapes ne peuvent être effectuées que sur des systèmes d’exploitation ou des versions Exchange Server spécifiques. Chaque section commence par une matrice indiquant si un paramètre est pris en charge et s’il a été préconfiguré à partir d’une certaine version Exchange Server, suivie d’étapes pour activer ou désactiver le protocole ou la fonctionnalité TLS spécifique.

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

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 ou TLS 1.3 uniquement ?
  • Les applications partenaires prennent-elles en charge, par exemple, une configuration TLS 1.2 ou TLS 1.3 uniquement ?
  • Le système d’exploitation prend-il en charge la dernière version du protocole TLS TLS 1.2 sur WinHTTP ?
  • Vos équilibreurs de charge prennent-ils en charge l’utilisation de TLS 1.2 ou TLS 1.3 ?
  • Vos applications de bureau, mobiles et de navigateur prennent-elles en charge TLS 1.2 ou TLS 1.3 ?
  • Les appareils tels que les imprimantes multi-fonctions prennent-ils en charge TLS 1.2 ou TLS 1.3 ?
  • 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 toutes les étapes que vous prenez pour passer à TLS 1.2 ou TLS 1.3 et d’abandonner les protocoles de sécurité plus anciens dans des labos 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)
  • Découverte automatique
  • Services Web Exchange (EWS)
  • REST (Exchange Server 2016/2019)
  • Utilisation de PowerShell par Exchange sur HTTPS
  • POP et IMAP

Configuration requise

La prise en charge de TLS 1.3 a été introduite avec Exchange Server mise à jour cumulative (CU) 2019 15 sur Windows Server 2022 et Windows Server 2025, à l’exception du protocole SMTP. La prise en charge de ce protocole sera ajoutée avec une prochaine mise à jour. La prise en charge de TLS 1.2 a été introduite 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 reçoivent 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 .NET Framework Schannel 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 CU13 ou version antérieure 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 sont utilisées)
Exchange Server 2013 N’importe lequel Oui Non (les valeurs par défaut du système d’exploitation sont utilisées)

La SystemDefaultTlsVersions valeur de Registre définit la version de protocole de sécurité par défaut 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.3, 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, notamment TLS 1.2 et TLS 1.3.

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

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.3

Le tableau suivant présente les combinaisons Exchange Server/Windows Server sur lesquelles TLS 1.3 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 CU15 Windows Server 2022/2025 Oui Oui (enabled)
Exchange Server 2019 CU15 Windows Server 2019 Non S/O
Exchange Server 2019 CU14 ou version antérieure N’importe lequel Non S/O
Exchange Server 2016 N’importe lequel Non S/O
Exchange Server 2013 N’importe lequel Non S/O

Activer TLS 1.3

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

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

Conformément à la norme RFC 8446 , TLS 1.3 utilise le même espace de suite de chiffrement que les versions précédentes de TLS. Toutefois, les suites de chiffrement TLS 1.3 sont définies différemment, spécifiant uniquement les chiffrements symétriques, et ne peuvent pas être utilisées pour TLS 1.2. De même, les suites de chiffrement pour TLS 1.2 et versions antérieures ne peuvent pas être utilisées avec TLS 1.3.

Exécutez la commande suivante à partir d’une fenêtre PowerShell avec élévation de privilèges pour configurer les suites de chiffrement TLS 1.3 :

Enable-TlsCipherSuite -Name TLS_AES_256_GCM_SHA384 -Position 0
Enable-TlsCipherSuite -Name TLS_AES_128_GCM_SHA256 -Position 1

Désactiver TLS 1.3

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

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

Exécutez la commande suivante à partir d’une fenêtre PowerShell avec élévation de privilèges pour supprimer les suites de chiffrement TLS 1.3 :

Remove-TlsCipherSuite -Name TLS_AES_256_GCM_SHA384 -ErrorAction SilentlyContinue
Remove-TlsCipherSuite -Name TLS_AES_128_GCM_SHA256 -ErrorAction SilentlyContinue

É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 explicitement 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 explicitement 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 explicitement 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

Étapes de configuration du mode strict de renégociation TLS

Le mode tls strict est une fonctionnalité de sécurité qui garantit que seuls les clients disposant des mises à jour de sécurité nécessaires peuvent établir et renégocier des sessions TLS avec le 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 (enabled)
Exchange Server 2016 N’importe lequel Oui Non
Exchange Server 2013 N’importe lequel Non S/O

Activer le mode strict de renégociation TLS

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

Désactiver le mode strict de renégociation TLS

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

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

Valider l’utilisation de TLS 1.2 ou TLS 1.3

Une fois QUE TLS 1.2 ou TLS 1.3 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 ou TLS 1.3 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.

Journalisation IIS

L’équipe IIS (Internet Information Services) 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 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 Windows Server version 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.

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 .

En-têtes de message

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.

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 d’envoi 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. Microsoft étudie la possibilité d’ajouter ces informations dans une prochaine mise à jour.

Journalisation SMTP

Les journaux SMTP dans Exchange Server 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

Remarque

La prise en charge de SMTP TLS 1.3 sera incluse dans une prochaine mise à jour Exchange 2019 CU15.

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 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 expose 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.

Bonnes pratiques relatives aux algorithmes de chiffrement et de hachage

Les étapes de cette section peuvent être utilisées pour configurer Exchange Server 2016 avec le même ensemble d’algorithmes de chiffrement et de hachage que Exchange Server 2019. Ces étapes ne sont pas nécessaires pour Exchange Server 2019, car elles sont déjà fournies avec une configuration d’algorithme de hachage et de chiffrement préconfigurés.

En tant que prérequis, vous devez d’abord configurer TLS 1.2, puis désactiver TLS 1.0 et TLS 1.1. Envisagez d’appliquer les paramètres suivants séparément de la désactivation de TLS 1.0 et TLS 1.1 pour isoler les problèmes de configuration avec les clients problématiques.

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

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.

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 à l’aide des applets de commande Enable-TlsCipherSuite ou Disable-TLSCipherSuite si elles ont déjà été configurées via l’objet de stratégie de groupe ou si l’entrée de Functions Registre existe déjà sous le chemin d’accès HKLM:\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002 .

Tout d’abord, désactivez toutes les suites de chiffrement :

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

Ensuite, réactivez uniquement les suites de chiffrement TLS 1.2 recommandées :

$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

Exécutez la commande suivante à partir d’une fenêtre PowerShell avec élévation de privilèges pour désactiver explicitement les chiffrements et 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

Il est recommandé de désactiver la curve25519 courbe elliptique, car elle n’est pas disponible en mode FIPS. Vous trouverez plus d’informations dans la documentation TLS Elliptic Curves 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