Compartilhar via


Remote Desktop Services: Forçando o SHA-256 (ou superior) com o RDP na porta 3389

Houve uma boa mudança quanto a política de utilização de certificados digitais aplicado pela Microsoft, onde o SHA1 esta sendo descontinuado. Pois bem, onde isso impacta efetivamente? OS certificados auto assinados por exemplo, precisam se tornar mais seguros para acesso inúmeros acessos, incluindo o acesso remoto através de protocolo RDP pela porta TCP 3389. Este requisito (até o dia de hoje), permite com que as empresas fiquem aderentes, ou melhor dizendo "Compliant", com diversas normas de segurança por organizações relacionadas, como por exemplo o PCI.

Resumindo bem a história, a Microsoft descontinuou assinaturas criadas com base em SHA1 em SSL e certificados de assinatura de código até o dia 1 de janeiro de 2017 (ou seja, isso já aconteceu). Nativamente uma estrutura com Windows Server não migra suas estações de trabalho e servidores para o novo formato, portanto a mudança deve ser feita de forma manual. Pois bem... este post conta um pouco sobre a questão de certificação digital e coloca uma ferramenta rápida para aumentar a segurança dos servidores e atuar com a certificação digital em formato SHA-256 ou superior.

Todos os certificados devem ter assinatura SHA2 (ou superior) para executar o acesso remoto através do serviço de terminal utilizando o RDP. Na prática esta política afeta "somente" os certificados emitidos pela CA que são membros do Programa de certificados raiz do Windows. Isso significa que os certificados emitidos por outras CAs (incluindo CAs privadas de empresas) ainda poderão emitir certificados assinados pela SHA1 após essa data e funcionarão normalmente (sem muitos problemas). 

É bom lembrar que a maioria dos aplicativos modernos suportam a família de algoritmos SHA2, por isso a Microsoft recomenda que sua CA passe a assinar certificados com algorítimos SHA2 de assinatura (SHA256, SHA384, SHA521). Deve-se lembrar também que é importante verificar a existência de aplicações legado dentro da empresa que possam sentir o impacto dessa mudança. Você precisa garantir que uma aplicação legado de sua empresa suporte a mudança do SHA1 para SHA2 ou superior.

Desde o lançamento do Windows Vista (a mais de 7 anos atrás), podemos dizer que o pacote de algoritmos CNG (criptografia ECC) ainda não é amplamente suportado e utilizado nem mesmo por toda a linha dos produtos mais fortes e atuais da Microsoft. Por exemplo, infra-estrutura em nuvem: System Center, Windows e Azure não suportam CNG. Isso ocorre porque todos esses produtos dependem de .NET que não possui plena aderência. Porém, contudo e entretanto ... existem soluções alternativas e não tão complexas que podem ser efetuadas. 

Os usuários imaginam que seus certificados (SSL, assinatura de código, autenticação de cliente) devem usar certificados CNG para obter a assinatura SHA2, que na verdade não é bem assim. De fato, não há relação entre GNC e SHA2 e não importa qual algoritmo de chave pública é usado no certificado de entidade final não é armazenado no certificado. A assinatura é gerada por uma autoridade de assinatura. Ou seja, apenas o servidor CA deve usar o provedor que é capaz de produzir assinaturas SHA2. Os clientes podem usar provedores herdados para chaves públicas e ter assinatura SHA2. A assinatura é gerada por uma CA emissora. 

Se você estiver utilizando o Windows Server 2008 (ou mais recente) com uma CA ativa, pode mover o PKI inteiro para fazer uso de SHA2 sem reinstalar as CAs. Embora, seja possível configurar apenas uma CA única para usar a assinatura SHA2, não faz qualquer sentido executar essa atividade visto que outras CAs ainda fazem uso do legado SHA1. 

Regra de ouro (pelo MVP, Vadims Podāns) : Todas as PKI devem compartilhar o mesmo algoritmo de chave pública, comprimento de chave pública e algoritmo de assinatura entre CAs na árvore. Não cometa erros, quando o CA raiz usa a chave pública RSA de 2048 bits com assinatura SHA1 e CA intermediárias usam uma chave pública RSA de 4096 bits com assinatura SHA521. É óbvio que a CA raiz será o alvo de um ataque, porque ele usa chaves e assinaturas mais fracas.

Em outras palavras, o nível de segurança efetivo da árvore PKI é determinado pelas propriedades mais baixas e mais fracas de CAs na árvore. Por exemplo, a CA Raiz é 512 bits RSA e SHA256, Intermediário ECC ECDS_P256 e SHA1 resultará em propriedades eficazes: Algoritmo chave: RSA, Comprimento da chave: 512, Assinatura: SHA1.

