Wie deaktiviere ich TLS 1.0, ohne RDP zu beschädigen?


48

Unser Kreditkarten-Prozessor hat uns kürzlich mitgeteilt, dass wir zum 30. Juni 2016 TLS 1.0 deaktivieren müssen, um PCI-kompatibel zu bleiben . Ich habe versucht, durch Deaktivieren von TLS 1.0 auf unserem Windows Server 2008 R2-Computer proaktiv zu sein, und festgestellt, dass ich unmittelbar nach dem Neustart keine Verbindung über RDP (Remote Desktop Protocol) herstellen konnte. Nach einigen Recherchen scheint RDP nur TLS 1.0 zu unterstützen (siehe hier oder hier ), oder es ist zumindest nicht klar, wie RDP über TLS 1.1 oder TLS 1.2 aktiviert werden kann. Kennt jemand eine Möglichkeit, TLS 1.0 unter Windows Server 2008 R2 zu deaktivieren, ohne RDP zu beschädigen? Plant Microsoft die Unterstützung von RDP über TLS 1.1 oder TLS 1.2?

Hinweis: Es scheint eine Möglichkeit zu geben, den Server für die Verwendung der RDP-Sicherheitsschicht zu konfigurieren, die jedoch die Authentifizierung auf Netzwerkebene deaktiviert .

UPDATE 1 : Microsoft hat dieses Problem jetzt behoben. In der Antwort unten finden Sie Informationen zum jeweiligen Server-Update.

UPDATE 2 : Microsoft hat ein Tutorial zur SQL Server-Unterstützung für PCI DSS 3.1 veröffentlicht .


Ich entschuldige mich bei allen - die Anweisungen, die ich veröffentlicht habe, gelten nur für Win8 / Server2012 / 2012R2 ... sie funktionieren nicht unter 2008R2 / Win7. Ich habe 2008R2 getestet und es ist nicht dasselbe. Es tut mir Leid.
Ryan Ries

Beachten Sie außerdem, dass das Entfernen von TLS 1.0 ab 2012 ein Downgrade von RDP auf die RDP-Sicherheitsschicht erzwingt.
Jim B

Ich habe dasselbe getan und kann nicht auf meinen Server (AWS) zugreifen. Konnten Sie einen Weg finden, ohne physischen Zugriff einzusteigen?
Thomas Paine

1
Gemäß diesem Support - Artikel von Microsoft haben nur SQL 2012 und 2014 an die Arbeit mit TLS 1.1 und 1.2 kürzlich gepatchte support.microsoft.com/en-us/kb/3052404
CARLR

1
@CarlR dieser Artikel scheint nicht speziell RDP'ing an den Server zu erwähnen. Tatsächlich scheint es spezifisch für die Datenbankkonnektivität selbst zu sein, da erwähnt wird: "Dieses Update fügt SQL Server 2014 und dem Microsoft ODBC-Treiber für SQL Server die Unterstützung für TLS-Protokollversion 1.2 hinzu ."
k1DBLITZ

Antworten:


19

Microsoft hat den Patch für dieses Problem am 15. September 2015 veröffentlicht

Siehe https://support.microsoft.com/en-us/kb/3080079


Danke sehr hilfreich. Nach der Installation dieser Updates werden auf dem Bildschirm tsconfig.msc keine Anzeichen von TLS 1.1 oder TLS 1.2 angezeigt. Konnte jemand bestätigen, dass Sie mit RDP über TLS 1.2 eine Verbindung zum Server herstellen? Ich weiß, wir können dies überprüfen, indem wir das frühe TLS-Protokoll auf dem Server deaktivieren. Wenn dies jedoch nicht funktioniert, können Sie RDP nicht remote auf dem Server verwenden.
Nirlep,

Wenn Sie die Option "Aushandeln" auswählen, wird möglicherweise die höchstmögliche Ebene kommuniziert.
Dies

1
Sie können die Schannel-Protokollierung aktivieren, um festzustellen, welche Version verwendet wird. Der Link dazu ist in meiner Antwort zu finden.
CarlR

Ich weiß, dass es ein alter Thread ist, aber ... Ich habe einen älteren Windows Server 2008 R2, den ich zum Thema Schnupftabak bringe. Ich habe KB3080079 installiert und werde jetzt TLS 1.0 deaktivieren. Ich bin mir aber nicht sicher, ob die RDP-Servereinstellung auf "Aushandeln" oder auf "TLS" gesetzt werden soll.
Chris Harrington

