Tags: Windows 11, Verschlüsselung
Nachdem Microsoft die veralteten und unsicheren Versionen von Transport Layer Security (TLS) schon in anderen Produkten deaktiviert hat, kommt nun das Betriebssystem an die Reihe. Ab der nächsten Windows 11 Preview blockieren alle künftigen Releases TLS 1.0 und TLS 1.1. Wenn notwendig, kann man diese Versionen vorerst noch reaktivieren.
Exchange Online unterstützt TLS 1.0 und 1.1 schon seit längerer Zeit nicht mehr und seit Anfang dieses Jahres ist mit POP und IMAP auch bei den letzten Protokollen Schluss. Das Gleiche gilt für die anderen Produkte von Microsoft 365. Im Oktober 2021 wurde WSUS auf TLS 1.2 umgestellt, so dass ältere Versionen keine Updates mehr beziehen können.
Probleme für ältere Programme mit fester TLS-Version
Das Standardverhalten von Windows besteht darin, dass beide Seiten einer Verbindung die höchstmögliche Version von TLS aushandeln. Die meisten Anwendungen unterstützen mittlerweile TLS 1.2 oder höher und nutzen Schannel über HTTP und .NET-APIs.
Einige ältere Programme rufen das Security Support Provider Interface (SSPI) jedoch direkt auf und legen dabei auch gleich die TLS-Version fest. Dabei handelt es dann oft um 1.0 oder 1.1. Sobald Microsoft diese veralteten Protokolle in Windows deaktiviert, scheitert eine solche Software.
Zu den bekannten Kandidaten gehören nicht nur ältere Ausführungen des Safari-Browsers oder von wie LANGuard, sondern auch SQL Server 2014 und 2016.
Ist TLS 1.0 / 1.1 abgeschaltet, dann generieren diese Programme einen Log-Eintrag mit der EventID 36871. Diesen kann man mit PowerShell so abfragen:
Get-EventLog -Source schannel -LogName system -InstanceId 36871
TLS 1.0 und 1.1 vorübergehend reaktivieren
Sobald Windows die alten Protokollversionen blockiert und einzelne Anwendungen das Event 36871 generieren, wird man TLS 1.0 oder 1.1 erneut aktivieren wollen, bis ein Update der Legacy-Software verfügbar und installiert ist.
Microsoft sieht für diesen Zweck den Eintrag Enabled mit dem Wert 1 in die Registry vor, und zwar unter
HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client
Für andere TLS-Versionen und die Server-Seite passt man den Pfad entsprechend an, also zum Beispiel
HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server
Eintrag mit PowerShell hinzufügen
Um den Eintrag etwa für TLS 1.0 hinzufügen, könnte man in PowerShell so vorgehen:
Um sich anschließend einen Überblick über die aktuelle Konfiguration zu verschaffen, kann man diesen PowerShell-Befehl nutzen:
Microsoft rät davon ab, dies als Dauerlösung anzusehen, weil über kurz oder lang der Support für das alte Protokoll aus dem OS entfernt wird. Welche TLS-Versionen auf welchen Releases von Windows aktiviert und vorhanden sind, kann man dieser Tabelle entnehmen.
TLS-Version für PowerShell festlegen
PowerShell richtet sich nach der TLS-Konfiguration für .NET. Auf älteren Versionen von Windows, etwa auf Server 2016, lautet die Vorgabe immer noch auf "SSL3, TLS", wie man mit
[Net.ServicePointManager]::SecurityProtocol
feststellen kann.
Diese Einstellung führt etwa beim Aufruf von Invoke-WebRequest zum berüchtigten Fehler "Es konnte kein geschützter SSL/TLS-Kanal erstellt werden", wenn die Gegenstelle TLS 1.0 nicht mehr akzeptiert.
Behelfen kann man sich in dieser Situation durch Zuweisen neuerer Protokollversionen:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]'Tls11,Tls12'
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
- VMware Workstation und Player 17: offizieller Support für Windows 11 und Server 2022, schnelle VM-Verschlüsselung
- Windows 11 September-Update: Integration von KI, neue Win365- und Authentifizierungs-Funktionen
- WSL 2.0.0: Gleiche Netzwerkkonfiguration für Windows und Linux, Verkleinern der VHDX, RAM-Zurückgewinnung
- Neue Policies: SMB NTLM blockieren, minimale SMB-Version erzwingen
- Windows 11 Taskbar: Icon für Chat entfernen, Suchfeld per Gruppenrichtlinie anpassen
Weitere Links