**Use o software da Nartac Software para corrigir esse problema ** ( Link para download: https://www.nartac.com/Products/IISCrypto/Download).

**01. **Baixe e instale os programas do link à cima;

02. Clique em Best Practices;

**03. **Na coluna de protocolos, deixe ativo apenas o TLS 1.2;

**04. **Na coluna de hashes, desabilite MD5 e SHA;

**05. **Clique em Apply

https://4.bp.blogspot.com/-o3-0ex0TzrY/WNvubV4GtvI/AAAAAAAALuY/sQZNN7YJDdcdiZjBVg0LSJqiunnylW1rwCLcB/s640/certificado.PNG

Ou você ainda pode usar os seguintes passos:

**01. **Efetue o logon com a conta Administrator ou qualquer conta com poderes administrativos;

02. Abra o Manage computer certificates (certmgr.msc)

https://1.bp.blogspot.com/-PshVL70QiYs/WNz2Nm4a6QI/AAAAAAAALuo/YaQVi4o_pxI7r6hLwehrubO3p29XNF9wgCLcB/s640/certmgr.PNG

**03. **No painel esquerdo, expanda Certificados (Computador local), expanda Pessoal e, em seguida, clique em Certificados.  

https://1.bp.blogspot.com/-6rU6z8sBVjk/WNz3E_si9rI/AAAAAAAALuw/-ypx2mYG84MO7OuuXgqXXIqc8jZYwvgOgCLcB/s320/certificado1.PNG

04. No menu Ação, clique em Todas as tarefas, clique em Operações avançadas e, em seguida, clique em Criar solicitação personalizada.

https://3.bp.blogspot.com/-PT4ccJjYf1Y/WNz3eAE4NxI/AAAAAAAALu0/8itMSy7cIvwdRHFdaP6Qk88oMfpD-tBTgCLcB/s640/certificado2.PNG

**05. **Clique em Next.

https://4.bp.blogspot.com/-eNo8Xm5Cf44/WNz3rwEXBZI/AAAAAAAALu4/UBMs1cEvgl00qFM0wHlDv1gTn9jAEKlWgCLcB/s640/certificado3.PNG

**06. **Selecione Proceder sem política de inscrição. Clique em Avançar.

**07. **No menu Modelo, selecione a chave CNG (Sem modelo) e verifique se a opção Suprimir extensões padrão não está selecionada.

https://3.bp.blogspot.com/-KkkXuzK5SJs/WNz4IYj8rVI/AAAAAAAALu8/ljlomvOkWcEVVDo-LN__GwkL1uiQ1TQygCLcB/s640/certificado4.PNG

08. Em Formato de solicitação, selecione PKCS # 10. Clique em Avançar.

**09. **Clique na seta ao lado de Detalhes para expandir a seleção. Clique em Propriedades.  

https://2.bp.blogspot.com/-upBaw3IRbC0/WNz4lNklN8I/AAAAAAAALvA/n3yyYHK_C7gVH2HnaYTiR5LWlUNhcWJoQCLcB/s640/certificado5.PNG

**10. **No separador Geral, forneça um nome amigável e descrição para o certificado. Estes podem ser o que quiser.

**11. **No separador Assunto, na caixa Nome da disciplina:

**A. **No menu Tipo, selecione Nome comum. Em Assunto, o campo Valor, digite o nome de domínio totalmente qualificado do servidor e clique em Adicionar.  

https://4.bp.blogspot.com/-IKGu8l_DfYM/WNz5O9sbRII/AAAAAAAALvI/U5dYxdjzPhkXdqkILnWW4Rg2g-Jole3oACLcB/s640/certificado6.PNG

**B. **No menu Tipo, selecione Organização. No campo Valor, digite Empresa. Clique em Adicionar.

C. No menu Tipo, selecione Estado. No campo Valor, digite State. Clique em Adicionar.

D. No menu Tipo, selecione País. No campo Valor, digite País. Clique em Adicionar.

**E. **(Opcional) No menu Tipo, selecione E-mail. No campo Valor, digite um endereço de e-mail de contato. Clique em Adicionar.

**12. **(opcional) Na guia Assunto, na caixa Nome alternativo, insira nomes alternativos de assunto se você precisar deles (estes também podem ser solicitados quando você enviar o CSR).

13. Em Uso de chave e uso de chave estendida na guia Extensões certifique-se de que a Autenticação de servidor está selecionada.

14. Pela guia Private Key, expanda Cryptographic Service Provider e selecione RSA, Microsoft Software Key Storage Provider.  

https://2.bp.blogspot.com/-m_a8EnOAj2o/WNz5_RmxEsI/AAAAAAAALvQ/GhhZwxzazwM4exwkw8EQD0tjFDI4pvAugCLcB/s640/certificado8.PNG

**15. **Em Private Key, expanda Key Options.  

16. Em the Key size menu, selecione um valor igual ou superior a 2048.  

https://1.bp.blogspot.com/-2FoWLO5vUdY/WNz5r6ay4oI/AAAAAAAALvM/Q9LhhuTGVFoGqgLJljb4kGt_Nc5APZ1SgCLcB/s640/certificado7.PNG

17. (opcional) Selecione Make private key exportable.

18. Clique OK.

19. Clique Next.

20. Escolha um nome e uma localização para o CSR.  Selecione Base 64 e clique em Finish.