TLS 1.2 Enforcement

Die ersten Versionen der Transportverschlüsselung musste mit viel langsameren Prozessoren und Systemen zurecht kommen. Entsprechend "einfacher" waren die Verschlüsselungsalgorithmen (TLS Security) und kürzer die verwendeten Schlüssel. Die Zunahme der Rechenleistung aber auch konzeptionelle Schwächen in der ein oder anderen Verschlüsselung machen es Angreifern einfach, den TLS Handshake so zu verändern, dass von den angebotenen Verschlüsselungsoptionen die schwächste Option genutzt wird und damit der Verkehr mit einem vertretbarem Aufwand mitgelesen werden kann. Sie als Anwender sehen dennoch das "grüne Zertifikat", wenn sich auch die Gegenseite auf dieses "Downgrade" einlässt.

Office 365 erzwingt TLS 1.2 ab dem 31. Oktober 2018
(Das ursprüngliche Ziel 1. März 2018 wurde verschoben)
https://support.microsoft.com/en-us/help/4057306/preparing-for-tls-1-2-in-office-365

Aus diesem Grund ist es richtig und erforderlich, dass alle Dienste mit einem hohen Anspruch an Datensicherheit eben dieses Downgrade auf eine schwache Verschlüsselung unterbinden. Dazu ist es erforderlich, dass beim TLS Handshake nur noch ausreichend starke Verschlüsselungsverfahren angeboten werden. Microsoft ist nicht der erste Anbieter, der TLS 1.2 in naher Zukunft voraussetzen.

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

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

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 nichit 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öglicih.

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 or Windows Server 2008 R2

OpenSSL

Ja

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

[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

[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

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

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

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

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

 

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

 

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.

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 21012 mit KB3140245+

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

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

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