15

Ich habe dies seit ein paar Tagen untersucht, da wir PCI-DSS 3.1 einhalten müssen, bei dem TLS 1.0 deaktiviert sein muss.

Wir möchten auch nicht auf die RDP-Sicherheitsschicht zurückgreifen, die ein wichtiges Sicherheitsproblem darstellt.

Ich habe es endlich geschafft, eine Dokumentation zu finden, die bestätigt, dass TLS 1.1 und TLS 1.2 von RDP unterstützt werden. Diese Dokumentation ist in einer SChannel-Protokollierung und einer sehr detaillierten Spezifikation für RDP versteckt .

Auf Technet- oder anderen Microsoft-Websites fehlt die Hauptdatenstromdokumentation vollständig. Es scheint also so, als könnte es einigen Menschen helfen, dies hier zu dokumentieren.

Relevante Auszüge aus den bereitgestellten Links:

Über den MSDN-Link:

"RDP supports four External Security Protocols: TLS 1.0 ([RFC2246]) TLS 1.1 ([RFC4346])<39>, TLS 1.2 ([RFC5246])<40>"

Aus der RDP-Spezifikation PDF:

"When Enhanced RDP Security is used, RDP traffic is no longer protected by using the techniques
described in section 5.3. Instead, all security operations (such as encryption and decryption, data
integrity checks, and Server Authentication) are implemented by one of the following External
Security Protocols:
TLS 1.0 (see [RFC2246])
TLS 1.1 (see [RFC4346])
TLS 1.2 (see [RFC5246])
CredSSP (see [MS-CSSP])"

"<39> Section 5.4.5: TLS 1.1 is not supported by Windows NT, Windows 2000 Server, Windows XP,
Windows Server 2003, Windows Vista and Windows Server 2008.
<40> Section 5.4.5:  TLS 1.2 is not supported by Windows NT, Windows 2000 Server, Windows XP,
Windows Server 2003, Windows Vista, and Windows Server 2008"

Daher kann man den Schluss ziehen, dass Sie TLS 1.1 oder 1.2 gemäß dieser Dokumentation unter Windows Server 2008 R2 verwenden können.

Unsere Tests haben jedoch gezeigt, dass dies auf dem Windows 7 RDP-Client (Version 6.3.9600) NICHT funktioniert, wenn TLS 1.0 deaktiviert ist und die RDP-Sicherheitsoption TLS 1.0 erfordert.

Dies gilt natürlich auch für TLS 1.1 und 1.2, die in 2008R2 standardmäßig deaktiviert sind . Dies geschieht übrigens mit dem sehr nützlichen IIS Crypto Tool von Nartac Software .

Wenn Sie sich dieses Problem ansehen, ist es hilfreich, die SChannel-Protokollierung zu aktivieren, um mehr Details darüber zu erfahren, was passiert, wenn Ihre Sitzung geöffnet wird.

Sie können die SChannel-Protokollierung festlegen, indem Sie den Schlüssel HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ EventLogging auf 5 setzen und neu starten.

Anschließend können Sie SChannel-Ereignisse beobachten, die die TLS-Version anzeigen, die beim Herstellen einer RDP-Verbindung verwendet wird. Sobald die Protokollierung aktiviert ist, können Sie den SChannel-Fehler beobachten, wenn der RDP-Client unter Windows 2008 R2 versucht, eine Verbindung herzustellen, wobei TLS 1.0 deaktiviert ist:

A fatal error occurred while creating an SSL server credential. The internal error state is 10013.

Ich habe auch die Deaktivierung von TLS 1.0 unter Windows Server 2012 und 2012 R2 getestet, von denen ich bestätigen kann, dass sie mit dem Windows 7 RDP-Client einwandfrei funktioniert. Der SChannel-Protokolleintrag zeigt, dass TLS 1.2 verwendet wird:

An SSL server handshake completed successfully. The negotiated cryptographic parameters are as follows.

   Protocol: TLS 1.2
   CipherSuite: 0xC028
   Exchange strength: 256

Ich hoffe, das hilft jemandem, der Klarheit darüber sucht.

