bewährte Methoden für die Exchange Server der TLS-Konfiguration
In dieser Dokumentation werden die erforderlichen Schritte zum ordnungsgemäßen Konfigurieren (Aktivieren oder Deaktivieren) bestimmter TLS-Versionen unter Exchange Server 2013, Exchange Server 2016 und Exchange Server 2019 beschrieben. In diesem Artikel wird auch erläutert, wie Sie die von TLS verwendeten Verschlüsselungssammlungen und Hashalgorithmen optimieren. Wenn TLS nicht ordnungsgemäß konfiguriert ist, können verschiedene Probleme bei der Interaktion mit Microsoft 365 oder anderen Systemen auftreten, die so konfiguriert sind, dass sie einen bestimmten TLS-Mindeststandard erfordern.
Wenn Sie mehr über die TLS- (und SSL)-Protokolle erfahren möchten, lesen Sie den Artikel Transport Layer Security-Protokoll .
Wichtig
Lesen Sie sorgfältig, da einige der hier beschriebenen Schritte nur unter bestimmten Betriebssystemen oder bestimmten Exchange Server Versionen ausgeführt werden können.
Am Anfang jedes Abschnitts befindet sich eine Matrix, die anzeigt, ob eine Einstellung unterstützt wird oder nicht und ob sie bereits von einer bestimmten Exchange Server Version vorkonfiguriert wurde.
Zu berücksichtigende Punkte vor dem Deaktivieren einer TLS-Version
Tipp
Sie können das Exchange HealthChecker-Skript verwenden, um die aktuelle TLS-Konfiguration Ihres Exchange-Servers zu überprüfen.
Stellen Sie sicher, dass jede Anwendung die TLS-Versionen unterstützt, die weiterhin aktiviert sind. Überlegungen wie (aber nicht beschränkt auf):
- Unterstützen Ihre Domänencontroller und globalen Katalogserver beispielsweise eine reine TLS 1.2-Konfiguration?
- Unterstützen Partneranwendungen (z. B. SharePoint, Lync, Skype for Business usw.) beispielsweise eine reine TLS 1.2-Konfiguration?
- Haben Sie ältere Windows 7-Desktops mit Outlook aktualisiert, um TLS 1.2 über WinHTTP zu unterstützen?
- Unterstützen Ihre Lastenausgleichsmodule die Verwendung von TLS 1.2?
- Unterstützen Ihre Desktop-, Mobil- und Browseranwendungen TLS 1.2?
- Unterstützen Geräte wie Multifunktionsdrucker TLS 1.2?
- Unterstützen Ihre drittanbieter- oder benutzerdefinierten internen Anwendungen, die in Exchange Server oder Microsoft 356 integriert sind, eine starke TLS-Implementierung?
Daher wird dringend empfohlen, dass alle Schritte, die Sie für den Übergang zu TLS 1.2 und von älteren Sicherheitsprotokollen ausführen, zuerst in Labs ausgeführt werden, die Ihre Produktionsumgebungen simulieren, bevor Sie sie langsam in der Produktion einführen.
Die Schritte zum Deaktivieren einer bestimmten TLS-Version, wie unten beschrieben, gelten für die folgenden Exchange Server Funktionen:
- Simple Mail Transport Protocol (SMTP)
- Outlook-Clientkonnektivität (Outlook Anywhere/MAPI/HTTP)
- Exchange Active Sync (EAS)
- Outlook im Web (OWA)
- Exchange Admin Center (EAC) und Exchange Systemsteuerung (ECP)
- Autoermittlung
- Exchange-Webdienste (Exchange Web Services, EWS)
- REST (Exchange Server 2016/2019)
- Verwenden von PowerShell durch Exchange über HTTPS
- POP und IMAP
Voraussetzungen
Tls 1.2-Unterstützung wurde mit Exchange Server 2013 CU19 und Exchange Server 2016 CU8 hinzugefügt. Exchange Server 2019 unterstützt standardmäßig TLS 1.2.
Exchange Server kann nicht ohne Windows Server ausgeführt werden. Daher ist es wichtig, dass die neuesten Betriebssystemupdates installiert sind, um eine stabile und sichere TLS-Implementierung auszuführen.
Es ist auch erforderlich, dass die neueste Version von .NET Framework und die zugehörigen Patches vorhanden sind, die von Ihrem CU unterstützt werden.
Stellen Sie basierend auf Ihrem Betriebssystem sicher, dass die folgenden Updates ebenfalls vorhanden sind (sie sollten installiert werden, wenn Ihr Server unter Windows Updates aktuell ist):
Wenn Ihr Betriebssystem Windows Server 2012 oder Windows Server 2012 R2 ist, müssen KB3161949 und KB2973337 installiert werden, bevor TLS 1.2 aktiviert werden kann.
Warnung
der erweiterte Support für Windows Server 2012 und Windows Server 2012 R2 wurde am 10. Oktober 2023 beendet. Diese Server erhalten keine Windows-Sicherheit Updates ohne ESU mehr. Es wird dringend empfohlen, so bald wie möglich zu einer unterstützten Version zu migrieren!
Stellen Sie sicher, dass Sie die Exchange Server neu starten, nachdem die TLS-Konfiguration angewendet wurde. Er wird aktiv, nachdem der Server neu gestartet wurde.
Vorbereiten .NET Framework zum Erben von Standardwerten von Schannel
Die folgende Tabelle zeigt die Exchange Server/Windows Server-Kombinationen mit der Standardkonfiguration .NET Framework Schannel-Vererbung:
Exchange Server | Windows Server | Unterstützt | Standardmäßig konfiguriert |
---|---|---|---|
Exchange Server 2019 CU14 oder höher | Beliebig | Ja | Ja (nur Neuinstallationen) |
Exchange Server 2019 | Beliebig | Ja | Teilweise (SchUseStrongCrypto muss manuell konfiguriert werden) |
Exchange Server 2016 | Beliebig | Ja | Nein (Betriebssystemstandardeinstellungen werden verwendet) |
Exchange Server 2013 | Beliebig | Ja | Nein (Betriebssystemstandardeinstellungen werden verwendet) |
Der SystemDefaultTlsVersions
Registrierungswert definiert, welche Standardversionen des Sicherheitsprotokolls von .NET Framework 4.x verwendet werden. Wenn der Wert auf 1
festgelegt ist, erbt .NET Framework 4.x seine Standardwerte von den Windows Secure Channel (Schannel)DisabledByDefault
-Registrierungswerten. Wenn der Wert nicht definiert ist, verhält er sich so, als wäre der Wert auf 0
festgelegt.
Die starke Kryptografie (konfiguriert durch den SchUseStrongCrypto
Registrierungswert) verwendet sicherere Netzwerkprotokolle (TLS 1.2 und TLS 1.1) und blockiert Protokolle, die nicht sicher sind.
SchUseStrongCrypto
betrifft nur Clientverbindungen (ausgehende Verbindungen) in Ihrer Anwendung. Durch die Konfiguration von .NET Framework 4.x, um die Werte von Schannel zu erben, erhalten wir die Möglichkeit, die neuesten Versionen von TLS zu verwenden, die vom Betriebssystem unterstützt werden, einschließlich TLS 1.2.
Aktivieren der .NET Framework 4.x Schannel-Vererbung
Führen Sie die folgenden Befehle in einem PowerShell-Fenster mit erhöhten Rechten aus, um die .NET Framework 4.x Schannel-Vererbung zu konfigurieren:
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
Aktivieren der .NET Framework 3.5 Schannel-Vererbung
Hinweis
Exchange Server 2013 und höher ist diese Einstellung nicht erforderlich. Es wird jedoch empfohlen, sie mit den .NET 4.x-Einstellungen identisch zu konfigurieren, um eine konsistente Konfiguration sicherzustellen.
Führen Sie die folgenden Befehle in einem PowerShell-Fenster mit erhöhten Rechten aus, um die .NET Framework 3.5 Schannel-Vererbung zu konfigurieren:
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
Schritte zum Konfigurieren von TLS 1.2
In der folgenden Tabelle sind die Exchange Server/Windows Server-Kombinationen aufgeführt, für die TLS 1.2 unterstützt wird. Die Tabelle enthält auch die Standardkonfiguration:
Exchange Server | Windows Server | Unterstützt | Standardmäßig konfiguriert |
---|---|---|---|
Exchange Server 2019 | Any | Ja | Ja (enabled ) |
Exchange Server 2016 | Any | Ja | Nein |
Exchange Server 2013 | Any | Ja | Nein |
Aktivieren von TLS 1.2
Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um TLS 1.2 für Client- und Serververbindungen zu aktivieren:
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
Deaktivieren von TLS 1.2
Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um TLS 1.2 für Client- und Serververbindungen zu deaktivieren:
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
Schritte zum Konfigurieren von TLS 1.1
In der folgenden Tabelle sind die Exchange Server/Windows Server-Kombinationen aufgeführt, für die TLS 1.1 unterstützt wird. Die Tabelle enthält auch die Standardkonfiguration:
Exchange Server | Windows Server | Unterstützt | Standardmäßig konfiguriert |
---|---|---|---|
Exchange Server 2019 | Beliebig | Ja | Ja (disabled ) |
Exchange Server 2016 | Beliebig | Ja | Nein |
Exchange Server 2013 | Beliebig | Ja | Nein |
Aktivieren von TLS 1.1
Hinweis
Die Microsoft TLS 1.1-Implementierung weist keine bekannten Sicherheitsrisiken auf. Aufgrund des Potenzials für zukünftige Protokoll downgrade-Angriffe und andere TLS-Sicherheitsrisiken wird jedoch empfohlen, TLS 1.1 sorgfältig zu planen und zu deaktivieren. Wenn Sie nicht sorgfältig planen, kann dies dazu führen, dass die Konnektivität für Clients verloren geht.
Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um TLS 1.1 für Client- und Serververbindungen zu aktivieren:
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
Deaktivieren von TLS 1.1
Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um TLS 1.1 für Client- und Serververbindungen zu deaktivieren:
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
Schritte zum Konfigurieren von TLS 1.0
In der folgenden Tabelle sind die Exchange Server/Windows Server-Kombinationen aufgeführt, für die TLS 1.0 unterstützt wird. Die Tabelle enthält auch die Standardkonfiguration:
Exchange Server | Windows Server | Unterstützt | Standardmäßig konfiguriert |
---|---|---|---|
Exchange Server 2019 | Any | Ja | Ja (disabled ) |
Exchange Server 2016 | Beliebig | Ja | Nein |
Exchange Server 2013 | Beliebig | Ja | Nein |
Aktivieren von TLS 1.0
Hinweis
Die Implementierung von Microsoft TLS 1.0 hat keine bekannten Sicherheitsschwachstellen. Aufgrund des Potenzials für zukünftige Protokolldowngradeangriffe und andere TLS-Sicherheitsrisiken wird jedoch empfohlen, TLS 1.0 sorgfältig zu planen und zu deaktivieren. Wenn Sie nicht sorgfältig planen, kann dies dazu führen, dass die Konnektivität für Clients verloren geht.
Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um TLS 1.0 für Client- und Serververbindungen zu aktivieren:
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
Deaktivieren von TLS 1.0
Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um TLS 1.0 für Client- und Serververbindungen zu deaktivieren:
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
Bewährte Methoden für Verschlüsselungs- und Hashalgorithmen
Wichtig
Die in diesem Abschnitt beschriebenen Schritte sind optional für die zuvor beschriebenen Schritte. Es ist erforderlich, TLS 1.2 zu konfigurieren und TLS 1.0 und 1.1 vollständig zu deaktivieren, bevor Sie die nächsten Schritte ausführen.
Erwägen Sie, diese Einstellungen separat anzuwenden, um TLS 1.0 und TLS 1.1 zu deaktivieren, um Konfigurationsprobleme mit problematischen Clients zu isolieren.
Konfigurieren des strikten Modus für client- und server-TLS-Neuverhandlung
In der folgenden Tabelle sind die Exchange Server/Windows Server-Kombinationen mit der Standardmäßigen Konfiguration der TLS-Neuverhandlung im strict-Modus aufgeführt:
Exchange Server | Windows Server | Unterstützt | Standardmäßig konfiguriert |
---|---|---|---|
Exchange Server 2019 | Any | Ja | Ja (strict mode enabled ) |
Exchange Server 2016 | Beliebig | Ja | Nein |
Exchange Server 2013 | Beliebig | Nein | Nicht zutreffend |
Diese Einstellungen werden verwendet, um den Strict-Modus für die TLS-Neuverhandlung zu konfigurieren. Dies bedeutet, dass der Server nur clients erlaubt, auf die dieses Sicherheitsupdate angewendet wird, TLS-Sitzungen einzurichten und neu auszuhandeln. Der Server lässt die Clients, auf die dieses Sicherheitsupdate angewendet wird, nicht zu, die TLS-Sitzung einzurichten. In diesem Fall beendet der Server solche Anforderungen von den Clients.
Wenn dieses Sicherheitsupdate auf den Client angewendet wird und sich der Client im strict-Modus befindet, kann der Client TLS-Sitzungen mit allen Servern einrichten und neu aushandeln, für die dieses Sicherheitsupdate angewendet wird. Die Clients können überhaupt keine TLS-Sitzungen mit Servern einrichten, auf die dieses Sicherheitsupdate nicht angewendet wird. Der Client kann mit einem TLS-Aushandlungsversuch mit solchen Servern nicht fortfahren.
Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um den Strict-Modus der Neuverhandlung zu aktivieren:
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
Aktivieren empfohlener Verschlüsselungssammlungen
In der folgenden Tabelle sind die Exchange Server/Windows Server-Kombinationen mit der standardmäßig empfohlenen Verschlüsselungssammlungskonfiguration aufgeführt:
Exchange Server | Windows Server | Unterstützt | Standardmäßig konfiguriert |
---|---|---|---|
Exchange Server 2019 | Any | Ja | Ja |
Exchange Server 2016 | Beliebig | Ja | Nein |
Exchange Server 2013 | Windows Server 2012 (R2) | Ja | Nein |
Windows Server 2012 und Windows Server 2012 R2
Führen Sie die folgenden Befehle in einem PowerShell-Fenster mit erhöhten Rechten aus, um die empfohlenen Verschlüsselungssammlungen zu konfigurieren:
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 oder höher
Hinweis
Es ist möglich, die Verschlüsselungssammlungen mithilfe eines Gruppenrichtlinie Object (GPO) zu konfigurieren. Sie können sie nicht manuell über Enable/Disable-TLSCipherSuite
das Cmdlet konfigurieren, wenn sie bereits über das Gruppenrichtlinienobjekt konfiguriert wurden oder der Functions
Registrierungsschlüssel bereits unter dem folgenden Pfad vorhanden ist: HKLM:\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002
Führen Sie die folgenden Befehle in einem PowerShell-Fenster mit erhöhten Rechten aus, um die empfohlenen Verschlüsselungssammlungen zu konfigurieren.
Die erste Aufgabe besteht darin, alle vorhandenen Verschlüsselungssammlungen zu deaktivieren:
foreach ($suite in (Get-TLSCipherSuite).Name) {
if (-not([string]::IsNullOrWhiteSpace($suite))) {
Disable-TlsCipherSuite -Name $suite -ErrorAction SilentlyContinue
}
}
Die zweite Aufgabe besteht darin, nur die empfohlenen TLS 1.2-Verschlüsselungssammlungen zu aktivieren:
$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++
}
Deaktivieren veralteter Verschlüsselungen und Hashes
In der folgenden Tabelle sind die Exchange Server/Windows Server-Kombinationen mit der Standardkonfiguration für veraltete Verschlüsselungen und Hashes aufgeführt:
Exchange Server | Windows Server | Unterstützt | Standardmäßig konfiguriert |
---|---|---|---|
Exchange Server 2019 | Any | Ja | Ja |
Exchange Server 2016 | Beliebig | Ja | Nein |
Exchange Server 2013 | Windows Server 2012 (R2) | Ja | Nein |
Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um veraltete Verschlüsselungen und Hashes zu deaktivieren:
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
Konfigurieren der Einstellung für elliptische Kurve
In der folgenden Tabelle sind die Exchange Server/Windows Server-Kombinationen mit der Standardkonfiguration für elliptische Kurven aufgeführt:
Exchange Server | Windows Server | Unterstützt | Standardmäßig konfiguriert |
---|---|---|---|
Exchange Server 2019 | Any | Ja | Ja |
Exchange Server 2016 | Windows Server 2016 | Ja | Nein |
Exchange Server 2013 | Beliebig | Nein | Nicht zutreffend |
Hinweis
Es wird empfohlen, die curve25519
elliptische Kurve zu deaktivieren, da sie im FIPS-Modus nicht verfügbar ist. Weitere Informationen finden Sie unter TLS Elliptic Curves in Windows 10 Version 1607 und höher
Führen Sie den folgenden Befehl in einem PowerShell-Fenster mit erhöhten Rechten aus, um die Einstellung für elliptische Kurve zu konfigurieren:
Disable-TlsEccCurve -Name "curve25519"
Enable-TlsEccCurve -Name "NistP384" -Position 0
Enable-TlsEccCurve -Name "NistP256" -Position 1
Überprüfen der Verwendung von TLS 1.2
Nachdem TLS 1.2 aktiviert wurde, kann es hilfreich sein, zu überprüfen, ob Ihre Arbeit erfolgreich war und das System TLS 1.2 für eingehende (Server-)Verbindungen und ausgehende (Client)-Verbindungen aushandeln kann. Es stehen einige Methoden zur Überprüfung der TLS-Verwendung zur Verfügung. Einige davon werden in den folgenden Abschnitten erläutert.
Viele Protokolle, die in Exchange Server verwendet werden, sind HTTP-basiert und durchlaufen daher die IIS-Prozesse auf dem Exchange-Server. MAPI/HTTP, Outlook Anywhere, Exchange Web Services, Exchange ActiveSync, REST, OWA & EAC, Offlineadressbuchdownloads und AutoErmittlung sind Beispiele für HTTP-basierte Protokolle, die von Exchange Server verwendet werden.
Iis-Protokolle (Internet Information Services)
Das IIS-Team hat funktionen für Windows Server 2012 R2 oder höher hinzugefügt, um benutzerdefinierte Felder im Zusammenhang mit Verschlüsselungsprotokollversionen und Verschlüsselungsverfahren zu protokollieren. Es wird empfohlen, den Blog zu lesen, um zu erfahren, wie Sie diese benutzerdefinierten Felder aktivieren und mit der Analyse von Protokollen beginnen, um Informationen zu eingehenden Verbindungen in Ihrer Umgebung im Zusammenhang mit HTTP-basierten Protokollen zu finden.
Diese benutzerdefinierten IIS-Felder sind für Windows Server-Versionen vor Windows Server 2012 R2 nicht vorhanden. Ihre Load Balancer- oder Firewallprotokolle können diese Informationen möglicherweise bereitstellen. Bitten Sie Ihre Anbieter um Anleitungen, um festzustellen, ob deren Protokolle diese Informationen enthalten können.
Überprüfen der TLS-Version mithilfe der Microsoft Edge-Entwicklertools
Sie können die Developer Tools
mit Microsoft Edge verfügbaren verwenden, um die TLS-Version zu überprüfen, die zum Herstellen einer sicheren Verbindung verwendet wurde, wenn Sie eine Verbindung mit Outlook im Web (OWA) oder dem Exchange Admin Center (ECP) herstellen. Gehen Sie dazu wie folgt vor:
- Öffnen Sie den Microsoft Edge-Browser, und stellen Sie eine HTTPS-Verbindung mit OWA oder ECP her.
- Drücken Sie
CTRL + SHIFT + I
, um dieDeveloper Tools
zu öffnen. - Klicken Sie auf das
+
Symbol in der oberen rechten Ecke. - Klicken Sie im Dropdownmenü auf
Security
. - Überprüfen Sie die TLS-Version im
Connection - secure connection settings
Abschnitt.
Nachrichtenheader (Exchange Server 2016 oder höher)
Nachrichtenheaderdaten in Exchange Server 2016 oder höher enthalten das ausgehandelte und verwendete Protokoll, wenn der sendende und empfangende Host eine E-Mail ausgetauscht hat. Sie können das Message Header Analyzer verwenden, um einen klaren Überblick über jeden Hop zu erhalten.
Hinweis
Es gibt eine bekannte Ausnahme für das Beispiel für Nachrichtenheader. Wenn ein Client eine Nachricht durch Herstellen einer Verbindung mit einem Server über authentifizierte SMTP (auch als SMTP-Clientübermittlungsprotokoll bezeichnet) sendet, zeigt die TLS-Version in den Nachrichtenheadern nicht die richtige TLS-Version an, die vom Client oder Gerät eines Kunden verwendet wird. Microsoft untersucht die Möglichkeit, diese Informationen in einem zukünftigen Update hinzuzufügen.
Nachrichtenfluss über SMTP-Protokollierung
SMTP-Protokolle in Exchange Server 2013 und höher enthalten das Verschlüsselungsprotokoll und andere verschlüsselungsbezogene Informationen, die während des E-Mail-Austauschs zwischen zwei Systemen verwendet werden.
Wenn der Server der SMTP receiving system
ist, suchen Sie im Protokoll nach der Server value
verwendeten TLS-Version. Wenn der Server der SMTP sending system
ist, suchen Sie im Protokoll nach der Client value
verwendeten TLS-Version.
TLS-Version | Serverwert | Clientwert |
---|---|---|
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 |
Im folgenden Beispiel werden die Protokolldateien auf einem Exchange-Server, auf dem die Postfachrolle ausgeführt wird, nach Verbindungen gesucht, die mithilfe des TLS 1.0-Protokolls hergestellt wurden:
Select-String -Path (((Get-TransportService -Identity $env:COMPUTERNAME).ReceiveProtocolLogPath).PathName.Replace("Hub","FrontEnd")+"\*.log") "SP_PROT_TLS1_0"
Beispiel für die Suche nach Protokolldateien auf einem Exchange-Server, auf dem die Edge-Transportrolle ausgeführt wird, für Verbindungen, die mit dem TLS 1.1-Protokoll hergestellt wurden:
Select-String -Path (((Get-TransportService -Identity $env:COMPUTERNAME).ReceiveProtocolLogPath).PathName+"\*.log") "SP_PROT_TLS1_1"
POP und IMAP
Es ist keine Protokollierung vorhanden, die die Verschlüsselungsprotokollversion verfügbar macht, die für POP- und IMAP-Clients verwendet wird. Um diese Informationen zu erfassen, müssen Sie möglicherweise eine Netmon-Ablaufverfolgung von Ihrem Server erfassen oder den Datenverkehr untersuchen, der durch Ihren Lastenausgleich oder ihre Firewall fließt, in der HTTPS-Bridging stattfindet.