Unir-se ao domínio do AD com o Windows 10 usando o cartão inteligente

6

Minha empresa "centrada no domínio" do Windows decidiu abruptamente fazer a transição do Windows 7 para o Windows 10, e tornou-se meu trabalho tornar a imagem preparada em nosso domínio com nosso sistema de autenticação baseado em token / cartão inteligente. Este era um problema para o Windows 7, no entanto, era fácil de corrigir com a criação de uma cadeia de confiança de certificados. Eu não estava encarregado de configurá-lo completamente no Windows 7, então não tenho certeza sobre o funcionamento interno de todo o processo do Kerberos.

Com o Windows 10, no entanto, isso tem sido um pesadelo. Espelhei todo o meu processo de 7 a 10, incluindo todos os certificados ausentes (usamos netdom para adicionar via linha de comando, com / securepasswordprompt), mas não importa o que eu faça, meus computadores não ingressarão no domínio com um cartão inteligente. Eles adicionam sem problemas usando um nome de usuário / senha (sem 2FA), mas com um cartão inteligente, recebo o seguinte erro:

The KDC certificate for the domain controller does not contain the KDC Extended Key Usage (EKU): 1.3.6.1.5.2.3.5: Error Code 0xc0000320. The domain administrator will need to obtain a certificate with the KDC EKU for the domain controller to resolve this error. When using Windows Server Certificate Services create a certificated based on the Kerberos Authentication Template.

Meu entendimento é que esse OID específico é para autenticação de servidor, e os certificados raiz e de CA que adicionei à conta do computador têm os propósitos adequados atribuídos a eles. Eu fui diretamente para o nosso servidor de CA no domínio e obtive os certificados de raiz, juntamente com as CRLs que eu não tinha, mas o erro permanece o mesmo. Hoje, fiz mais leituras e ativei a chave de registro de depuração do kerberos e, depois de tentar adicionar novamente, o controlador de domínio retornou KDC_ERR_ETYPE_NOTSUPP .

Isso me levou a investigar os métodos de criptografia usados entre as duas máquinas, o Windows 7 tem o RC4, o AES128 / 256 habilitado e o Windows 10 tem apenas o AES128 / 256 e os "futuros tipos" ativados. Naturalmente, liguei o RC4, para que houvesse consistência entre as duas máquinas, e me vi com um novo erro no log de eventos: KDC_ERR_PREAUTH_REQUIRED - isso me leva a acreditar que os métodos de criptografia agora estão trabalhando em conjunto com cada um deles. de outros.

Lendo on-line, descobri que esse erro KDC_ERR_PREAUTH_REQUIRED geralmente é apenas um aviso ou um "falso positivo" e pode ser ignorado (quando a máquina estiver no domínio). Antes da associação ao domínio, esse erro significa que o usuário digitou a senha incorreta (tenho certeza de que meu smart card está usando o PIN correto) ou que a chave de criptografia está configurada incorretamente entre a máquina e o DC. Eu também desabilitei Kerberos pre-authentication required na minha conta no AD, mas quando tentei adicionar a máquina, ele errou com smartcard logon is required and was not used . Eu testei isso com o Wireshark, e recebi o mesmo erro ao longo de 4 frames, na sequência de AS_REQ -> KDC_ERR_PREAUTH_REQ -> AS_REQ -> AS_REP .

Depois de tudo isso, não consegui fazer um erro diferente, então estou efetivamente preso. Eu tentei mudar o tempo na máquina com o Windows 10 para horas à frente do DC, e o DC informou corretamente que não foi possível entrar devido a uma distorção de tempo, o que eu esperava que acontecesse, então eu sei que há algum tipo de comunicação em. Eu sou capaz de nslookup / ping o DC pelo seu FQDN, e eu sou incapaz de ping usando apenas o seu nome. Existe algum outro método que eu possa usar para investigar este problema, ou alguém já experimentou isso antes?

update: % dePREAUTH_FAILED alterado para PREAUTH_REQUIRED .

update2:

Depois de fazer uma captura Wireshark ao unir uma máquina com Windows 7 ao domínio, vejo o seguinte resultado de padrão inicial (cli for client e srv for server):

(cli)AS-REQ
(srv)AS-REP
(cli)TGS-REQ
(srv)TGS-REP
(cli)TGS-REQ
(srv)TGS-REP

Há muito mais no log acima, mas essa é a primeira seção que difere. Em contraste, em uma máquina com Windows 10, vejo:

(cli)AS-REQ
(srv)KRB Error: KRB5KDC_ERR_PREAUTH_REQUIRED
(cli)AS-REQ
(srv)AS-REP

... e é aí que o log é interrompido, com uma falha no log de eventos. Eu li uma postagem que discutia a modificação da chave de registro Security Packages sob HKLM\SYSTEM\CurrentControlSet\Control\LSA , para ter kerberos msv1_0 schannel wdigest tspkg pku2u , que é o que minha máquina com Windows 7 tinha. A máquina Windows 10 tinha apenas duas aspas, como "" . Adicionar isso não parece ajudar, no entanto.

    
por Y. Park 06.04.2016 / 03:11

1 resposta

1

Tivemos o mesmo problema e resolvemos o problema emitindo novamente os certificados do controlador de domínio com o KDC EKU necessário. Nossos certificados de controlador de domínio agora têm quatro EKUs: Client, Server, KDC e Smart Card. Também tivemos que ajustar os SANs para nossos certificados de controlador de domínio.

Se você não quiser fazer isso, convém experimentar a desativação da configuração "Exigir validação estrita do KDC" no cliente para ver se isso ajuda. Isso parece ser uma alteração não muito bem documentada no comportamento do Windows 7, ou pelo menos não é consistente com o modo como a configuração é documentada na planilha / documentação das configurações de diretiva de grupo.

link

"A validação estrita do KDC é um conjunto de critérios mais restritivo que garante que todos os itens a seguir sejam atendidos:

  • O controlador de domínio tem a chave privada para o certificado fornecido.

  • Para sistemas ingressados em domínio, a autoridade de certificação (CA) que emitiu o certificado do KDC está no armazenamento NTAuth.

  • Para sistemas que não fazem parte do domínio, a CA raiz do certificado do KDC está no armazenamento Raiz de terceiros de terceiros ou Smart Roots do Smart Card.

  • O certificado do KDC tem o KDC EKU.

  • O campo DNSName do certificado KDC da extensão subjectAltName (SAN) corresponde ao nome DNS do domínio.

Para o logon com cartão inteligente não associado ao domínio, é necessária uma validação rigorosa do KDC.

Para desabilitar esse comportamento padrão, desabilite a configuração da Diretiva de Grupo Exigir a validação estrita do KDC. "

Mais informações:

O que há de novo na autenticação Kerberos no link

Alterações padrão da Validação rigorosa do KDC

"Para a assinatura do cartão inteligente não associada ao domínio, é necessária uma validação rigorosa do KDC.

"Para desabilitar esse comportamento padrão, desative a configuração da Diretiva de Grupo Exigir a validação estrita do KDC."

    
por 06.04.2016 / 05:27