Ich werde weiterhin nach Möglichkeiten suchen, wie wir RDP für TLS 1.1 und TLS 1.2 in Windows Server 2008 R2 zum Laufen bringen können.

UPDATE: 2015-AUG-05

Wir haben das Problem aufgeworfen, dass RDP nicht mit Server 2008 R2 mit Microsoft-Unterstützung funktioniert, einschließlich der Schritte zur Reproduktion.

Nach mehreren Wochen hin und her haben wir heute endlich einen Anruf vom Support-Team erhalten, um zu bestätigen, dass sie ihn tatsächlich reproduzieren können, und dies wird nun als Fehler eingestuft. Es wird ein Update-Patch veröffentlicht, der voraussichtlich im Oktober 2015 verfügbar sein wird. Sobald ich einen KB-Artikel oder andere Details habe, werde ich sie diesem Beitrag hinzufügen.

Hoffentlich können diejenigen, die mit Windows Server 2008 R2 nicht mehr weiterkommen, dies zumindest vor dem Stichtag Juni 2016 beheben, sobald der Patch veröffentlicht ist.

UPDATE: 19. September 2015

Microsoft hat endlich einen KB Support-Artikel dazu hier veröffentlicht und ich kann bestätigen, dass es OK funktioniert.


In Ihrem letzten Update heißt es: "Ich habe Windows 7 und Windows 2012 R2 ausprobiert und es funktioniert nicht. Die Verbindung wird weiterhin über TLS1 hergestellt." Konnten Sie das jemals zum Laufen bringen?
Doug S

Jemand anderes hat diesen Kommentar eingefügt. Ich habe ihn gerade entfernt, da er für uns jetzt über TLS1.2 einwandfrei funktioniert.
CarlR

Hmmm. Ich konnte es trotz dieser Änderungen / Aktualisierungen und allem, was ich sonst noch finden konnte, nie zum Laufen bringen.
Doug S

Das SChannel-Protokoll finden Sie im Systemprotokoll.
Ivan Chau

8

Verwenden Sie stattdessen IPsec, wie im Dokument empfohlen: "Richten Sie zuerst eine stark verschlüsselte Sitzung ein (z. B. IPsec-Tunnel), und senden Sie dann Daten über SSL innerhalb eines sicheren Tunnels."

Der Hauptgrund für diese Vorgehensweise bei der Konfiguration von TLS für RDP besteht darin, dass die Firewall-Richtlinie einfach auf Konformität überprüft werden kann (im Gegensatz zum Nachweis, dass zahlreiche Registrierungsänderungen konform sind) und IPsec in Windows recht einfach zu konfigurieren ist.

Wenn Sie die vollständige Suite B-Konformität benötigen, ist IPSEC mit tls 1.0 die einzige Möglichkeit, die für die entsprechenden Zertifikatslängen verfügbar ist


Das Tunneln über SSH ist ebenfalls eine Option, die ich erwähnen werde. (Erfordert natürlich SSH-Serversoftware für Windows.)
Chris W. Rea

IPsec ist nicht SSH
Jim B

3
Richtig, und ich wollte nicht implizieren, dass sie gleich sind. Vielmehr ist SSH eine alternative Methode zum Herstellen eines sicheren Tunnels zu einem Server.
Chris W. Rea

@JimB Es tut mir leid, du hattest recht.
Ryan Ries

1
@ RyanRies Np, ich kratzte mir immer noch am Kopf, wie 12 andere es abstimmen würden, ohne zu wissen, dass es funktioniert.
Jim B

8

Dies ist keine Antwort auf die Frage, sondern auf die Unterfrage "Wie stelle ich den Remotezugriff auf eine virtuelle Maschine wieder her, auf der ich TLS 1.0 deaktiviert habe und auf die kein physischer Zugriff besteht?".

Ich habe TLS 1.0 mit IISCrypto deaktiviert, was eine nützliche Warnung über den Nebeneffekt gab, dass RDP nicht mehr funktioniert, wenn es auf TLS eingestellt ist. Also habe ich eingecheckt:

Admin Tools\Remote Desktop Services\Remote Desktop Session Host Configuration, RDP-Tcp, General Tab, Security Layer

und meine Sicherheitsstufe wurde auf "Aushandeln" gesetzt. Ich ging davon aus, dass TLS, wenn es nicht verfügbar ist, die RDP-Sicherheit erheblich beeinträchtigen würde.

