Falhas de backup do DPAPI MasterKey quando o RWDC não está disponível

Este artigo fornece uma solução para resolver falhas de backup do DPAPI MasterKey que ocorrem quando o RWDC não está disponível.

Aplica-se a: Windows 10, versão 1809, Windows Server 2012 R2, Windows Server 2016, Windows Server 2019
Número de KB original: 3205778

Sintomas

  • O comportamento a seguir ocorre em Windows 8.1 e Windows Server 2012 R2 depois que você instala o MS14-066, KB2992611, KB3000850 ou atualizações mais recentes que incluem essas correções.
  • O mesmo comportamento também ocorre em todas as versões de Windows 10 e versões posteriores do Windows. Os usuários de domínio que fazem logon pela primeira vez em um novo computador em um site que é atendido por um RODC (controlador de domínio somente leitura) experimentam os seguintes erros e problemas.

Problemas genéricos

  1. A abertura do Gerenciador de Credenciais falha com um erro de 0x80090345, que é mapeado para o seguinte:

    Hex Decimal Simbólico Amigável
    0x80090345 -2146892987 SEC_E_DELEGATION_REQUIRED A operação solicitada não pode ser concluída. O computador deve ser confiável para delegação e a conta de usuário atual deve ser configurada para permitir a delegação.
  2. Salvar uma senha RDP falha sem nenhum erro aparente.

  3. As alterações de senha levam mais tempo do que o esperado para serem concluídas.

  4. Explorer trava quando você está criptografando um arquivo.

  5. No Office e Office 365, a adição de uma nova conta no Windows Live Mail 2012 falha com 0x80090345 de erro.

  6. A criação do perfil do Outlook falha com o seguinte erro:

    Uma conexão criptografada com seu servidor de email não está disponível.

  7. Entrar no Lync e no Skype trava ou experimenta um longo atraso durante o estágio "Entrar em contato com o servidor e entrar".

  8. O serviço SQL falha ao iniciar em uma conta de domínio e dispara o seguinte erro:

    Não é possível inicializar a criptografia SSL porque um certificado válido não pôde ser encontrado e não é possível criar um certificado autoassinado.

  9. SQL Server instalação falha com o seguinte erro:

    Erro(s): a instalação do SQL Server encontrou o seguinte erro: "gerando o código de erro do documento XML 0x8410001.

  10. Os usuários de domínio não podem gerenciar bancos de dados SQL do SMSS. (SQL Server Management Studio). Esse problema ocorre quando o banco de dados é navegado por meio do SSMS DataBases ->CustomerDatabase ->Tables ->Nome da tabela.

    Se você clicar com o botão direito do mouse na tabela e selecionar Design, o seguinte erro ocorrerá:

    A operação solicitada não pode ser concluída. O computador deve ser confiável para delegação e a conta de usuário atual deve ser configurada para permitir a delegação. Essa exceção se originou de System_Security_ni! System.Security.Cryptography.ProtectedData.Protect(Byte[], Byte[], System.Security.Cryptography.DataProtectionScope)."

  11. A instalação do WAP do ADFS falha ao criar um certificado autoassinado e dispara o seguinte erro:

    Exceção: ocorreu um erro ao tentar criar o certificado de confiança do proxy.

  12. A instalação do ADLDS em um site coberto somente por RODC falha com o seguinte erro:

    Digite um usuário e uma senha válidos para a conta de serviço selecionada

    1. Nesta situação, o AdamInstall.log mostra o seguinte:

      adamsetup D20.10F8 0255 15:30:22.002 Enter GetServiceAccountError
      adamsetup D20.10F8 0256 15:30:22.002 Digite um nome de usuário e senha válidos para a conta de serviço selecionada.
      adamsetup D20.10F8 0257 15:30:22.002 ADAMERR_SERVICE_INVALID_CREDS

    2. Um rastreamento de rede de exemplo obtido durante a falha mostra que o ADLDS está enviando uma senha incorreta e a solicitação kerberos TGT falha com KDC_ERR_PREAUTH_FAILED:

      Origem Destino Protocolo Descrição
      ADLDS RODC KerberosV5 Cname de Solicitação AS: ADLDSSvc Realm: CONTOSO Sname: krbtgt/contoso {TCP:375, IPv4:7}
      RODC ADLDS KerberosV5 KerberosV5:KRB_ERROR - KDC_ERR_PREAUTH_FAILED (24) {TCP:376, IPv4:7}
    3. A ID do evento 4625 está registrada no log de segurança do servidor ADLDS, da seguinte maneira:

      ID do evento: 4625
      Palavras-chave: Falha de auditoria
      Descrição: falha ao fazer logon em uma conta.
      ..
      Informações sobre falha:
      Motivo da falha: nome de usuário desconhecido ou senha incorreta.
      Status: 0xC000006D
      Sub Status: 0xC000006A
      ..
      Informações do processo:
      Nome do processo do chamador: C:\Windows\ADAM\adaminstall.exe

    • Em que o status e o sub-status se traduzem em:

      Hex Decimal Simbólico Amigável
      0xc000006a -1073741718 STATUS_WRONG_PASSWORD Ao tentar atualizar uma senha, esse retorno status indica que o valor fornecido como a senha atual não está correto.
      0xc000006d -1073741715 STATUS_LOGON_FAILURE O logon tentado é inválido. Isso ocorre devido a um nome de usuário ruim ou informações de autenticação.
    • Em todos os casos, o NETLOGON. O LOG mostra a solicitação DsGetDcName fazendo chamadas para controladores de domínio graváveis:

      [MISC] [3736] Função DsGetDcName chamada: cliente PID=568, Dom:VS Acct:(null) Flags: DS WRITABLE NETBIOS RET_DNS
      [CRÍTICO] [3736] NetpDcMatchResponse: CON-DC4: CONTOSO.COM.: Responder não é um servidor gravável.

      [MISC] [2600] A função DsGetDcName retorna 1355 (cliente PID=564): Dom:VS Acct:(null) Flags: FORCE DS WRITABLE NETBIOS RET_DNS

      Onde:

      Hex Decimal Simbólico Amigável
      0x54b 1355 ERROR_NO_SUCH_DOMAIN O domínio especificado não existe ou não pôde ser contatado.

