Come disabilitare TLS 1.0 senza interrompere RDP?


48

Il nostro processore di carte di credito ci ha recentemente comunicato che dal 30 giugno 2016 dovremo disabilitare TLS 1.0 per rimanere conformi a PCI . Ho cercato di essere proattivo disabilitando TLS 1.0 sulla nostra macchina Windows Server 2008 R2, solo per scoprire che subito dopo il riavvio non ero completamente in grado di connettermi tramite Remote Desktop Protocol (RDP). Dopo alcune ricerche, sembra che RDP supporti solo TLS 1.0 (vedi qui o qui ), o almeno non è chiaro come abilitare RDP su TLS 1.1 o TLS 1.2. Qualcuno conosce un modo per disabilitare TLS 1.0 su Windows Server 2008 R2 senza interrompere RDP? Microsoft prevede il supporto per RDP su TLS 1.1 o TLS 1.2?

Nota: sembra esserci un modo per farlo configurando il server per l'utilizzo del livello di sicurezza RDP, ma ciò disabilita l'autenticazione a livello di rete , che sembra scambiare un male con un altro.

AGGIORNAMENTO 1 : Microsoft ha ora risolto questo problema. Vedere la risposta di seguito per l'aggiornamento del server pertinente.

AGGIORNAMENTO 2 : Microsoft ha rilasciato un'esercitazione relativa al supporto di SQL Server per PCI DSS 3.1 .


Mi scuso con tutti: le istruzioni che ho pubblicato sono valide solo per Win8 / Server2012 / 2012R2 ... non funzionano su 2008R2 / Win7. Ho provato 2008R2 e non è lo stesso. Mi dispiace.
Ryan Ries,

E si noti che nel 2012, come indicato, la rimozione di TLS 1.0 impone a RDP di eseguire il downgrade al livello di sicurezza RDP.
Jim B,

Ho fatto la stessa cosa e non riesco ad accedere al mio server (AWS), sei riuscito a trovare un modo per entrare senza accesso fisico?
Thomas Paine,

1
Secondo questo articolo di supporto Microsoft ha recentemente aggiornato SQL 2012 e 2014 per funzionare con TLS 1.1 e 1.2 support.microsoft.com/en-us/kb/3052404
CarlR

1
@CarlR quell'articolo non sembra menzionare specificamente RDP al server. In effetti, sembra essere specifico per la connettività del database stesso in quanto menziona: "Questo aggiornamento aggiunge il supporto per il protocollo TLS (Transport Layer Security) versione 1.2 a SQL Server 2014 e al driver ODBC di Microsoft per SQL Server".
k1DBLITZ,

Risposte:


19

Microsoft ha rilasciato la patch per questo problema il 15 settembre 2015

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


Grazie molto utile Dopo aver installato questi aggiornamenti, la schermata tsconfig.msc non mostra alcun segno di TLS 1.1 o TLS 1.2. Qualcuno è stato in grado di confermare che ci si sta connettendo al server utilizzando RDP su TLS 1.2? So che possiamo verificare disabilitando il protocollo TLS iniziale sul server. Ma se non funziona, non è possibile utilizzare RDP sul server in remoto.
Nirlep,

È possibile che quando selezioni l'opzione "Negozia", ​​comunicherà il livello più alto possibile che potrebbe essere TLS 1.2
Nirlep

1
È possibile abilitare la registrazione schannel per vedere quale versione viene utilizzata. Il link per come fare questo è mostrato nella mia risposta.
CarlR

So che è un vecchio thread, ma ... Ho un vecchio Windows Server 2008 R2 che sto per mostrare. Ho installato KB3080079 e ora disabiliterò TLS 1.0. Ma non sono sicuro se l'impostazione del server RDP dovrebbe essere impostata su "Negozia" o "TLS".
Chris Harrington,

15

Ci sto studiando da un paio di giorni perché dobbiamo conformarci a PCI-DSS 3.1 che richiede che TLS 1.0 sia disabilitato.

Inoltre, non vogliamo ripiegare sul livello di sicurezza del PSR, che rappresenta un grave problema di sicurezza.

