Protegendo credenciais na Configuração de Estado Desejado usando certificados

8

Sou novo no DSC e estou tentando descobrir como fazer isso funcionar para nós.

O que eu estou preso é como as credenciais são realmente protegidas. Meu entendimento atual é que não é tão bom assim.

Os três grandes problemas são estes. Como o uso de uma chave pública como uma fonte de descriptografia realmente protege essas credenciais? Quais computadores precisam do certificado em cenários push e pull? Quais são as melhores práticas para lidar com credenciais à luz desses problemas?

O uso de uma chave pública de um certificado é bom para autenticar a origem de uma transmissão. Mas usá-lo como uma chave de descriptografia significa que o acesso à chave pública do certificado determina o acesso à senha.

Se você tiver que enviar o certificado para todos os computadores que precisam descriptografar arquivos MOF, o que há para impedir que usuários comuns obtenham acesso ao certificado e possam descriptografá-lo? Dizer segurança do diretório ativo significa que você pode deixá-lo em texto simples e confiar apenas na segurança do AD.

Alguém pode me ajudar a entender isso?

    
por Simon Gill 30.09.2014 / 13:02

1 resposta

10

A ideia básica

  1. O host a ser configurado deve ter um certificado instalado (com chave privada).
  2. Ao configurar o gerenciador de configuração local (LCM) do nó de destino, você deve especificar a impressão digital desse mesmo certificado. Isso informa ao LCM qual certificado local (ou com mais precisão qual chave privada do certificado) será usado para decriptografar a credencial.
  3. Sua configuração do DSC deve apontar para um arquivo que contenha somente o certificado (chave pública) desse mesmo certificado. Isso é feito nos dados de configuração, para que você possa especificar um certificado diferente para cada nó, caso pretenda usar a mesma configuração para cada um.
  4. Quando o MOF é gerado, a chave pública é usada pela máquina que gera o MOF para criptografar a credencial.
  5. Quando o LCM no nó de destino recupera a configuração do servidor de recebimento (no formulário MOF), ele usa a chave privada do certificado identificado pela impressão digital para descriptografar o objeto de credencial.

Em algum detalhe

A chave pública não pode ser usada para descriptografar, e você não está compartilhando a chave privada com a geração de configuração nem as máquinas de distribuição.

Parece que você está considerando o fluxo de trabalho como se houvesse um único certificado em uso para todas as credenciais. Você poderia fazer isso, mas acho que a idéia é que cada nó tem seu próprio par de chaves.

"Usuários médios", que estou assumindo como usuários não administrativos, não podem exportar a chave privada de um certificado (a menos que recebam as permissões) e, como você não estará movendo essa chave, não há pouca chance de ser exposto. Se o usuário é administrador, então é claro que ele tem acesso.

É muito mais provável que o armazenamento de credenciais de texto simples em uma configuração seja exposto, seja pela configuração do powershell não processado ou pelo MOF gerado. Se não estiver criptografado, você precisará proteger:

  • O sistema de arquivos / local de compartilhamento de rede em que a configuração está armazenada
  • O fs / share onde os MOFs gerados são armazenados
  • O fs / share onde você armazena os MOFs no servidor pull
  • Assegure-se de que o servidor pull esteja executando por SSL (você deve fazer isso de qualquer maneira)
  • Verifique se há autenticação no servidor Pull, caso contrário, qualquer consulta anônima pode recuperar uma configuração com credenciais expostas.

Acredito que as credenciais seguras no DSC são bem feitas, mas é um pouco difícil de configurar inicialmente.

O AD PKI facilita isso

Se você estiver usando o Enterprise PKI em seu ambiente de AD, há uma boa chance de que cada máquina esteja configurada para inscrição automática na CA, por isso já possui um certificado específico de máquina que renova em si. Ele tem as configurações necessárias para serem usadas para esse propósito.

Como estou implementando isso

Como o ferramental está tão vazio para o DSC agora, é provável que você crie seu próprio fluxo de trabalho para gerar configurações e escrever scripts para ajudar de qualquer maneira.

No meu caso eu tenho scripts separados para gerar o meta MOF do LCM e para gerar a configuração real do nó, então meus passos para proteger credenciais são divididos entre ambos.

No script de geração do LCM, na verdade, consultei a autoridade de certificação do domínio para encontrar o certificado que corresponde ao nome do host da máquina que está sendo configurada. Eu recupero o certificado (a CA não tem a chave privada, apenas o público) e salve-a em um caminho para uso posterior. O meta MOF é configurado para usar a impressão digital do certificado.

No script de configuração do nó, defino os dados de configuração para usar o arquivo cert (novamente, somente chave pública). Quando o MOF é gerado, as credenciais são criptografadas com esse certificado e só podem ser descriptografadas com a chave privada no nó específico.

Referência

Eu referenciei minha própria experiência acima, mas este artigo foi uma grande ajuda ao longo do caminho: link

Eu mesmo tive que preencher alguns dos buracos. Uma coisa a ser observada nos exemplos mostrados é que eles fornecem o Thumprint na configuração do nó. Isso não é necessário para a configuração do nó; eles estão apenas gerando a configuração e a meta-configuração do LCM ao mesmo tempo e usando os dados de configuração para armazenar a impressão digital para uso lá.

Esse último parágrafo pode ser confuso, mas faz mais sentido no contexto do artigo. Se você não estiver gerando as duas configurações ao mesmo tempo, o exemplo delas parecerá estranho. Eu testei isso; Thumbprint não é necessário nos dados de configuração para criptografia de credenciais. CertificateFile é necessário, e deve estar nos dados de configuração, portanto, se você não estava usando dados de configuração antes, você estará agora.

    
por 01.10.2014 / 19:45