Durch das Entfernen von anfälligen Chiffren unter Windows 10 wird ausgehendes RDP unterbrochen

16

Der Vulnerability Scanner von TrustWave schlägt einen Scan aufgrund eines Windows 10-Computers mit RDP fehl:

Blockverschlüsselungsalgorithmen mit einer Blockgröße von 64 Bit (wie DES und 3DES) (Sweet32) (CVE-2016-2183)

ANMERKUNG: Auf Windows 7/10-Systemen, auf denen RDP (Remote Desktop Protocol) ausgeführt wird, ist die zu deaktivierende anfällige Verschlüsselung mit "TLS_RSA_WITH_3DES_EDE_CBC_SHA" gekennzeichnet.

Unter Verwendung von IIS Crypto (von Nartac) habe ich versucht, die Vorlage "Best Practices" sowie die PCI 3.1-Vorlage anzuwenden. Beide enthalten jedoch die unsichere Verschlüsselung (TLS_RSA_WITH_3DES_EDE_CBC_SHA):

CipherScreen

Wenn ich diese Verschlüsselung deaktiviere, funktioniert RDP von diesem Computer auf vielen Windows-Stationen nicht mehr (es funktioniert weiterhin auf einigen 2008 R2- und 2012 R2-Servern). Der RDP-Client gibt einfach "Ein interner Fehler ist aufgetreten" und das Ereignisprotokoll aus:

Beim Erstellen eines TLS-Client-Berechtigungsnachweises ist ein schwerwiegender Fehler aufgetreten. Der interne Fehlerstatus ist 10013.

Ich habe das Serverereignisprotokoll eines der Server überprüft und sehe diese beiden Meldungen

Eine TLS 1.2-Verbindungsanforderung wurde von einer Remoteclientanwendung empfangen, aber keine der von der Clientanwendung unterstützten Cipher Suites wird vom Server unterstützt. Die SSL-Verbindungsanfrage ist fehlgeschlagen.

Die folgende schwerwiegende Warnung wurde generiert: 40. Der interne Fehlerstatus ist 1205.

Wie kann ich die Sicherheitsanfälligkeit beheben, ohne ausgehendes RDP zu unterbrechen?

Oder kann ich auf jedem RDP-Host, mit dem ich keine Verbindung mehr herstellen kann, etwas tun , wenn dies nicht möglich ist?

--- Update Nr. 1 ---

Nach dem Deaktivieren von TLS_RSA_WITH_3DES_EDE_CBC_SHA auf dem Windows 10-Computer habe ich versucht, eine Verbindung zu mehreren RDP-Hosts herzustellen (die Hälfte davon schlug mit "Ein interner Fehler ..." fehl). Also habe ich einen dieser Hosts, mit dem ich eine Verbindung herstellen kann , mit einem verglichen , mit dem ich keine Verbindung herstellen kann. Beide sind 2008 R2. Beide haben dieselbe RDP-Version (6.3.9600, RDP-Protokoll 8.1 wird unterstützt).

Ich habe die TLS-Protokolle und -Verschlüsselungen mit IIS Crypto verglichen, um "Save Template" (Vorlage speichern) für die aktuellen Einstellungen auszuführen und die Vorlagendateien zu vergleichen. Sie waren identisch! Was auch immer das Problem ist, es scheint also nicht eine Frage der fehlenden Chipher Suite auf dem Host zu sein. Hier ist ein Screenshot von Beyond Compare zu den Dateien:

Chiffre vergleichen

Was kann zwischen den beiden RDP-Hosts, die dieses Problem verursachen, unterschiedlich sein und wie kann es behoben werden?

Zek
quelle
Können Sie NetMon oder Wireshark verwenden, um die Client-Hallo / Server-Hallo-Nachricht zu erfassen, um festzustellen, welche Verschlüsselungssuite tatsächlich ausgehandelt wird, wenn die Verbindung ausfällt, und wann sie erfolgreich ist?
Ryan Ries
@RyanRies: Schon, aber es kommt nie zum eigentlichen TLS-Handshake. Der Client sendet ein "TPKT, Continuation" -Paket und der Server antwortet mit "RST, ACK".
Zek