Sono finalmente riuscito a trovare della documentazione che conferma che TLS 1.1 e TLS 1.2 SONO supportati da RDP. Questa documentazione è nascosta in una registrazione SChannel e una specifica molto dettagliata per RDP .

C'è una completa mancanza di documentazione sul flusso principale su Technet o altri siti Microsoft, quindi spero che documentare questo qui possa aiutare alcune persone.

Estratti pertinenti dai collegamenti forniti:

Dal collegamento MSDN:

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

Dal PDF delle specifiche RDP:

"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"

Pertanto si potrebbe concludere che è possibile utilizzare TLS 1.1 o 1.2 su Windows Server 2008 R2 secondo questa documentazione.

Tuttavia, i nostri test hanno dimostrato che NON funziona dal client RDP di Windows 7 (versione 6.3.9600) quando TLS 1.0 è disabilitato e l'opzione di sicurezza RDP è impostata per richiedere TLS 1.0.

Questo ovviamente oltre a abilitare TLS 1.1 e 1.2 che sono disattivati ​​di default su 2008R2 - per inciso lo facciamo usando l'utilissimo strumento IIS Crypto di Nartac Software .

Quando si esamina questo problema, è utile abilitare la registrazione di SChannel per vedere più dettagli di ciò che sta accadendo quando la sessione è aperta.

È possibile impostare la registrazione SChannel modificando la chiave HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ EventLogging su 5 e riavviando.

Una volta fatto ciò, è possibile osservare gli eventi di SChannel che mostrano la versione TLS utilizzata quando viene stabilita una connessione RDP. Una volta abilitata la registrazione, è possibile osservare l'errore SChannel quando il client RDP tenta di stabilire una connessione su Windows 2008 R2 con TLS 1.0 disabilitato:

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

Ho anche provato a disabilitare TLS 1.0 su Windows Server 2012 e 2012 R2, che posso confermare che funziona perfettamente utilizzando il client RDP di Windows 7. La voce del registro SChannel mostra TLS 1.2 in uso:

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

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

Spero che questo aiuti qualcuno che sta cercando chiarimenti in merito.

Continuerò a cercare come far funzionare RDP su TLS 1.1 e TLS 1.2 in Windows Server 2008 R2.

AGGIORNAMENTO: 2015-AGOSTO 05

Abbiamo sollevato il problema del mancato funzionamento di RDP con Server 2008 R2 con supporto Microsoft, inclusi i passaggi per la riproduzione.

Dopo diverse settimane di arretramenti, abbiamo finalmente ricevuto una telefonata oggi dal team di supporto per riconoscere che potevano effettivamente riprodurlo e questo è ora classificato come un bug. Verrà rilasciata una patch di aggiornamento, al momento prevista per ottobre 2015. Non appena avrò un articolo KB o altri dettagli, li aggiungerò a questo post.

Si spera che quelli bloccati con Windows Server 2008 R2 possano almeno risolverlo prima della scadenza di giugno 2016 una volta rilasciata la patch.

AGGIORNAMENTO: 19 settembre 2015

Microsoft ha finalmente rilasciato un articolo di supporto KB su questo qui e posso confermare che funziona bene.


Il tuo ultimo aggiornamento afferma "Ho provato Windows 7 e Windows 2012 R2 e non funziona; si connette ancora tramite TLS1". Sei mai stato in grado di farlo funzionare?
Doug S

Qualcun altro ha inserito quel commento, l'ho appena rimosso perché ora funziona perfettamente con TLS1.2.
CarlR

Hmmm. Non sono mai stato in grado di farlo funzionare, anche con queste modifiche / aggiornamenti e tutto il resto che ho potuto trovare.
Doug S,

Il registro SChannel è disponibile nel registro di sistema.
Ivan Chau il

8

Utilizzare invece IPsec, come raccomandato dal documento: "Configurare prima una sessione fortemente crittografata (ad es. Tunnel IPsec), quindi inviare i dati su SSL all'interno di un tunnel sicuro"

Il motivo principale per fare questo sulla configurazione di TLS per RDP è che la politica del firewall è facilmente verificata per verificarne la conformità (rispetto alla dimostrazione che una serie di modifiche al registro sono conformi) e IPsec è abbastanza facile da configurare in Windows.