Aber nein, Verhandeln funktioniert nicht so. Sie müssen die Sicherheitsstufe auf RDP-Sicherheit und nicht auf Aushandeln setzen, bevor Sie TLS 1.0 deaktivieren.

Daher konnte ich keine Remote-Verbindung zu meiner AWS-Instanz mehr herstellen!

Um die Verbindung wiederherzustellen, habe ich eine andere AWS-Instanz verwendet.

  1. Ich habe die SecurityGroup aktualisiert, um die Firewall-Verbindung von diesem Computer zu meinem "verlorenen" Computer zuzulassen.
  2. Ich habe unter DOS eine administrative Netzwerkfreigabe mit einem Administratorbenutzer und einem Kennwort geöffnet:

net use \\lost_machine_ip\c$

  1. Dann habe ich Regedit geöffnet und im Menü Datei "Connect Network Registry" (Netzwerkregistrierung verbinden) ausgewählt und die IP des "verlorenen" Servers eingegeben. Sie sollten die Registrierung des Remoteservers sehen. Gehe zu :

\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\

und setzen Sie den Wert für SecurityLayerauf 0 (0 ist RDP-Sicherheit).

Anschließend können Sie eine Remoteverbindung herstellen und TLS 1.0 in IISCrypto erneut aktivieren, falls erforderlich.


Vielen Dank, das ersparte mir viel Arbeit bei der Neuerstellung eines Servers. Ich bin mir nicht sicher, wie Sie Ihre Sicherheitsgruppe geändert haben, um die Verbindung zwischen Computern zuzulassen. Gibt es einen besseren Weg?
Gullbyrd

@Gullbyrd entweder das, oder setzen Sie ALL TCP auf die Sicherheitsgruppe, zu der beide Maschinen gehören. Tut das Gleiche.
Dave Beer

3

Sie müssen RDP 8.0 auf Ihren Windows 7-Computern und Windows Server 2008 R2-Servern installieren und dann RDP 8.0 in der lokalen Computerrichtlinie oder Gruppenrichtlinie aktivieren.

Hier ist die Microsoft-KB für RDP 8.0. https://support.microsoft.com/en-us/kb/2592687

Sobald dies erledigt ist, sollten Sie in der Lage sein, TLS 1.0 auf den Computern und Servern zu deaktivieren, indem Sie die Registrierung wie in diesem Technet-Artikel beschrieben bearbeiten. https://technet.microsoft.com/en-us/library/dn786418.aspx

Nach der Installation von RDP 8.0 können Sie auch RDP 8.1 installieren, RDP 8.0 muss jedoch vor der Installation von RDP 8.1 installiert werden. RDP 8.0 enthält sowohl die clientseitigen als auch die serverseitigen Protokollkomponenten, RDP 8.1 enthält jedoch nur den Client. Die Microsoft-KB für RDP 8.1 ist KB2830477.

Ich habe diese Änderungen auf einer meiner Windows 7-Workstations vorgenommen und die RDP-Verbindungen mit der Gruppenrichtlinieneinstellung "Verwendung einer bestimmten Sicherheitsebene für Remoteverbindungen (RDP) erforderlich" getestet und auf "SSL (TLS 1.0)" festgelegt, um dies sicherzustellen würde nicht auf RDP-Verschlüsselung zurückgreifen.

UPDATE 19.06.2015:

Endlich hatte ich die Möglichkeit, dies auf einem unserer Windows Server 2008 R2-Server zu testen, und die RDP-Verbindungen zum Server werden definitiv unterbrochen. Es scheint, dass die serverseitigen RDP 8.0-Komponenten nur auf Windows 7-Computern installiert sind und nicht auf Windows Server 2008 R2-Servern installiert werden.


Der Support-Knowledgebase-Artikel, auf den verwiesen wird, funktioniert derzeit nicht (Umleitungsschleife). Sie können jedoch die Google-Cache-Version verwenden, um den Inhalt anzuzeigen. Interessant, dass in diesem Artikel immer noch absolut keine TLS 1.1- oder 1.2-Unterstützung erwähnt wird und ich denke, dass dies der Hauptgrund ist, warum sich jemand mit dieser Frage befasst! Es gibt auch eine große Anzahl von Vorbehalten, einschließlich lokaler Administratoren, die sich nicht mehr anmelden können, es sei denn, sie werden ausdrücklich zur Benutzergruppe "Remote Destop" hinzugefügt. Pass auf, wenn du das versuchst.
CarlR