Motivo

Quando um usuário faz logon em um computador pela primeira vez e tenta criptografar dados pela primeira vez, o sistema operacional deve criar um DPAPI MasterKey preferencial, que se baseia na senha atual do usuário. Durante a criação do DPAPI MasterKey, é feita uma tentativa de fazer backup dessa chave master entrando em contato com um RWDC. Se o backup falhar, o MasterKey não poderá ser criado e um erro de 0x80090345 será retornado.

Essa falha é um novo comportamento, que foi introduzido pelo KB2992611. Em sistemas operacionais mais antigos e em sistemas que não têm KB2992611 instalados, se o cliente não entrar em contato com um RWDC durante o backup do MasterKey, a criação da chave master ainda será permitida e um backup local será criado.

Ou seja, o comportamento herdado executa um backup local da chave master se nenhum RWDC estiver disponível.

Consistente com o resumo de design que os RODCs não armazenam segredos, os RODCs não armazenam ou manipulam o backup do MasterKey. Portanto, em sites em que nenhum RWDC está disponível, os problemas descritos na seção "Sintomas" podem ocorrer.

Observação

Quando uma chave de master preferencial existe, mas expirou (caso de senha expirada), uma tentativa de gerar uma nova chave master é feita. Se não for possível criar um backup de domínio da nova chave master, o cliente retornará ao antigo e o comportamento descrito na seção "Sintomas" não ocorrerá.

O problema ocorre somente se não houver nenhum MasterKey presente e quando o usuário não tiver feito logon no computador antes.

