TLS 1.2 Enforcement

Microsoft erzwingt eine sichere Verschlüsselung über TLS 1.2 für Exchange Online, ADSync, Yammer und andere Dienste in der Cloud. Frühere Verfahren wie SSL3/TLS 1.0 dürfen als kompromittiert gelten und auch TLS 1.1 ist nicht mehr sicher genug. Der im Jahr 2008 veröffentlichte TLS 1.2-Standard sollten alle neueren Systeme anbieten und unterstützen.

Dennoch werden laut Microsoft immer noch viele Verbindungen per TLS 1.1 und früher aufgebaut. Dennoch gehen Sicherheit und Compliance vor, so dass diese System Verbindungsprobleme bekommen könnten. Sie sollten daher prüfen und ggfls. handeln. Diese Vorgaben sollten Sie auch für eigene Server umsetzen.

BSI: „Der Mindeststandard TLS fordert konkret den Einsatz von TLS 1.2 in Kombination mit Perfect Forward Secrecy (PFS). Alternativ kann auch bereits die Version TLS 1.3 mit PFS genutzt werden.“
Quelle: Mindeststandard des BSI zur Verwendung von Transport Layer Security (TLS) https://www.bsi.bund.de/DE/Themen/Oeffentliche-Verwaltung/Mindeststandards/TLS-Protokoll/TLS-Protokoll_node.html 

Risikobewertung

Der Zwang zu TLS 1.2 kann nur pro Server und Services und nicht pro Tenant oder Kunde vorgegeben werden. Microsoft kann in der Cloud daher nicht eine "Ausnahme" für ihre Firma machen und wird das schon laufende Rollout sicher nicht stoppen. Sie müssen also sicherstellen, dass ...

  • .. alle Clients TLS 1.2 unterstützen und anbieten
    Es gibt durchaus Konfigurationen bei denen die SSL-Libraries (schannel, OpenSSL etc.) schon TLS 1.2 "könnten" aber die Software die Verwendung nicht anfordert, eine Systemeinstellung TLS 1.2 nicht per Default einschließt oder sogar verbietet.
  • Alle Firewalls/ProxyServer TLS 1.2 umsetzen
    Es reicht hier, wenn der Proxy nach extern TLS 1.2 macht und eine Firewall den Handshake nicht blockiert oder modifiziert.

Sie müssen auf jeden Fall die Verbindungen ermitteln die heute noch nicht TLS 1.2 verwenden, obwohl Office 365 dies schon lange anbietet. Quellen hierfür sind:

Wenn Sie schon am Thema TLS 1.2 arbeiten, dann sollten Sie auch überlegen, im gleichen Zug intern den Zwang zu konfigurieren.

TLS-Verwendung analysieren

Sie fangen damit an, dass die internen Server TLS 12 anbieten und sie dann überwachen, wer trotzdem noch TLS 1.1 oder früher verwenden. Dazu müssen Sie natürlich intern entsprechende Quellen anzapfen, z.B.:

Zuerst "ertüchtigen" sie allen Client für TLS 1.2, dann schauen Sie nach, wer noch übrig bleibt ehe Sie dann TLS 1.2 erzwingen und die alten Verfahren unterbinden.

„Der Mindeststandard TLS fordert konkret den Einsatz von TLS 1.2 in Kombination mit Perfect Forward Secrecy (PFS). Alternativ kann auch bereits die Version TLS 1.3 mit PFS genutzt werden.“
Quelle: Mindeststandard des BSI zur Verwendung von Transport Layer Security (TLS) https://www.bsi.bund.de/DE/Themen/Oeffentliche-Verwaltung/Mindeststandards/TLS-Protokoll/TLS-Protokoll_node.html

Immer mehr OnPremises-Dienste, z.B. Exchange 2019, SQL 2019 erzwingen schon TLS 1.2 und daher sollten alle anderen Server zumindest TLS 1.2 aktiviert haben. Exchange 2013/2016 können mittlerweile auch TLS 1.2 aber es muss in erster Stufe aktiviert und später erzwungen werden.

TLS 1.2 und Microsoft 365

Microsoft macht ernst und weiter unten haben ich für verschiedene Protokolle und Dienste den Status hinsichtlich TLS 1.2 Zwang dokumentiert. Aber die Story ist nicht immer problemlos. Ursprünglich war das Update schon im Dez 2017 angekündigt und dann immer wieder verschoben worden. Hier nur ein Beispiel:

