Como desabilito o TLS 1.0 sem interromper o RDP?

47

Nosso processador de cartão de crédito nos notificou recentemente que, a partir de 30 de junho de 2016, precisaremos desativar o TLS 1.0 para permanecer Compatível com PCI . Eu tentei ser proativo desabilitando o TLS 1.0 em nossa máquina Windows Server 2008 R2, apenas para descobrir que, imediatamente após a reinicialização, eu não consegui me conectar a ele por meio do RDP (Remote Desktop Protocol). Após algumas pesquisas, parece que o RDP suporta apenas o TLS 1.0 (consulte aqui ou aqui ), ou pelo menos não está claro como habilitar o RDP sobre o TLS 1.1 ou o TLS 1.2. Alguém sabe uma maneira de desabilitar o TLS 1.0 no Windows Server 2008 R2 sem quebrar o RDP? A Microsoft planeja o suporte para o RDP sobre o TLS 1.1 ou o TLS 1.2?

Observação: parece haver uma maneira de fazer isso configurando o servidor para usar a Camada de Segurança RDP mas que disables Autenticação no nível da rede , que parece trocar um mal por outro.

UPDATE 1 : a Microsoft já resolveu esse problema. Veja a resposta abaixo para a atualização do servidor relevante.

UPDATE 2 : A Microsoft lançou um tutorial sobre Suporte ao SQL Server para o PCI DSS 3.1 .

    
por Mike 11.05.2015 / 22:15

9 respostas

19

A Microsoft lançou o patch para este problema 15 de setembro de 2015

Consulte o link

    
por 15.09.2015 / 23:12
15

Estou estudando isso há alguns dias, já que temos que cumprir o PCI-DSS 3.1, que exige que o TLS 1.0 seja desativado.

Também não queremos voltar à camada de segurança RDP, que é uma grande preocupação de segurança.

Eu finalmente consegui encontrar alguma documentação que confirma que o TLS 1.1 e o TLS 1.2 são suportados pelo RDP. Esta documentação está oculta em um log de SChannel e um especificação detalhada do RDP .

Há uma completa falta de documentação do fluxo principal no Technet ou em outros sites da Microsoft. Por isso, esperamos que documentar isso aqui possa ajudar algumas pessoas.

Extratos relevantes dos links fornecidos:

Do link do MSDN:

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

A partir da especificação PDF do 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"

Portanto, poderíamos concluir que você pode usar o TLS 1.1 ou 1.2 no Windows Server 2008 R2 de acordo com esta documentação.

No entanto, nossos testes provaram que isso NÃO funciona do cliente RDP do Windows 7 (versão 6.3.9600) quando o TLS 1.0 está desabilitado e a opção de segurança RDP está definida para exigir o TLS 1.0.

Isto é claro, assim como ativar o TLS 1.1 e 1.2 que estão desativados por padrão no 2008R2 - aliás, fazemos isso usando o muito útil IIS Crypto Tool da Nartac Software .

Ao analisar esse problema, é útil ativar o registro em log do SChannel para ver mais detalhes sobre o que está acontecendo quando sua sessão é aberta.

Você pode definir o registro de SChannel alterando o HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ EventLogging chave para 5 e reinicialização.

Depois que isso for feito, você poderá observar os eventos SChannel, que mostram a versão do TLS sendo usada quando uma conexão RDP é feita. Depois que o log estiver ativado, você poderá observar o erro SChannel quando o cliente RDP tentar estabelecer uma conexão no Windows 2008 R2 com o TLS 1.0 desativado:

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

Eu também testei a desabilitação do TLS 1.0 no Windows Server 2012 e 2012 R2, o que posso confirmar que funciona perfeitamente usando o Cliente RDP do Windows 7. A entrada de registro do SChannel mostra o TLS 1.2 sendo usado:

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

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

Espero que isso ajude alguém que esteja procurando esclarecimentos sobre isso.

Continuarei procurando como podemos fazer o RDP funcionar no TLS 1.1 e no TLS 1.2 no Windows Server 2008 R2.

ATUALIZAÇÃO: 2015-AUG-05

Levantamos a questão de o RDP não funcionar com o Server 2008 R2 com suporte da Microsoft, incluindo etapas para reprodução.

Depois de várias semanas de retrocesso e encaminhamento, finalmente recebemos um telefonema hoje da equipe de suporte para reconhecer que eles realmente poderiam reproduzi-lo e isso agora é classificado como um bug. Um patch de atualização será lançado, no momento em que isso é esperado em outubro de 2015. Assim que eu tiver um artigo da base de conhecimento ou outros detalhes, eu os adicionarei a esta postagem.

Espero que os usuários do Windows Server 2008 R2 possam, pelo menos, resolver isso antes do prazo final de junho de 2016, assim que o patch for lançado.

ATUALIZAÇÃO: 19 de setembro de 2015

A Microsoft finalmente lançou um artigo de suporte kb sobre este aqui e posso confirmar que funciona bem .

    
por 16.06.2015 / 14:59
8

Use o IPsec, como o documento recomenda: "Configurando uma sessão strongmente criptografada primeiro (por exemplo, túnel IPsec) e enviando dados por SSL dentro do túnel seguro"

A principal razão para fazer isso ao configurar o TLS para RDP é que a política de firewall é facilmente auditada para conformidade (vs provando que um buch de alterações de registro é compatível) e o IPsec é muito fácil de configurar no Windows.

Se você precisar de compatibilidade total com o pacote B, o IPSEC com tls 1.0 é a única maneira disponível para aplicar aos comprimentos de certificado apropriados

    
por 11.05.2015 / 23:41
8

Esta não é uma resposta para a pergunta, mas para a sub-questão "Como restaurar o acesso remoto a uma máquina virtual onde desativei o TLS 1.0 e sem acesso físico?".

Desativei o TLS 1.0 usando o IISCrypto, que forneceu um aviso útil sobre o efeito colateral que o RDP deixará de funcionar se estiver definido como TLS. Então eu chequei:

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

e meu nível de segurança foi definido como "Negociar". Presumi que isso significa que, se o TLS não estiver disponível, ele se degradaria normalmente para a Segurança do RDP.

Mas não, negociar não funciona assim. Você precisa definir o nível de segurança para Segurança RDP, não para Negociar, antes de desabilitar o TLS 1.0.

Então, perdi minha capacidade de me conectar remotamente à minha instância do AWS!

Para reconectar, usei outra instância do AWS.

  1. Eu atualizei o SecurityGroup para permitir a conexão do firewall dessa máquina para minha máquina "perdida".
  2. Eu abri um compartilhamento de rede administrativa no DOS, com um usuário administrador e senha:

net use \lost_machine_ip\c$

  1. Depois abri o Regedit, e no menu Arquivo, selecione "Conectar Registro de Rede" e coloque o IP do servidor "perdido". Você deve ver o registro do servidor remoto. Vá para:

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

e defina o valor de SecurityLayer para 0 (0 é Segurança do RDP).

Você poderá conectar-se remotamente e reativar o TLS 1.0 no IISCrypto, se necessário.

    
por 11.06.2015 / 10:38
3

Você precisará instalar o RDP 8.0 em seus computadores Windows 7 e servidores Windows Server 2008 R2 e, em seguida, habilitar o RDP 8.0 na diretiva de grupo ou diretiva de computador local.

Aqui está o Microsoft KB para o RDP 8.0. link

Depois que isso for feito, você poderá desabilitar o TLS 1.0 nos computadores e servidores editando o registro conforme instruído neste artigo da technet. link

Depois de instalar o RDP 8.0, você também pode instalar o RDP 8.1, mas o RDP 8.0 deve ser instalado antes da instalação do RDP 8.1. O RDP 8.0 contém os componentes de protocolo do cliente e do lado do servidor, mas o RDP 8.1 inclui apenas o cliente. O KB da Microsoft para o RDP 8.1 é o KB2830477.

Fiz essas alterações em uma das minhas estações de trabalho do Windows 7 e testei as conexões RDP com a configuração de Diretiva de Grupo "Exigir o uso de camada de segurança específica para conexões remotas (RDP)" ativada e definida como "SSL (TLS 1.0)" para Certifique-se de que não voltaria à criptografia RDP.

ATUALIZAÇÃO 19/06/2015:

Eu finalmente tive a chance de testar isso em um de nossos servidores Windows Server 2008 R2, e isso definitivamente interrompe as conexões RDP com o servidor. Parece que os componentes do lado do servidor RDP 8.0 só são instalados em computadores Windows 7 e não são instalados em servidores Windows Server 2008 R2.

    
por 16.06.2015 / 21:46
3

Como postado em Como desabilitar o TLS 1.0 sem interromper o RemoteApps no servidor 2012 R2 , mas repostar aqui para o benefício daqueles que podem não estar monitorando esse link:

Após quase um ano, finalmente descobri uma solução funcional para desabilitar o TLS 1.0 / 1.1 sem interromper a conectividade do RDP e dos Serviços de Área de Trabalho Remota e iniciar o RemoteApps:

Execute o IISCrypto e desative o TLS 1.0, o TLS 1.1 e todas as cifras inválidas.

No servidor dos Serviços de Área de Trabalho Remota executando a função de gateway, abra a Política de Segurança Local e navegue até Opções de Segurança - Criptografia do sistema: use algoritmos compatíveis com FIPS para criptografia, hashing e assinatura. Altere a configuração de segurança para Ativado. Reinicialize para que as alterações entrem em vigor.

Observe que, em alguns casos (especialmente se estiver usando certificados auto-assinados no Server 2012 R2), a opção Security Policy Network Security: LAN Manager pode precisar ser definida para Enviar apenas respostas NTLMv2.

    
por 24.02.2017 / 10:35
2

Apenas uma atualização sobre isso se alguém mais estiver procurando informações sobre ele. Para as minhas caixas de 64 bits do Windows 7 eu tive que instalar o KB2574819 (primeiro) e o KB2592687 (segundo) O Windows 7 precisa ter o SP1 instalado antes que esses 2 pkgs sejam instalados. Se você tiver problemas ao instalar o SP1 como eu fiz, tive que desinstalar o KB958830 primeiro e depois instalar o SP1.

Para minhas caixas do Windows Server 2008 R2, tive que instalar o KB3080079. Depois de fazer isso e ter todas as configurações apropriadas para comunicação segura, ele usará o TLS 1.2 Você pode confirmar usando o Wireshark para realizar uma captura da comunicação entre suas duas caixas.

    
por 02.11.2015 / 15:29
0

Eu usei com sucesso o rdesktop ( link ) para que o Linux contorne este problema.

    
por 16.09.2015 / 11:44
0

Um caso não abordado pelas respostas existentes: Os clientes do Windows 7 conectados por meio de um Gateway RDP ainda usarão o TLS 1.0 ao se conectarem ao gateway e falharão se o gateway não oferecer suporte ao TLS 1.0, mesmo depois de aplicar KB3080079 , conforme observado neste tópico do fórum do TechNet .

Para usar o TLS 1.2 para se conectar por meio de um Gateway RDP, verifique se o KB3140245 está instalado e adicione as seguintes chaves do Registro (salvar em um arquivo com extensão .reg para importar):

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

Conforme documentado em KB3140245 , isso substituirá WINHTTP_OPTION_SECURE_PROTOCOLS para usar o TLS 1.2 (e somente o TLS 1.2) por padrão . Portanto, esteja ciente de que isso afetará mais do que apenas o cliente RDP.

(Nota: Se desejar compatibilidade com versões anteriores, dword:00000800 pode ser alterado para dword:00000A00 ou dword:00000A80 para incluir o TLS 1.1 e 1.0 respectivamente)

    
por 01.03.2018 / 09:02