Se hai bisogno della piena conformità B della suite IPSEC con tls 1.0 è l'unico modo disponibile per applicare le lunghezze del certificato appropriate


Anche il tunneling su SSH è un'opzione che menzionerò. (Richiede ovviamente il software server SSH per Windows.)
Chris W. Rea,

IPsec non è SSH
Jim B,

3
Corretto, e non intendevo implicare che fossero uguali. Piuttosto, SSH è un metodo alternativo per stabilire un tunnel sicuro verso un server.
Chris W. Rea,

@JimB Mi dispiace, avevi ragione.
Ryan Ries,

1
@RyanRies Np, sto ancora grattando la testa come altri 12 lo voterebbero senza sapere che ha funzionato.
Jim B,

8

Questa non è una risposta alla domanda, ma alla domanda secondaria "Come posso ripristinare l'accesso remoto a una macchina virtuale in cui ho disabilitato TLS 1.0 e senza accesso fisico?".

Ho disabilitato TLS 1.0 usando IISCrypto, che ha dato un utile avvertimento sull'effetto collaterale che RDP smetterà di funzionare se è impostato su TLS. Quindi ho fatto il check-in:

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

e il mio livello di sicurezza era impostato su "Negozia". Presumo che ciò significhi che se TLS non è disponibile, si degrada con garbo verso la sicurezza RDP.

Ma no, Negoziare non funziona in questo modo. È necessario impostare il livello di sicurezza su Sicurezza RDP, non su Negozia, prima di disabilitare TLS 1.0.

Quindi ho perso la capacità di connettermi in remoto alla mia istanza AWS!

Per riconnettermi, ho usato un'altra istanza AWS.

  1. Ho aggiornato SecurityGroup per consentire la connessione firewall da quella macchina alla mia macchina "persa".
  2. Ho aperto una condivisione di rete amministrativa in DOS, con un utente amministratore e una password:

net use \\lost_machine_ip\c$

  1. Quindi ho aperto Regedit e, nel menu File, ho scelto "Connetti registro di rete" e ho inserito l'IP del server "perso". Dovresti vedere il registro del server remoto. Vai a :

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

e impostare il valore su SecurityLayer0 (0 è la sicurezza RDP).

Sarà quindi possibile connettersi in remoto e riattivare TLS 1.0 in IISCrypto, se necessario.


Grazie, questo mi ha risparmiato molto lavoro nel ricreare un server. Non sono sicuro di come hai cambiato il tuo gruppo di sicurezza per consentire la connessione tra macchine --- Ho aperto tutti gli accessi alla macchina "persa" al secondo indirizzo IP della macchina, e ha funzionato. C'è un modo migliore?
Gullbyrd,

@Gullbyrd o quello, oppure impostare TUTTO TCP sul gruppo di sicurezza a cui appartengono entrambe le macchine. Fa la stessa cosa.
Dave Beer,

3

Sarà necessario installare RDP 8.0 sui computer Windows 7 e sui server Windows Server 2008 R2, quindi abilitare RDP 8.0 sui criteri del computer locale o sui criteri di gruppo.

Ecco il Microsoft KB per RDP 8.0. https://support.microsoft.com/en-us/kb/2592687

Una volta fatto ciò, dovresti essere in grado di disabilitare TLS 1.0 su computer e server modificando il registro come indicato in questo articolo tecnico. https://technet.microsoft.com/en-us/library/dn786418.aspx

Dopo aver installato RDP 8.0 è anche possibile installare RDP 8.1, ma RDP 8.0 deve essere installato prima di installare RDP 8.1. RDP 8.0 contiene sia i componenti del protocollo lato client sia quelli lato server, ma RDP 8.1 include solo il client. Microsoft KB per RDP 8.1 è KB2830477.

Ho apportato queste modifiche su una delle mie stazioni di lavoro Windows 7 e testato le connessioni RDP con l'impostazione "Richiedi l'uso di livello di sicurezza specifico per connessioni remote (RDP)" Criteri di gruppo abilitata e impostata su "SSL (TLS 1.0)" per assicurarmi che non ricorrerebbe alla crittografia RDP.

AGGIORNAMENTO 19/06/2015:

