Quando você digita uma senha e ela está correta, a resposta é praticamente instantânea (ou seja, o processo de logon).
Quando você digita uma senha incorreta (acidentalmente, esquecida etc.), leva um tempo (10 a 30 segundos) antes de responder que a senha estava incorreta.
Por que demora tanto (relativamente) para dizer "senha incorreta"?
Isso sempre me incomodou ao inserir senhas incorretas no Windows e no linux (real e VM); Não tenho certeza sobre o mac OSX, pois não me lembro se é o mesmo, já faz um tempo desde a última vez que usei um mac.
EDIT: por uma questão de duplicação, estou perguntando no contexto de um usuário fazendo logon no sistema no computador físico, e não através do ssh, que poderia usar mecanismos um pouco diferentes para fazer login / validar credenciais.
Respostas:
Não faz. Ou melhor, não leva mais tempo para o computador determinar que sua senha está incorreta em comparação com a correta. O trabalho envolvido para o computador é, idealmente, exatamente o mesmo. (Qualquer esquema de verificação de senha que leve um tempo diferente, com base na senha correta ou incorreta, pode ser explorado para obter conhecimento, por menor que seja, da senha em menos tempo do que seria o caso.)
O atraso é um atraso artificial para inviabilizar a tentativa de obter acesso repetidamente usando senhas diferentes, mesmo se você tiver alguma idéia do que a senha provavelmente é e o bloqueio automático de conta estiver desabilitado (o que deveria ocorrer na maioria dos cenários, como seria caso contrário). permitir uma negação trivial de serviço contra uma conta arbitrária).
O termo geral para esse comportamento é tarpitting . Enquanto o artigo da Wikipedia fala mais sobre tarpitting de serviço de rede, o conceito é genérico. The Old New Thing também não é uma fonte oficial, mas Por que demora mais para rejeitar uma senha inválida do que para aceitar uma senha válida? fala sobre isso perto do final do artigo.
fonte