Der TLS 1.2-Zwang mit Office 365 wurde mehrfach verschoben. Aus der Planung 1. März 2018 wurde dann der 15. Okt 2020)

https://support.microsoft.com/en-us/help/4057306/preparing-for-tls-1-2-in-office-365
https://admin.microsoft.com/AdminPortal/home#/MessageCenter?id=MC218794

Mittlerweile haben wir April 2021 und es ist noch nicht überall aktiv. Aber nun wird es Ernst und viele Exchange Online Server haben nach meinen Checks nur noch TLS 1.2 aktiviert.

Windows 7 nutzt per Default nicht TLS 1.2. Wenn Outlook 2020-2016 per Autodiscover auf einen Server trifft, der nur TLS 1.2 anbietet, funktioniert Autodiscover nicht. Aktivieren Sie TLS auf dem WinHTTP-Stack mit REGEDIT auf dem Client.

Microsoft ist nicht der erste Anbieter, der TLS 1.2 erzwingt:

Ich bin sicher, dass auch andere Firmen, speziell Banken, sehr zügig nachziehen.

Testen

Am einfachsten für Anwender ist der Aufruf einer Webseite. Der Browser verbindet sich mit dem Server und ein entsprechend konfigurierter Server kann auswerten, welche Verschlüsselungsverfahren der Client anbietet. Wenn der Browser keinen eigenen TLS-Stack mitbringt, sondern die vom Betriebssystem bereitgestellten Dienste nutzt, dann können Sie mit diesen Seiten schnell prüfen, welche Verfahren ihr Browser kann.

Das hilft natürlich für andere Protokolle wie z.B. FTPS, SSH, IMAP4S. Diese Dienste nutzen nicht WinHTTP sondern SCANNEL

Tod durch TLS 1.2

TLS 1.2 stellt höhere Anforderungen an die CPU und erfordert die Implementierung in der Software. Solange eine Software vom Hersteller noch gepflegt wird, könnte ein Update auch TLS 1.2-Support bringen. Es gibt aber sehr viele Produkte, die nicht mehr in der Wartung sind und aufgrund des Alters auch noch nichts von TLS 1.2 wissen. Solange Sie die Server noch selbst betreiben, können Sie unter Schwächung der Sicherheit auf den TLS 1.2 Zwang verzichten. Aber sie können sicher sein, dass mehr und mehr Produkte TLS 1.2 als Default umsetzen. Schon heute gibt es Produkte , die noch gar nicht so Alt erscheinen aber mit TLS 1.2 nicht mehr funktionieren.

  • Aries/Lync Telefone
    Hier tut es wohl am meisten weh, denn Telefone haben oft eine deutlich längere Lebensdauer als ein Smartphone oder PC. Aber auch hier ist nach 5 Jahren Support Schluss und mit dem Auslaufen des Support im April 2018 gibt es keine Funktionsupdates mehr. Microsoft wird schon wissen, warum Sie den TLS 1.2-Zwang in Office 365 vom März auf Oktober 2018 verschoben haben. So umgeht man die Entwicklung einer neuen Firmware
    Unter die Telefone fällt auch mein altes LG/Nortel IP 8540, CX700 - (Tanjay), welches nun nur noch als Türstopper fungiert.
  • Gigaset Maxwell 10
    Kein zertifiziertes Gerät aber Skype und Teams für Android liefen darauf, bis Office 365 dann TLS 1.2 erzwungen hat. Das Android 4.4 kann das noch nicht.

TLS 1.2 Support

Eine höhere Sicherheit erfordert, dass alle Server und Clients die entsprechenden Dialekte auch verstehen und unterstützen. Microsoft kann gerne auf ihren Server TLS 1.2 als Mindestversion voraussetzen. Für die Anwender ist erst einmal wichtig, dass ihre Client auch TLS 1.2 spricht. Es gibt mehrere Punkte, die mit hier einfallen:

  • Fehlender TLS 1.2 Support
    Je älter ein Client oder eine Software ist, desto eher ist es möglich, dass der dort vorhandene Code noch gar kein TLS 1.2 unterstützt und nur die schlechteren Varianten integriert hat
  • TLS 1.2 deaktiviert
    Es gibt durchaus Umgebungen, in denen TLS 1.2 nicht genutzt werden soll oder kann und man auch auf dem Client über eine entsprechende Konfiguration verhindert hat, dass der Client TLS 1.2 anbietet oder akzeptiert. Dann kann der Server ruhig TLS 1.2 zusätzlich anbieten. Der Client bleibt auf der früheren Version wenn der Server es auch noch unterstützt.
  • Proxy-Server
    Die meisten HTTPS-Verbindungen aus Firmen werden über einen HTTP-Proxy geleitet, welcher zusätzliche Filter und Authentifizierungen durchführt. Speziell wenn der Proxy "reinschauen" will, kann er das mit einem eigenen Zertifikate natürlich machen. Der Weg zwischen Client und Proxy kann dabei weiterhin TLS 1.1 oder älter verschlüsselt sein, zumindest solange Microsoft kein Zertifikat-Pinning oder HSTS einfordert. Der Proxy muss aber Richtung Office 365 ab dem Stichtag auf jeden Fall TLS 1.2 unterstützen