Resolução

  1. Verifique se as estações de trabalho e servidores ingressados no domínio em que o problema ocorre têm acesso aos RWDCs.

    Execute a linha de comando a seguir para verificar se existe um RWDC e está em um estado íntegro:

    nltest /dsgetdc:<domain> /writable [/force]
    

    Use NETLOGON. LOG e um rastreamento de rede com os exemplos de log fornecidos neste artigo para verificar a resolução de nomes e a conectividade com um RWDC.
    Para determinar se você está enfrentando esse problema, tente abrir o CREDMAN no Painel de Controle. Se a tentativa falhar com um erro de 0x80090345, você verificou isso.

  2. Se possível, leve o computador para um site onde existe um RWDC e faça logon lá pela primeira vez. Depois disso, o DPAPI MasterKey será criado e o problema será resolvido.

  3. Se você não tiver acesso a um RWDC e se o usuário não estiver vagando entre computadores, a entrada do registro a seguir poderá ser usada para resolve o problema.

    Definir esse valor como 1 faz com que as chaves DPAPI master sejam apoiadas localmente em vez de usar um backup de domínio. Além disso, as chaves criadas anteriormente não disparam chamadas para um controlador de domínio gravável, exceto em casos limitados, conforme explicado abaixo. Essa configuração de registro se aplica apenas a contas de domínio. As contas locais sempre usam backups locais.

    Path HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Protect\Providers\df9d8cd0-1501-11d1-8c7a-00c04fc297eb
    Configuração ProtectionPolicy
    Tipo de dados DWORD
    Valor 1
    Reinicialização do sistema operacional solicitada Sim
    Anotações SO

Aviso

Não use essa chave de registro se os usuários de domínio fizerem logon em mais de um computador! Como as chaves são apoiadas localmente, qualquer alteração de senha não local pode disparar uma situação em que todas as chaves de master DPAPI são encapsuladas usando a senha antiga e, em seguida, a recuperação de domínio não é possível. Essa chave do registro deve ser definida apenas em um ambiente no qual a perda de dados é aceitável.

Mais informações

Tópico Detalhes
Proteção de Dados do Windows Proteção de Dados do Windows

Backup e restauração de chaves no DPAPI
Quando um computador é membro de um domínio, o DPAPI tem um mecanismo de backup para permitir a desproteção dos dados. Quando um MasterKey é gerado, o DPAPI conversa com um Controlador de Domínio. Os Controladores de Domínio têm um par de chaves públicas/privadas em todo o domínio, associados exclusivamente ao DPAPI. O cliente DPAPI local obtém a chave pública do controlador de domínio de um controlador de domínio usando uma chamada RPC mutuamente autenticada e protegida por privacidade. O cliente criptografa o MasterKey com a chave pública do controlador de domínio. Em seguida, ele armazena esse MasterKey de backup junto com o MasterKey protegido pela senha do usuário. Apesar de desprotegir dados, se o DPAPI não puder usar o MasterKey protegido pela senha do usuário, ele enviará o MasterKey de backup para um Controlador de Domínio usando uma chamada RPC mutuamente autenticada e protegida por privacidade. Em seguida, o controlador de domínio descriptografa o MasterKey com sua chave privada e o envia de volta ao cliente usando a mesma chamada RPC protegida. Essa chamada RPC protegida é usada para garantir que ninguém que escuta na rede possa obter o MasterKey.
Considerações de posicionamento do RODC Considerações de posicionamento do RODC
KB vinculado que altera o comportamento/inicia esse problema. Rollup de atualização de novembro de 2014 para Windows RT 8.1, Windows 8.1 e Windows Server 2012 R2 (KB3000850)
Documento de Protocolo Remoto da Chave de Backup Apêndice B: Comportamento do produto
Executando Client-Side encapsulamento de segredos

Um servidor de Protocolo Remoto BackupKey não executa, na verdade, o backup remoto de segredos. Em vez disso, o servidor encapsula cada segredo e o retorna ao cliente. O cliente é responsável por armazenar o segredo até que ele seja necessário novamente, momento em que o cliente pode solicitar ao servidor para desembrulhar o segredo

Consulte 3.1.4.1.3 BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID