Nosso processador de cartão de crédito nos notificou recentemente que a partir de 30 de junho de 2016 precisaremos desabilitar o TLS 1.0 para permanecer em conformidade com PCI . 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, não consegui me conectar a ele por meio do Remote Desktop Protocol (RDP). Após algumas pesquisas, parece que o RDP suporta apenas o TLS 1.0 (veja aqui ou aqui ), ou pelo menos não está claro como habilitar o RDP sobre TLS 1.1 ou 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 suporte para RDP sobre TLS 1.1 ou TLS 1.2?
Nota: Parece haver uma maneira de fazer isso configurando o servidor para usar a camada de segurança RDP, mas isso desativa a autenticação em nível de rede , o que parece trocar um mal por outro.
ATUALIZAÇÃO 1 : A Microsoft já abordou esse problema. Veja a resposta abaixo para a atualização do servidor relevante.
ATUALIZAÇÃO 2 : A Microsoft lançou um tutorial sobre suporte do SQL Server para PCI DSS 3.1 .
A Microsoft lançou o patch para este problema em 15 de setembro de 2015
Consulte https://support.microsoft.com/en-us/kb/3080079
Estou investigando isso há alguns dias, pois precisamos cumprir o PCI-DSS 3.1, que exige que o TLS 1.0 seja desabilitado.
Também não queremos recorrer ao RDP Security Layer, que é uma grande preocupação de segurança.
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á escondida em um registro de SChannel e uma especificação muito detalhada para RDP .
Há uma completa falta de documentação de fluxo principal no Technet ou em outros sites da Microsoft, parece que documentar isso aqui pode ajudar algumas pessoas.
Extratos relevantes dos links fornecidos:
Do link do MSDN:
A partir do PDF de especificação RDP:
Portanto, pode-se 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 no cliente Windows 7 RDP (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.
Isso, é claro, além de habilitar o TLS 1.1 e 1.2, que estão desativados por padrão no 2008R2 - aliás, fazemos isso usando a ferramenta de criptografia IIS muito útil da Nartac Software .
Ao analisar esse problema, é útil habilitar o log do SChannel para ver mais detalhes do que está acontecendo quando sua sessão é aberta.
Você pode definir o log SChannel alterando a chave HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\EventLogging para 5 e reinicializando.
Feito isso, você pode observar os eventos do SChannel que mostram a versão do TLS sendo usada quando uma conexão RDP é feita. Depois que o log estiver habilitado, você poderá observar o erro SChannel quando o cliente RDP tentar estabelecer uma conexão no Windows 2008 R2 com o TLS 1.0 desabilitado:
Também testei desabilitar o TLS 1.0 no Windows Server 2012 e 2012 R2, que posso confirmar que funciona perfeitamente usando o Windows 7 RDP Client. A entrada de log SChannel mostra o TLS 1.2 sendo usado:
Espero que isso ajude alguém que está procurando esclarecimentos sobre isso.
Continuarei procurando como podemos fazer o RDP funcionar em TLS 1.1 e TLS 1.2 no Windows Server 2008 R2.
ATUALIZAÇÃO: 2015-AGO-05
Levantamos o problema do RDP não funcionar com o Server 2008 R2 com suporte da Microsoft, incluindo etapas para reproduzir.
Após várias semanas de idas e vindas, finalmente recebemos um telefonema hoje da equipe de suporte para reconhecer que eles poderiam realmente reproduzi-lo e isso agora é categorizado como um bug. Um patch de atualização será lançado, no momento é esperado para outubro de 2015. Assim que eu tiver um artigo da KB ou outros detalhes, vou adicioná-los a este post.
Espero que aqueles presos ao Windows Server 2008 R2 possam pelo menos resolver isso antes do prazo 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 isso aqui e posso confirmar que funciona bem.
Use IPsec em vez disso, como o documento recomenda: "Configurando uma sessão fortemente criptografada primeiro (por exemplo, túnel IPsec), depois enviando dados por SSL dentro de um 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 (em vez de provar que várias alterações do registro são compatíveis) e o IPsec é muito fácil de configurar no Windows.
Se você precisar de conformidade com o conjunto B completo, o IPSEC com tls 1.0 é a única maneira disponível para aplicar aos comprimentos de certificado apropriados
Esta não é uma resposta para a pergunta, mas para a subpergunta "Como faço para restaurar o acesso remoto a uma máquina virtual onde desabilitei o TLS 1.0 e sem acesso físico?".
Desativei o TLS 1.0 usando o IISCrypto, que deu um aviso útil sobre o efeito colateral de que o RDP deixará de funcionar se estiver definido como TLS. Então fiz o check-in:
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 degradará normalmente para a segurança RDP.
Mas não, Negotiate não funciona assim. Você precisa definir o nível de segurança para segurança RDP, não negociar, antes de desabilitar o TLS 1.0.
Então, perdi minha capacidade de me conectar remotamente à minha instância da AWS!
Para reconectar, usei outra instância da AWS.
net use \\lost_machine_ip\c$
\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\
e defina o valor para
SecurityLayer
0 (0 é RDP Security).Você poderá então se conectar remotamente e reativar o TLS 1.0 no IISCrypto, se necessário.
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 política de computador local ou na política de grupo.
Aqui está o Microsoft KB para o RDP 8.0. https://support.microsoft.com/en-us/kb/2592687
Feito isso, você poderá desabilitar o TLS 1.0 nos computadores e servidores editando o registro conforme instruído neste artigo da technet. https://technet.microsoft.com/en-us/library/dn786418.aspx
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 lado do cliente e do servidor, mas o RDP 8.1 inclui apenas o cliente. O Microsoft KB para RDP 8.1 é KB2830477.
Fiz essas alterações em uma das minhas estações de trabalho Windows 7 e testei as conexões RDP com a configuração de política de grupo "Exigir uso de camada de segurança específica para conexões remotas (RDP)" habilitada e definida como "SSL (TLS 1.0)" para garantir 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ão instalados apenas em computadores Windows 7 e não são instalados em servidores Windows Server 2008 R2.
Conforme publicado em Como desabilitar o TLS 1.0 sem quebrar RemoteApps no servidor 2012 R2 , mas republicando aqui para o benefício daqueles que podem não estar monitorando esse link:
Depois de 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, TLS 1.1 e todas as cifras ruins.
No servidor de 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, hash e assinatura. Altere a configuração de segurança para Ativado. Reinicie para que as alterações tenham efeito.
Observe que, em alguns casos (especialmente se estiver usando certificados autoassinados no Server 2012 R2), a opção de política de segurança Segurança de rede: o nível de autenticação do LAN Manager pode precisar ser definido como Enviar apenas respostas NTLMv2.
Apenas uma atualização sobre isso, se alguém estiver procurando informações sobre isso. Para minhas caixas do Windows 7 de 64 bits, tive que instalar o KB2574819 (primeiro) e o KB2592687 (segundo). O Windows 7 precisa ter o SP1 instalado antes que esses 2 pacotes sejam instalados. Se você tiver problemas para instalar o SP1 como eu, 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.
Eu usei com sucesso o rdesktop ( http://www.rdesktop.org ) para Linux para contornar esse problema.
Um caso não coberto pelas respostas existentes: os clientes do Windows 7 que se conectam 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 após a aplicação do KB3080079 , conforme observado neste tópico do fórum TechNet .
Para usar o TLS 1.2 para conexão por meio de um Gateway RDP, certifique -se de que o KB3140245 esteja instalado e adicione as seguintes chaves de registro (salve em um arquivo com
.reg
extensão para importação):Conforme documentado em KB3140245 , isso será substituído
WINHTTP_OPTION_SECURE_PROTOCOLS
para usar o TLS 1.2 (e apenas o TLS 1.2) por padrão. Portanto, esteja ciente de que isso afetará mais do que apenas o cliente RDP.(Observação: se a compatibilidade com versões anteriores for desejada,
dword:00000800
pode ser alterada paradword:00000A00
oudword:00000A80
para incluir TLS 1.1 e 1.0, respectivamente)