Por que demora mais para um computador responder a uma senha incorreta ou a uma incorreta?
Você já digitou a senha errada no seu computador por acidente e percebeu que leva alguns momentos para responder em comparação com a correta? Por que é que? O post de perguntas e respostas do SuperUser de hoje tem a resposta para a pergunta de um curioso leitor.
A sessão de perguntas e respostas de hoje nos é oferecida por cortesia do SuperUser - uma subdivisão do Stack Exchange, um agrupamento de sites de perguntas e respostas conduzido pela comunidade..
Imagem cedida por sully213 (Flickr).
A questão
Leitor de superusuário user3536548 quer saber por que há um tempo de resposta mais longo quando uma senha incorreta é digitada:
Quando você digita uma senha e está correta, o tempo de resposta é praticamente instantâneo. Mas quando você digita uma senha incorreta (por acidente ou esquecendo a correta), leva um tempo (10 a 30 segundos) antes de responder que a senha está incorreta..
Por que demora tanto (relativamente) dizer que a senha está incorreta? Isso sempre me incomodava ao inserir senhas incorretas nos sistemas Windows e Linux (regular e baseado em VM). Não tenho certeza sobre o Mac OSX, pois não consigo lembrar se é o mesmo (já faz um tempo desde a última vez que usei um Mac).
Eu estou perguntando no contexto de um usuário logando no sistema fisicamente no local ao invés de através do SSH que poderia usar mecanismos um pouco diferentes para logar (validar credenciais).
Por que há um tempo de resposta mais longo quando você digita uma senha incorreta?
A resposta
O colaborador do SuperUser Michael Kjorling tem a resposta para nós:
Por que demora (relativamente) para dizer que a senha está incorreta?
Isso não. Ou melhor, não leva mais o computador para determinar se a 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 em se a senha está correta ou incorreta pode ser explorada para obter conhecimento, por menor que seja, da senha em menos tempo do que seria o caso.
O atraso é um atraso artificial para fazer tentativas repetidas de obter acesso usando senhas diferentes inviáveis, mesmo que você tenha alguma idéia do que é a senha e o bloqueio automático da conta esteja desabilitado (o que deve ser na maioria dos cenários como permitiria uma negação de serviço trivial 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. A velha novidade também não é uma fonte oficial, mas o artigo “Por que demora mais para rejeitar uma senha inválida do que aceitar uma senha válida?” fala sobre isso (perto do final do artigo).
Tem algo a acrescentar à explicação? Som desligado nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui.