Por que apenas a primeira solicitação para um proxy de autenticação do NTLM é contestada e como as solicitações subsequentes por meio do proxy são autenticadas?

1

Estou tentando desenvolver um túnel de rede que pode atravessar proxies de autenticação NTLM. Como parte disso, estou investigando como funciona a autenticação NTLM. Minha configuração de teste tem WinGate proxy em uma caixa do Windows configurada para exigir autenticação NTLM. Meu cliente Windows está configurado para usar a máquina WinGate como proxy. Depois que o WinGate for reiniciado, a primeira página da Web aberta requer autenticação - vejo a troca do NTLM via Fiddler. Pedidos subseqüentes do mesmo PC não parecem exigir autenticação. Quero dizer, qualquer pedido do PC - não apenas do mesmo navegador - por exemplo, abrir o Firefox quando a autenticação inicial foi feita no Chrome. Capturei todo o tráfego usando o Fiddler (e anteriormente também com o Wireshark) - não vejo nenhuma evidência de qualquer token ou identificação sendo enviada ao proxy. Então, como o proxy sabe permitir essas solicitações subseqüentes? Esse comportamento esperado para a autenticação NTLM?

    
por fineman 27.10.2016 / 14:09

2 respostas

1

Eu encontrei a resposta - o WinGate proxy tem um comportamento não padrão por padrão - ele armazena em cache as credenciais em relação ao endereço IP do cliente. Então, uma vez que o NTLM tenha autenticado uma vez, todas as solicitações subseqüentes do PC serão autenticadas. Isso pode ser cancelado criando uma Regra de Credenciais no WinGate e escolhendo "Não permitir que credenciais estabelecidas por uma sessão sejam usadas por outras sessões"

    
por 01.11.2016 / 09:59
0

Apenas para mais informações sobre isso. Há muito trabalho que precisa ser feito em relação a qualquer handshake / auth do NTLM. Para começar, a solicitação é normalmente enviada 3 vezes para completar o handshake (isso é problemático com o POST com o corpo da mensagem, e o IE tem um hack hediondo para tentar aliviar isso, o que na verdade só causa problemas).

Portanto, o proxy, ao autenticar todas as conexões, está lidando com três vezes as solicitações e também precisa passar esse tráfego de autenticação via SSPI para o controlador de domínio, portanto, a carga no controlador de domínio também é muito maior. Então, o WinGate precisa recuperar o objeto do AD, portanto, o carregamento do LDAP no AD DS também é maior.

Esta carga é reduzida pelo armazenamento em cache das credenciais. Isto é baseado em uma suposição, é claro, que há apenas 1 usuário nesse IP. Se essa suposição for inválida, o WinGate tem regras para substituir esse comportamento.

    
por 11.01.2017 / 23:31