Tenho um problema e espero que alguns de vocês tenham encontrado o mesmo problema e o tenham resolvido.
Tenho duas contas em um domínio específico (digamos conta A e conta B). Quando tenho o tipo de criptografia RC4_HMAC_MD5 ativado, ambas as contas podem se comunicar com Kerberos para um site específico (no mesmo domínio, mesmo endpoint, Windows Server 2012 R2). Eles se comunicam com o servidor do mesmo computador (windows 10). Quando desabilito o RC4_HMAC_MD5, apenas a conta A pode se comunicar com o Kerberos, a conta B sempre retorna ao NTLM.
Examinei rapidamente as opções de conta no servidor AD, mas ambas as contas têm a caixa de seleção "Esta conta oferece suporte à criptografia Kerberos AES de 128 bits" DESMARCADA.
Eles são membros de grupos diferentes, mas não acho que isso possa impedir a conta B de usar Kerberos, pois a conta B usa Kerberos quando RC4_HMAC_MD5 está ativo.
Alguém tem uma ideia de como procurar a solução? Por onde posso começar?
Altere a senha da conta B. Isso derivará novas chaves Kerberos para essa conta e, se a alteração tiver sido feita em um controlador de domínio não antigo, resultará no armazenamento de chaves AES (junto com o restante).
Em seguida, faça logoff e logon novamente, tente visitar o webapp e use
klist
para verificar se você obteve tickets para aquele serviço que usa AES tanto para a chave de serviço quanto para a chave de sessão.Parece que a última alteração de senha da conta B foi feita há muito tempo, numa época em que seus KDCs suportavam apenas RC4, mas nada mais recente. As chaves Kerberos para uma conta são derivadas diretamente de sua senha – por exemplo, a chave RC4 é literalmente o hash NT MD4, enquanto as chaves AES são hashes PBKDF2 – ou seja, não é possível para o Windows “atualizá-las”, pois não sabe a senha original.
Livrar-se do RC4, portanto, requer a alteração da senha 'krbtgt', a alteração das senhas de todas as contas de usuário e até mesmo a alteração das senhas de todas as contas de serviço (e a reemissão de novos keytabs para os serviços que usam um keytab) para que todos eles tenham Chaves AES disponíveis.
Esta opção só é relevante quando a conta está sendo usada como um serviço (ou seja, outra conta está solicitando tickets para SPNs pertencentes a esta conta), pois o KDC precisa saber quais tickets o aplicativo de serviço real é capaz de receber. (O KDC não se comunica com o serviço, portanto não há outra maneira de saber se o serviço pode compreender tickets AES ou não.)
Quando a conta está sendo usada como cliente, a opção é irrelevante porque o sistema cliente informa diretamente ao KDC quais tipos de criptografia ele é capaz de usar (como parte do AS-REQ). E é claro que o KDC já sabe quais chaves armazenou para aquele usuário.
Portanto, deve-se verificar a conta de serviço correspondente ao aplicativo da web, se houver, mas geralmente não é necessária para contas de usuário normais.