Haben Sie den UDP-Port 3389 auf dem Server geöffnet, als Sie versuchten, eine Verbindung zum Server 2008 herzustellen?
Elvar

Ich ging so weit, die Windows-Firewall auf dem Server 2008 R2 vorübergehend vollständig zu deaktivieren, konnte jedoch immer noch keine Verbindung mit RDP herstellen, wobei TLS 1.0 auf dem Server deaktiviert war.
Kenny R

3

Wie Sie TLS 1.0 deaktivieren, ohne RemoteApps auf Server 2012 R2 zu beschädigen, aber hier neu veröffentlichen, um denjenigen zu helfen, die diesen Link möglicherweise nicht überwachen:

Nach fast einem Jahr fand ich endlich eine funktionierende Lösung zum Deaktivieren von TLS 1.0 / 1.1, ohne die RDP- und Remotedesktopdienste-Konnektivität zu unterbrechen und RemoteApps zu starten:

Führen Sie IISCrypto aus, und deaktivieren Sie TLS 1.0, TLS 1.1 und alle fehlerhaften Chiffren.

Öffnen Sie auf dem Remotedesktopdienste-Server, auf dem die Gateway-Rolle ausgeführt wird, die Lokale Sicherheitsrichtlinie und navigieren Sie zu Sicherheitsoptionen - Systemkryptografie: Verwenden Sie FIPS-kompatible Algorithmen für Verschlüsselung, Hashing und Signierung. Ändern Sie die Sicherheitseinstellung auf Aktiviert. Starten Sie den Computer neu, damit die Änderungen wirksam werden.

Beachten Sie, dass in einigen Fällen (insbesondere bei Verwendung von selbstsignierten Zertifikaten unter Server 2012 R2) die Sicherheitsrichtlinienoption Netzwerksicherheit: LAN Manager-Authentifizierungsebene möglicherweise nur auf NTLMv2-Antworten senden festgelegt werden muss.


2

Nur ein Update dazu, wenn jemand nach Informationen sucht. Für meine Windows 7 64-Bit-Boxen musste ich KB2574819 (erstes) und KB2592687 (zweites) installieren. Windows 7 muss SP1 installiert haben, bevor diese 2 Pakete installiert werden können. Wenn Sie Probleme bei der Installation von SP1 haben, musste ich zuerst KB958830 deinstallieren und dann SP1 installieren.

Für meine Windows Server 2008 R2-Boxen musste ich KB3080079 installieren. Sobald Sie dies getan haben und alle geeigneten Einstellungen für die sichere Kommunikation vorgenommen haben, wird TLS 1.2 verwendet. Sie können mit Wireshark eine Aufzeichnung der Kommunikation zwischen Ihren beiden Boxen durchführen.



0

Ein Fall, der von den vorhandenen Antworten nicht abgedeckt wird: Windows 7-Clients, die über ein RDP-Gateway eine Verbindung herstellen, verwenden weiterhin TLS 1.0, wenn sie eine Verbindung zum Gateway herstellen, und schlagen fehl, wenn das Gateway TLS 1.0 nicht unterstützt, selbst nachdem KB3080079 angewendet wurde , wie in diesem TechNet- Forenthread beschrieben .

Um TLS 1.2 für die Verbindung über ein RDP-Gateway zu verwenden, stellen Sie sicher , dass KB3140245 installiert ist, und fügen Sie die folgenden Registrierungsschlüssel hinzu (in einer Datei mit der .regzu importierenden Erweiterung speichern ):

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

Wie in KB3140245 dokumentiert , setzt dies die WINHTTP_OPTION_SECURE_PROTOCOLSVerwendung von TLS 1.2 (und nur TLS 1.2) standardmäßig außer Kraft . Beachten Sie also, dass dies nicht nur den RDP-Client betrifft.

(Hinweis: Wenn Abwärtskompatibilität gewünscht wird, dword:00000800kann zu TLS 1.1 bzw. 1.0 geändert dword:00000A00oder dword:00000A80hinzugefügt werden.)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.