Microsoft NTLM
O Desafio/Resposta do Windows (NTLM) é o protocolo de autenticação usado em redes que incluem sistemas que executam o sistema operacional Windows e em sistemas autônomos.
O pacote de segurança Microsoft Kerberos adiciona maior segurança do que o NTLM aos sistemas em uma rede. Embora o Microsoft Kerberos seja o protocolo de escolha, o NTLM ainda é suportado. O NTLM também deve ser usado para autenticação de logon em sistemas autônomos. Para obter mais informações sobre Kerberos, consulte Microsoft Kerberos.
As credenciais NTLM são baseadas em dados obtidos durante o processo de logon interativo e consistem em um nome de domínio, um nome de usuário e umade hashunidirecional da senha do usuário. O NTLM usa um protocolo de desafio/resposta criptografado para autenticar um usuário sem enviar a senha do usuário por fio. Em vez disso, o sistema que solicita a autenticação deve executar um cálculo que prove que tem acesso às credenciais NTLM seguras.
A autenticação NTLM interativa em uma rede normalmente envolve dois sistemas: um sistema cliente, onde o usuário está solicitando autenticação, e um controlador de domínio, onde as informações relacionadas à senha do usuário são mantidas. A autenticação não interativa, que pode ser necessária para permitir que um usuário já conectado acesse um recurso, como um aplicativo de servidor, normalmente envolve três sistemas: um cliente, um servidor e um controlador de domínio que faz os cálculos de autenticação em nome do servidor.
As etapas a seguir apresentam um esboço da autenticação não interativa NTLM. A primeira etapa fornece as credenciais NTLM do usuário e ocorre apenas como parte do processo de autenticação interativa (logon).
(Somente autenticação interativa) Um usuário acessa um computador cliente e fornece um nome de domínio, nome de usuário e senha. O cliente calcula umade hash decriptográfica da senha e descarta a senha real.
O cliente envia o nome de usuário para o servidor (em de texto sem formatação ).
O servidor gera um número aleatório de 8 bytes, chamado de desafio ou nonce, e o envia para o cliente.
O cliente criptografa esse desafio com o hash da senha do usuário e retorna o resultado para o servidor. Isso é chamado de resposta .
O servidor envia os seguintes três itens para o controlador de domínio:
- Nome de utilizador
- Desafio enviado ao cliente
- Resposta recebida do cliente
O controlador de domínio usa o nome de usuário para recuperar o hash da senha do usuário do banco de dados do Gerenciador de Contas de Segurança. Ele usa esse hash de senha para criptografar o desafio.
O controlador de domínio compara o desafio criptografado que calculou (na etapa 6) com a resposta calculada pelo cliente (na etapa 4). Se forem idênticos, a autenticação será bem-sucedida.
Seu aplicativo não deve acessar o pacote de segurança NTLM diretamente; em vez disso, ele deve usar o pacote de segurança Negociar. Negociar permite que a sua aplicação tire partido de protocolos de segurança mais avançados se forem suportados pelos sistemas envolvidos na autenticação. Atualmente, o pacote de segurança Negociar seleciona entre Kerberos e NTLM. Negociar seleciona Kerberos, a menos que ele não possa ser usado por um dos sistemas envolvidos na autenticação.