Gerade Firmen, die heute schon Office 365 nutzen, sollten sehr schnell die Anwender von unklaren Systemen darum bitten, die TLS 1.2 Funktion zu testen. Hierzu gibt es im Internet entsprechende Seiten, die der Anwender einfach ansurfen kann und dann einen Bericht über die Fähigkeiten des Browsers erhält:

Beide Seiten prüfen die TLS-Möglichkeiten des Clients.

Browser Support

Die meisten Programme und Dienste auf der Windows-Plattform implementieren SSL/TLS nicht selbst sondern nutzen natürlich die Funktionen und Module des Betriebssystem. Es gibt aber auch Lösungen, die z.B. die Module von OpenSSL nutzen. Für den Einsatz mit Office 365 müssen Sie zuerst einmal die Clients auf ihre Kompatibilität überprüfen. Hier eine Kurzfassung der Browser:

Client TLS 1.2 Support

IE9 Vista
IE9 Server 2008

Nicht verfügbar

IE 8-10 Windows 7
IE 8-10 Windows 2008

per Default deaktiviert

IE 11 Windows 7
IE 11 Windows 8.1
IE 11 Windows 2008R2
IE 11 Windows 2012R2

Ja

IE 10 Mobile auf Windows Phone 8.0

Per Default deaktiviert

IE 11 Mobile auf Windows Phone 8.1

Ok

Microsoft Edge

Alle

Chrome

Ab Version 33

Firefox

Ab Version 24 aber per Default deaktiviert
Ab Version 27

Safari Mac

Seit Version 7

Safari IOS

Seit IOS 5

Google Android Browser

Seit Android 5

Opera

Ab Version 15.18 (Presto)
Ab Version 17 (Webkit)

Probleme haben also auf jeden Fall folgende Clients:

  • Android 4.3 und früher
  • Firefox version 5.0 und früher
  • Internet Explorer 8-10 auf Windows 7 und früher
  • Internet Explorer 10 auf Win Phone 8.0
  • Safari 6.0.4/OS X10.8.4 und früher

Sie sollten also sicherstellen, dass diese Clients nicht mehr genutzt werden. Schon aus Sicherheitsaspekten dürften die meisten diese Endgeräte sowieso schon alle ausser Betrieb sein. Mit dem Zwang zu TLS 1.2 können Sie aber mit immer weniger Gegenstellen arbeiten. Als Workaround könnten Sie natürlich einen Proxy einsetzen, der TLS aufbricht und nach intern das schwache TLS spricht und nach extern mit dem Ziel per TLS 1.2 kommuniziert. Solange das Ziel kein Client-Zertifikat erfordert, ist dies möglich.

Library Support

Neben den Browsern gibt es natürlich noch viele andere Anwendungen und Libraries, die ebenfalls TLS nutzen.

Modul TLS 1.2 Support

SChannel / Vista

Nein

SChannel/ 2008

Deaktiviert KB4019276

SChannel / Windows 7/2008R2

IE11 aktiviert TLS 1.2

SChannel / Windows 8/2012

Per Default deaktiviert

SChannel Windows 8.1/2012R2/10

Aktiv

NET. Framework

3.5SP1 mit Update (3154520)
Auf Windows 7 SP1 und Windows 2008R2 SP1 ist es per Default off
Ab Windows 2012 und Windows 8.1 oder höher ist es an

WinHTTP

Ja mit Update ab Windows 7 oder Windows Server 2008 R2. Zudem muss TLS 1.2 auch aktiviert werden.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp]
"DefaultSecureProtocols"=dword:00000800

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp]
"DefaultSecureProtocols"=dword:00000800

OpenSSL

Ja

Windows Phone 6

Unterstützt maximal TLS 1.0