Antworten:

3

IIS Crypto bietet die Option, sowohl die serverseitigen (eingehenden) als auch die clientseitigen (ausgehenden) Optionen festzulegen. Es gibt eine Handvoll Chiffren, die Sie für die Kompatibilität auf der Clientseite aktiviert lassen müssen.

Um das zu tun, was Sie wollen, würde ich persönlich Folgendes tun:

  • Übernehmen 3.1-Vorlage
  • Lassen Sie alle Cipher Suites aktiviert
  • Auf Client und Server anwenden (Kontrollkästchen aktiviert).
  • Klicken Sie auf "Übernehmen", um die Änderungen zu speichern

Starten Sie hier gegebenenfalls neu (und Sie haben physischen Zugriff auf den Computer).

  • Übernehmen 3.1-Vorlage
  • Lassen Sie alle Cipher Suites aktiviert
  • Auf Server anwenden (Kontrollkästchen deaktiviert).
  • Deaktivieren Sie die 3DES-Option

Ein Neustart hier sollte zum korrekten Endzustand führen.

Tatsächlich möchten Sie nur eingehendes 3DES deaktivieren, aber dennoch die ausgehende Verwendung dieser Verschlüsselungssuite zulassen.

Tim Brigham
quelle
Das hört sich vielversprechend an! Das Deaktivieren von 3DES 168 scheint jedoch ein Fehler gewesen zu sein - ich kann keine Verbindung mehr herstellen. Sobald ich damit fertig bin, werde ich versuchen, die Verschlüsselung nur auf der Serverseite zu deaktivieren und die Antwort zurückzumelden / anzunehmen.
Zek
Ich habe Ihren Vorschlag ausprobiert: 1) Best Practices anwenden und auf Server und Client anwenden, dann 2) TLS_RSA_WITH_3DES_EDE_CBC_SHA-Verschlüsselung und "Client-seitige Protokolle festlegen" deaktivieren und erneut anwenden, dann natürlich neu starten. Das Problem mit dem RDP von diesem Computer besteht weiterhin. Weitere Vorschläge sind willkommen.
Zek
1
@Zek seltsam ... Ich habe genau die gleiche Technik verwendet und habe es funktioniert.
Tim Brigham
@Zek Mir ist gerade aufgefallen, dass ich einen großen Fehler gemacht habe, als ich das geschrieben habe. Ich werde entsprechend aktualisieren.
Tim Brigham
Ich habe es versucht. 1) Wählen Sie die 3.1-Vorlage aus, und lassen Sie alle Cipher Suites unverändert. + Aktivieren Sie "Clientseitige Protokolle festlegen". + Aktivieren Sie TLS 1.0 (SQL usw. bricht ohne TLS 1.0 ab.). + Übernehmen und neu starten. 2) Wählen Sie die 3.1-Vorlage aus, und lassen Sie alle Cipher Suites unverändert. + Deaktivieren Sie "Clientseitige Protokolle festlegen". + Deaktivieren Sie 3DES. + Aktivieren Sie TLS 1.0. + Übernehmen und neu starten. Ich kann keine Verbindung mehr herstellen, "Ein interner Fehler ist aufgetreten" (ich denke, der Server muss 3DES unterstützen). Ich verbinde mich von einem Windows 10-Computer.
Zek
1

Ich hatte das gleiche Problem. Wenn ich den KB3080079-Patch auf dem Server installiere, wird die Unterstützung für TLS 1.1 und 1.2 aktiviert.

Beachten Sie, dass Sie für Windows 7-Clients das RDP-Client-Update (KB2830477) installieren müssen, andernfalls kann nur Windows 8+ eine Verbindung herstellen.

