Por que uma falha de login via ssh demora mais do que um sucesso?

7

Isso é algo que me incomoda há anos, e estou curioso para saber se um de vocês pode explicar isso para mim.

Se eu fizer ssh em uma das minhas caixas linux e fornecer as credenciais corretas, minha autenticação será quase instantânea. Na mesma caixa, se eu fornecer a senha errada, levará alguns segundos para apresentar a mensagem de login e o prompt de resposta com falha. O que está acontecendo no servidor que leva uma senha incorreta por tanto tempo para falhar?

Obrigado sf!

SR

    
por Shaheeb Roshan 04.08.2010 / 17:35

4 respostas

13

Este é um recurso de segurança implementado pelo módulo PAM que verifica suas senhas.

Se você ler a página de manual do pam_unix (8), verá a opção "nodelay". O pam_unix é usado pelo ssh para verificar senhas, pelo login e qualquer outra coisa que verifique sua senha. "A ação padrão é que o módulo solicite um atraso na falha da ordem de dois segundos."

Há uma função que todos os módulos pam podem chamar para solicitar o atraso do material principal do pam. pam_fail_delay. Esta função leva o atraso mais longo que qualquer módulo chamado e muda aleatoriamente em até 25% e espera muito tempo antes de retornar ao aplicativo (sshd, login, etc).

É uma medida de segurança comum em muitos sistemas que uma falha (como tentar verificar a senha de um usuário que não existe) irá inserir uma pequena suspensão. Isso impede ataques de temporização, pois, caso contrário, um login malsucedido em uma conta válida poderia levar um pouco mais de tempo (criptografia de senha, estatísticas no diretório pessoal, etc) do que uma tentativa de fazer login em uma conta inexistente. Outros termos para isso são canal secreto , canal de tempo ou ataque do canal lateral . Também desencoraja ataques de força bruta (mas não muito bem, apenas abra mais conexões). A aleatorização do sono também ajuda, também.

    
por 04.08.2010 / 20:11
9

Embora eu não esteja intimamente familiarizado com o funcionamento do OpenSSH, é lógico que esse seja um recurso de segurança. Sem demora, seria fácil para um atacante (automatizado) tentar várias senhas em um período muito curto de tempo. Qualquer tipo de "fator de lodo" torna esse tipo de ataque menos viável.

    
por 04.08.2010 / 17:41
1

Isso depende da configuração de autenticação do seu servidor. Na maioria das caixas de linux (plain vanilla da prateleira), isso usará o PAM, para contas locais. No entanto, provavelmente também procurará um serviço NIS. Isso nunca acontece quando você loga com sucesso em uma conta de usuário local, mas se isso não funcionar, o PAM irá expirar na busca pelo servidor NIS (ou pelas credenciais no servidor NIS, se houver). / p>

Naturalmente, existem muitos outros cenários possíveis, nos quais princípios semelhantes se aplicam. Para lhe dar uma resposta detalhada, você precisaria fornecer mais detalhes sobre a configuração de autenticação do seu servidor (por exemplo, /etc/nsswitch.conf e /etc/pam.conf ou o conteúdo dos arquivos em /etc/pam.d).

    
por 04.08.2010 / 17:43
0

Não é também algo a ver com os mecanismos de fallback? O que acontece se você faz o login com a saída detalhada, quando você obtém suas credenciais corretamente, não precisa recorrer a qualquer outra forma de autenticação.

    
por 04.08.2010 / 18:04

Tags