An der Tabelle kann man schon sehen, dass ein Windows 7 Client oder Windows 2008R2 Server ohne IE11 kein TLS 1.2 machen und selbst Windows 8 und Windows 2012 per Default TLS 1.2 deaktiviert haben.

Wenn Sie sich die Liste der Clients und Browser aber mal anschauen, dann ist TLS 1.2 nicht wirklich etwas "Neues" sondern sollte in den meisten Systemen schon vorhanden sein. Auf einigen Systemen wird man es noch aktivieren müssen. Aber die Systeme, die kein TLS 1.2 können, sind eigentlich auch nicht mehr sicher genug, um sich im Internet zu bewegen.

Die meisten Windows-"Clients", also auch ein Outlook oder Skype for Business nutzen die vom Betriebssystem bereitgestellten Funktionen und haben keinen eigenen "TLS-Code". Anders sieht es natürlich bei Programmen wie z.B. Putty, OpenVPN, Thunderbird etc. aus, die "Plattformunabhängig" dann auf OpenSSL oder andere DLLs verweisen.

TLS 1.2 aktivieren oder vorschreiben

Aber auch bei den Systemen, bei denen TLS 1.2 per Default deaktiviert ist, müssen Sie natürlich die Konfiguration entsprechend anpassen.

TLS 1.2 cannot be enabled on Windows Server 2008. You need Windows Server 2008R2 or later. Make sure you have the .Net 4.5.1 hotfix installed for your operating system, see Microsoft Security Advisory 2960358. You might have this hotfix or a later release installed on your server already. If you use Windows Server 2008R2, then make sure TLS 1.2 is enabled. On Windows Server 2012 server and later versions, TLS 1.2 should already be enabled.
Quelle https://docs.microsoft.com/en-us/azure/active-directory/connect/active-directory-aadconnect-prerequisites

Die Einrichtung erfolgt wieder über Registrierungsschlüssel, so dass diese einfach per Gruppenrichtlinie verteilt werden können

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000 
"Enabled"=dword:00000001 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] 
"DisabledByDefault"=dword:00000000 
"Enabled"=dword:00000001

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 
"SchUseStrongCrypto"=dword:00000001

Wenn Sie aber schon dran sind, dann können Sie ihren Client ja auch gleich ein neues "Default Protokoll" zuweisen. Damit ist zwar TLS 1.1 und älter noch möglich aber er verwendet schon mal per Default TLS 1.2

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp]
"DefaultSecureProtocols"=dword:00000800

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp]
"DefaultSecureProtocols"=dword:00000800

Diese Einstellung ist auch für Autodiscover mit Outlook auf Windows 7 relevant, wenn der Server nur TLS 1.2 erlaubt

Die Einstellungen für den Internet Explorer sind wieder an einem eigenen Ort. Die folgenden Einstellungen erlaubten TLS 1.1 und TLS 1.2

Windows Registry Editor Version 5.00

[HKEY_CURRENT_User\Software\Microsoft\Windows\CurrentVersion\Internet Settings ]
"SecureProtocols"=dword:00000a80

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings ]
"SecureProtocols"=dword:00000a80

Auch auf der Ebene von SCHANNEL  könnte TLS 1.1 oder 1.2 abgeschaltet worden sein. So lösen Sie die Sperre:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client]
"DisabledByDefault"=deword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000

Das geht natürlich auch per PowerShell.

All diese Änderungen erfordern einen Neustart des Betriebssystems !

TLS 1.2 und Server

Nachdem wir nun Betriebssysteme, Browser, Clients und Bibliotheken betrachtet haben, bleiben noch die Server übrig. Auch wenn Dienste auf Windows sich auf SCHANNEL oder die CryptoAPI-Funktionen des Betriebssystems stützen, so kann ein Entwickler über die Parametrisierung der Aufrufe bestimmte Optionen erzwingen oder auch verbieten.

Für Sie als Betreiber ist es natürlich auch interessant, zu gegebener Zeit ebenfalls TLS 1.2 vorzuschreiben

Produkt TLS 1.2 IIS

IIS

Ab Windows 7/2008R2

Der IIS ist eine Rolle des Betriebssystems und damit von der Version und den Komponenten des Betriebssystems abhängig

Exchange Server

Ja

Exchange nutzt TLS in verschiedener Hinsicht. Zum einen ist es Server und wird von Clients über POP, IMAP, SMTP, HTTP angesprochen. Weiterhin ist der Exchange Server selbst "Client", wenn er per SMTP Mails zu anderen Servern sendet oder per Kalender Federation oder eine Postfachmigration mit anderen Exchange Server spricht. Bei Exchange ist das Betriebssystem darunter ein limitierender Faktor. Exchange 2010 kann noch auf Windows 2008 installiert werden und dort ist TLS 1.2 nicht verfügbar. Ansonsten kann es aktiviert werden.

