O módulo de autenticação integrado do Windows do IIS implementa dois principais protocolos de autenticação: o NTLM e o protocolo de autenticação Kerberos. Ele chama três provedores de serviços de segurança (SSPs) diferentes: Kerberos, NTLM e Negotiate. Esses SSPs e protocolos de autenticação normalmente estão disponíveis e são usados em redes Windows. O NTLM implementa a autenticação NTLM e o Kerberos implementa a autenticação Kerberos v5. Negociar é diferente porque não suporta nenhum protocolo de autenticação. Como a autenticação Integrada do Windows inclui vários protocolos de autenticação, ela precisa de uma fase de negociação antes que a autenticação real entre o navegador da Web e o servidor possa ocorrer. Durante essa fase de negociação, o Negociate SSP determina qual protocolo de autenticação usar entre o navegador da Web e o servidor.
Ambos os protocolos são extremamente seguros e são capazes de autenticar clientes sem transmitir senhas pela rede de qualquer forma, mas são limitados. A autenticação NTLM não funciona nos proxies HTTP porque requer uma conexão ponto a ponto entre o navegador da Web e o servidor para funcionar corretamente. A autenticação Kerberos está disponível apenas nos navegadores IE 5.0 e servidores Web IIS 5.0 ou posterior. Funciona apenas em máquinas com Windows 2000 ou superior e requer a abertura de algumas portas adicionais nos firewalls. O NTLM não é tão seguro quanto o Kerberos, portanto, é sempre recomendável usar o Kerberos o máximo possível. Vamos dar uma boa olhada nos dois.
O NT LAN Manager é um protocolo de autenticação baseado em desafio-resposta usado por computadores Windows que não são membros de um domínio do Active Directory. O cliente inicia a autenticação por meio de um mecanismo de desafio / resposta baseado em um handshake de três vias entre o cliente e o servidor. O cliente inicia a comunicação enviando uma mensagem ao servidor especificando seus recursos de criptografia e contendo o nome da conta do usuário. O servidor gera um valor aleatório de 64 bits chamado nonce e responde à solicitação do cliente retornando esse nonce que contém informações sobre seus próprios recursos. Essa resposta é chamada de desafio. O cliente então usa a sequência de desafio e sua senha para calcular uma resposta, que transmite ao servidor. O servidor valida a resposta que recebeu do cliente e a compara com a resposta NTLM. Se os dois valores forem idênticos, a autenticação será bem-sucedida.
Kerberos é um protocolo de autenticação baseado em ticket usado por computadores Windows que são membros de um domínio do Active Directory. A autenticação Kerberos é o melhor método para instalações internas do IIS. A autenticação Kerberos v5 foi projetada no MIT e definida no RFC 1510. O Windows 2000 e posterior implementam o Kerberos quando o Active Directory é implantado. A melhor parte é que reduz o número de senhas que cada usuário precisa memorizar para usar uma rede inteira em uma - a senha do Kerberos. Além disso, ele incorpora criptografia e integridade da mensagem para garantir que dados de autenticação confidenciais nunca sejam enviados pela rede de maneira clara. O sistema Kerberos opera através de um conjunto de Key Distribution Centers centralizados, ou KDCs. Cada KDC contém um banco de dados de nomes de usuário e senhas para usuários e serviços habilitados para Kerberos.
- NTLM é um protocolo de autenticação baseado em desafio-resposta usado por computadores Windows que não são membros de um domínio do Active Directory. O cliente inicia a autenticação por meio de um mecanismo de desafio / resposta baseado em um handshake de três vias entre o cliente e o servidor. O Kerberos, por outro lado, é um protocolo de autenticação baseado em ticket que funciona apenas em máquinas executando o Windows 2000 ou superior e executando em um domínio do Active Directory. Ambos os protocolos de autenticação são baseados em criptografia de chave simétrica.
- Uma das principais diferenças entre os dois protocolos de autenticação é que o Kerberos oferece suporte a representação e delegação, enquanto o NTLM suporta apenas a representação. Delegação é basicamente o mesmo conceito de representação, que envolve apenas a realização de ações em nome da identidade do cliente. No entanto, a representação apenas funciona dentro do escopo em uma máquina, enquanto a delegação também funciona na rede. Isso significa que o tíquete de autenticação da identidade do cliente original pode ser passado para outro servidor na rede se o servidor acessado originalmente tiver permissão para fazê-lo.
- Embora os dois protocolos de autenticação sejam seguros, o NTLM não é tão seguro quanto o Kerberos porque requer uma conexão ponto a ponto entre o navegador da Web e o servidor para funcionar corretamente. O Kerberos é mais seguro porque nunca transmite senhas pela rede de maneira clara. É único no uso de tickets que comprovam a identidade de um usuário para um determinado servidor sem enviar senhas pela rede ou armazenar em cache senhas no disco rígido do usuário local. A autenticação Kerberos é o melhor método para instalações internas do IIS (sites usados apenas por clientes de domínio).
- Uma das principais vantagens do Kerberos sobre o NTLM é que o Kerberos oferece autenticação mútua e visa um modelo cliente-servidor, o que significa que a autenticidade do cliente e do servidor é verificada. No entanto, o serviço e o cliente devem estar em execução no Windows 2000 ou superior, caso contrário, a autenticação falhará. Ao contrário do NTLM, que envolve apenas o servidor IIS7 e o cliente, a autenticação Kerberos também envolve um controlador de domínio do Active Directory.
Embora os dois protocolos sejam capazes de autenticar clientes sem transmitir senhas pela rede de qualquer forma, o NTLM autentica os clientes por meio de um mecanismo de desafio / resposta baseado em um handshake de três vias entre o cliente e o servidor. O Kerberos, por outro lado, é um protocolo de autenticação baseado em ticket que é mais seguro que o NTLM e suporta autenticação mútua, o que significa que a autenticidade do cliente e do servidor é verificada. Além disso, o Kerberos oferece suporte a representação e delegação, enquanto o NTLM suporta apenas a representação. O NTLM não é tão seguro quanto o Kerberos, por isso é sempre recomendável usar o Kerberos o máximo possível.