Evgeniy
quelle
1
Ich habe es nur zweimal überprüft und diese Updates sind bereits installiert (ich glaube, sie sind bereits seit einiger Zeit im Standard-Windows-Update enthalten), also ist das nicht das Problem.
Zek
1

Bearbeiten (2018-09-26): Ich habe festgestellt, dass das Deaktivieren von 3DES auf 2012R2 RDP NICHT unterbricht, jedoch auf 2008 R2. Die unterstützten Optionen scheinen sich zwischen den Kerneln zu unterscheiden.


Ich werde meine Antwort von einem TechNet- Thread teilen, aber zuerst BLUF:

Serverfehler-Schlussfolgerung: Höchstwahrscheinlich haben Sie einen anderen Unterschied zwischen den Systemen. Sie stellen eine Verbindung zwischen verschiedenen Betriebssystemversionen her, auf einem System ist FIPS aktiviert und auf dem anderen System nicht, oder es gelten andere Verschlüsselungsbeschränkungen HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers. Ich würde auf jeden Fall die SCHANNEL Protokollierung auf dem System ermöglichen , das tut der Arbeit zu bestimmen , welche Chiffre verwendet wird. Würde gerne zurückhören, wenn Sie RDP irgendwie dazu bringen, mit einer alternativen Verschlüsselung zu arbeiten.

Kopie der Post:

Wir haben es geschafft zu arbeiten!

Anscheinend haben 2008 und 2012 Syntaxprobleme und die Version 2008/7 erfordert ein Trailing / 168. 2012 / 8.1 / 10 nicht.

Der Schlüssel für 2008 sieht folgendermaßen aus: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168/168

Und der Schlüssel für 2012 sieht so aus: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168

Ich kann bestätigen, dass die Verwendung von "Triple DES 168/168" 3DES auf dem System NICHT deaktiviert. Sie können sich dies mit einem Protokollscanner (wie Nessus) oder durch Aktivieren der SCHANNEL-Protokollierung beweisen:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL] "EventLogging"=dword:00000007

Sie haben dann beispielsweise Ereignisse im SYSTEM-Protokoll.

Ein SSL-Client-Handshake wurde erfolgreich abgeschlossen. Die ausgehandelten kryptografischen Parameter lauten wie folgt.

Protokoll: TLS 1.0 CipherSuite: 0x2f Austauschstärke: 1024

Für mich ist das Ergebnis 0xa, das Google als TLS_RSA_WITH_3DES_EDE_CBC_SHA anzeigt.

Wenn ich "Triple DES 168" (ohne / 168) verwende, wird die Systemereignis-ID 36880 nicht angezeigt und die RDP-Sitzung wird blockiert.

Laut Artikel: Systemkryptografie: Verwenden Sie FIPS-kompatible Algorithmen für die Verschlüsselung, das Hashing und das Signieren

Remotedesktopdienste (RDS) Zum Verschlüsseln der Remotedesktopdienste-Netzwerkkommunikation unterstützt diese Richtlinieneinstellung nur den Triple DES-Verschlüsselungsalgorithmus.

In dem Artikel heißt es: "Systemkryptografie: Verwenden Sie FIPS-kompatible Algorithmen für die Verschlüsselung, das Hashing und das Signieren" Sicherheitseinstellungseffekte in Windows XP und späteren Versionen von Windows

Diese Einstellung wirkt sich auch auf die Terminaldienste in Windows Server 2003 und späteren Versionen von Windows aus. Der Effekt hängt davon ab, ob TLS für die Serverauthentifizierung verwendet wird.

Wenn TLS für die Serverauthentifizierung verwendet wird, wird mit dieser Einstellung nur TLS 1.0 verwendet.