AADConnect/
ADSync

am 30.7.21 erzwungen

Der Dienst verbindet sich per HTTP mit dem AzureAD um die Identitäten zu verwalten. Er hat bis Version 1.1.614.0 nur TLS 1.0 als Default genutzt. Ich bin sicher, dass er natürlich auch TLS 1.2 nutzt, wenn der Server es vorschreibt. Aber aus Sicherheitsgründen, speziell beim Einsatz mit der Funktion Office 365 Password Sync, sollten Sie TLS 1.2 vorschreiben.

Achtung: 30.6.2021: TLS 1.2 Zwang. Mindestversion 1.4.38.0 vom 9.12.2019 erforderlich

SQL Server

Ja mit Updates

Beim SQL-Server unterstützt Microsoft seit SQL2008SP4, SQL2008R2 SP3, SQL 2012SP2, SQL20014RTM auch TLS 1.2. Details dazu finden Sie in folgendem Artikel.

Skype for Business 2015

Ja ab CU5 HF2 auf Windows 2012 mit KB3140245+

TLS 1.0 und 1.1 können deaktiviert werden, wenn Sie einige Dinge beachten:

Wichtiger ist aber noch TLS 1.2 zu aktivieren, wenn der Server mit der Cloud sprechen soll, denn wenn dort TLS 1.2 erzwungen wird aber ihr Server noch kein TLS 1.2 anbietet, dann kommt die Verbindung nicht zustande

Skype for Business 2019

TLS 1.2 Zwang

Mit Skype for Business 2019 Server unterstützt Microsoft nur noch TLS 1.2 und TLS 1.3

https://docs.microsoft.com/de-de/skypeforbusiness/plan-your-deployment/security/encryption

Für eine Koexistenz muss SfB 2015 daher zumindest TLS 1.2 unterstützen.

Teams

Pending

Die Verpflichtung, dass alle Clients eine Verdindung zur Cloud per TLS 1.2 aufbauen müssen, wurde immer wieder verschoben. Viele Clients bieten TLS 1.2 schon an und es kann eine TLS 1.2 Verbindung etabliert werden. Aber noch sind nicht alle Clients kompatibel.

Ein Teams-Client nutzt für die Signalisierung natürlich TLS 1.2 aber die Medienübertragung RTP/TCP über STUN/TURN nutzte auch im Jan 2021 nur TLS 1.0.

Hier müssen Sie also bei Firewalls vorsichtig sein, wenn Sie hier TLS 1.1 oder 1.0 unterbinden

Yammer

TLS 1.2 Zwang Rollout

Siehe Admin center messages

MC126199 in Dec 2017, MC128929 in Feb 2018, MC186827 in July 2019, MC218794 in July 2020 and MC240160 in February 2021),

Weitere Applikationen müssen Sie natürlich individuell prüfen.

TLS und Loadbalancer

Wenn die zwischen Client und Server einen Loadbalancer steht, dann kann der natürlich auch SSL/TLS aufbrechen und eigene Zertifikate einsetzen. Dann kommen natürlich auch dessen TLS-Einstellungen zum Tragen:

TLS Protokoll mit PowerShell

Normalerweise handeln Client und Server ein "passendes" TLS-Protokoll aus und versucht das "bester" zu nutzen. Als Client können Sie aber nicht sicher sein, ob nicht auf dem Weg jemand das "Angebot" des Servers beim TLS-Handshake absichtlich verändert, so dass Sie gar nicht wissen, was der Server kann. Sie können aber ihrerseits z.B. TLS 1.2 erzwingen und damit keine schwächeren Verfahren annehmen. Das geht z.B. wie folgt:

[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12

Ab dem Moment nutzen Invoke-WebRequest und andere eben nur noch TLS 1.2. Wenn Sie aber auch ein Fallback auf schwächere Verfahren erlauben wollen, dann müssen Sie einfach mehrere Werte binär mit "oder" verbinden

[Net.ServicePointManager]::SecurityProtocol = `
        [Net.SecurityProtocolType]::Tls `
   -bor [Net.SecurityProtocolType]::Tls11 `
   -bor [Net.SecurityProtocolType]::Tls12

Die Einstellungen gelten nur für die aktuelle Session

Weitere Links