Quick Links

Have you ever entered the wrong password on your computer by accident and noticed it takes a few moments to respond in comparison to entering the correct one? Why is that? Today's SuperUser Q&A post has the answer to a curious reader's question.

Today’s Question & Answer session comes to us courtesy of SuperUser—a subdivision of Stack Exchange, a community-driven grouping of Q&A web sites.

Screenshot courtesy of sully213 (Flickr).

The Question

SuperUser reader user3536548 wants to know why there is a longer response time when an incorrect password is entered:

When you enter a password and it is correct, the response time is practically instantaneous. But when you enter an incorrect password (by accident or having forgotten the correct one), it takes a while (10-30 seconds) before it responds that the password is incorrect.

Why does it take so long (relatively) to say that the password is incorrect? This has always bugged me when entering incorrect passwords on Windows and Linux systems (regular and VM-based). I am not sure about Mac OSX since I cannot remember if it is the same (it has been a while since I last used a Mac).

I am asking in the context of a user logging in to the system physically on location rather than through SSH which could conceivably use somewhat different mechanisms to log in (validate credentials).

Why is there a longer response time when you enter an incorrect password?

The Answer

SuperUser contributor Michael Kjorling has the answer for us:

Why does it take so long (relatively) to say that the password is incorrect?

It does not. Or rather, it does not take the computer any longer to determine that your password is incorrect compared to it being correct. The work involved for the computer is, ideally, exactly the same. Any password verification scheme that takes a different amount of time based on whether the password is correct or incorrect can be exploited to gain knowledge, however small, of the password in less time than would otherwise be the case.

The delay is an artificial delay to make repeatedly trying to gain access by using different passwords infeasible, even if you have some idea of what the password is and automatic account lockout is disabled (which it should be in most scenarios as it would otherwise allow for a trivial denial of service against an arbitrary account).

The general term for this behavior is tarpitting. While the Wikipedia article talks more about network service tarpitting, the concept is generic. The Old New Thing is not an official source either, but the article "Why does it take longer to reject an invalid password than to accept a valid one?" does talk about this (near the end of the article).


Have something to add to the explanation? Sound off in the comments. Want to read more answers from other tech-savvy Stack Exchange users? Check out the full discussion thread here.