Wenn TLS nicht verwendet wird und diese Einstellung auf dem Client oder dem Server nicht aktiviert ist, wird der RDP-Kanal (Remote Desktop Protocol) zwischen dem Server und dem Client standardmäßig mithilfe des RC4-Algorithmus mit 128-Bit verschlüsselt Schlüssellänge. Nachdem Sie diese Einstellung auf einem Windows Server 2003-Computer aktiviert haben, gilt Folgendes: Der RDP-Kanal wird mithilfe des 3DES-Algorithmus im CBC-Modus (Cipher Block Chaining) mit einer Schlüssellänge von 168 Bit verschlüsselt. Der SHA-1-Algorithmus wird zum Erstellen von Nachrichtenauszügen verwendet. Clients müssen das RDP 5.2-Clientprogramm oder eine neuere Version verwenden, um eine Verbindung herzustellen.

Beide unterstützen die Idee, dass RDP nur 3DES verwenden kann. In diesem Artikel wird jedoch vorgeschlagen, dass ein größerer Bereich von Chiffren verfügbar ist: FIPS 140-Validierung

Die Gruppe der kryptografischen Algorithmen, die ein Remote Desktop Protocol-Server (RDP) verwendet, umfasst Folgendes: - CALG_RSA_KEYX - RSA-Algorithmus für den öffentlichen Schlüsselaustausch - CALG_3DES - Dreifacher DES-Verschlüsselungsalgorithmus - CALG_AES_128 - 128-Bit-AES - CALG_AES_256 - 256-Bit-AES - CALG_SHA1 - SHA-Hashing-Algorithmus - CALG_SHA_256 - 256-Bit-SHA-Hashing-Algorithmus - CALG_SHA_384 - 384-Bit-SHA-Hashing-Algorithmus - CALG_SHA_512 - 512-Bit-SHA-Hashing-Algorithmus

Letztendlich ist nicht klar, ob RDP Nicht-3DES-Protokolle unterstützen kann, wenn der FIPS-Modus aktiviert ist, aber es gibt Hinweise darauf, dass dies nicht der Fall ist.

Ich sehe keinen Hinweis darauf, dass Server 2012 R2 anders funktionieren würde als Server 2008 R2. Es scheint jedoch, dass Server 2008 R2 auf der Einhaltung von FIPS 140-1 basiert und Server 2012 R2 FIPS 140-2 folgt, sodass es durchaus möglich ist, dass Server 2012 R2 dies unterstützt zusätzliche Protokolle. Sie werden die zusätzlichen Protokolle im Link zur FIPS 140-Validierung beachten .

Fazit: Ich glaube nicht, dass Server 2008 R2 RDP im FIPS-Modus mit deaktiviertem 3DES unterstützen kann. Meine Empfehlung lautet, festzustellen, ob Ihr System die Bedingungen für einen SWEET32-Angriff erfüllt (mehr als 768 GB werden in einer einzigen Sitzung gesendet) und ob das Deaktivieren von 3DES das Entfernen der RDP-Fähigkeit wert ist. Es gibt andere Dienstprogramme zum Verwalten von Servern außerhalb von RDP, insbesondere in einer Welt, in der Virtualisierung weit verbreitet ist.

duct_tape_coder
quelle
0

Anscheinend haben 2008 und 2012 Syntaxprobleme und die Version 2008/7 erfordert ein Trailing / 168. 2012 / 8.1 / 10 nicht.

Der Schlüssel für 2008 sieht folgendermaßen aus: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Ciphers \ Triple DES 168/168

** Tolle Entdeckung, dass ich auf einigen Windows 2008 R2-Domänencontrollern genau dasselbe Problem hatte. Seltsamerweise scheinen meine 2008R2-Mitgliedsserver in Ordnung zu sein, und meine 2012R2-Server funktionieren auch einwandfrei. Müssen knacken auf diese älteren DCs decomming :)

omicronx9
quelle
Bei meiner Version von 2008R2 muss die Einstellung nicht hinzugefügt werden. Sie 168akzeptiert die gleiche Syntax wie die Windows 2012-Registrierung. Nur zu Ihrer
Information,