Ho finalmente avuto la possibilità di testarlo su uno dei nostri server Windows Server 2008 R2 e sicuramente interrompe le connessioni RDP al server. Sembra che i componenti lato server RDP 8.0 siano installati solo su computer Windows 7 e non vengano installati su server Windows Server 2008 R2.


L'articolo della knowledge base di supporto a cui si fa riferimento attualmente non funziona (ciclo di reindirizzamento), tuttavia è possibile utilizzare la versione della cache di Google per visualizzare i contenuti. È interessante notare che in questo articolo non c'è ancora alcuna menzione del supporto TLS 1.1 o 1.2 e tuttavia suppongo che sia la ragione principale per cui qualcuno guarderà a questa domanda! Esistono anche molti avvertimenti, tra cui gli amministratori locali che non sono più in grado di accedere a meno che non vengano aggiunti specificamente al gruppo di utenti di Remote Destop. Fai attenzione se stai provando questo.
CarlR,

Hai aperto la porta UDP 3389 sul server quando hai provato a connetterti al server 2008?
Elvar,

Sono arrivato al punto di disabilitare temporaneamente Windows Firewall sul server 2008 R2 server, ma non riuscivo ancora a collegarmi usando RDP con TLS 1.0 disabilitato sul server.
Kenny R,

3

Come pubblicato su Come disabilitare TLS 1.0 senza interrompere RemoteApps sul server 2012 R2 ma ripubblicando qui a beneficio di coloro che potrebbero non monitorare quel collegamento:

Dopo quasi un anno, ho finalmente trovato una soluzione funzionante per disabilitare TLS 1.0 / 1.1 senza interrompere la connettività RDP e Servizi Desktop remoto e avviare RemoteApps:

Esegui IISCrypto e disabilita TLS 1.0, TLS 1.1 e tutte le cifre errate.

Sul server di Servizi Desktop remoto che esegue il ruolo di gateway, aprire la politica di sicurezza locale e accedere a Opzioni di sicurezza - Crittografia di sistema: utilizzare algoritmi conformi a FIPS per crittografia, hash e firma. Modificare l'impostazione di sicurezza su Abilitato. Riavviare per rendere effettive le modifiche.

In alcuni casi (soprattutto se si utilizzano certificati autofirmati su Server 2012 R2), potrebbe essere necessario impostare l'opzione Criterio di sicurezza di rete: livello di autenticazione LAN Manager su Invia solo risposte NTLMv2.


2

Solo un aggiornamento su questo se qualcun altro sta cercando informazioni su di esso. Per i miei box Windows 7 a 64 bit ho dovuto installare KB2574819 (primo) e KB2592687 (secondo) Windows 7 deve avere SP1 installato prima di installare quei 2 pacchetti. Se hai problemi con l'installazione di SP1 come ho fatto io, prima ho dovuto disinstallare KB958830, quindi installare SP1.

Per le mie scatole di Windows Server 2008 R2, ho dovuto installare KB3080079. Una volta che hai fatto questo e hai messo in atto tutte le impostazioni appropriate per la comunicazione sicura, allora utilizzerà TLS 1.2. Puoi confermare usando Wireshark per eseguire una cattura della comunicazione tra le tue due caselle.



0

Un caso non coperto dalle risposte esistenti: i client Windows 7 che si connettono tramite un gateway RDP useranno comunque TLS 1.0 durante la connessione al gateway e falliranno se il gateway non supporta TLS 1.0, anche dopo aver applicato KB3080079 , come osservato in questo thread del forum TechNet .

Per utilizzare TLS 1.2 per la connessione tramite un gateway RDP, assicurarsi che KB3140245 sia installato e aggiungere le seguenti chiavi del Registro di sistema (salvare in un file con .regestensione da importare):

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

Come documentato in KB3140245 , questo sostituirà WINHTTP_OPTION_SECURE_PROTOCOLSper impostazione predefinita TLS 1.2 (e solo TLS 1.2). Quindi tieni presente che influenzerà più del semplice client RDP.

(Nota: se si desidera la retrocompatibilità, è dword:00000800possibile modificare dword:00000A00o dword:00000A80includere TLS 1.1 e 1.0 rispettivamente)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.