Background of Password cracking
Passwords to access computer systems are usually stored, in
some form, in a database in order for the system to perform
password verification. To enhance the privacy of passwords, the
stored password verification data is generally produced by
applying a one-way function to the password, possibly in
combination with other available data. For simplicity of this
discussion, when the one-way function does not incorporate a
secret key, other than the password, we refer to the one way
function employed as a hash and its output as a hashed password.
Even though functions that create hashed passwords may be
cryptographically secure, possession of a hashed password
provides a quick way to verify guesses for the password by
applying the function to each guess, and comparing the result to
the verification data. The most commonly used hash functions can
be computed rapidly and the attacker can do this repeatedly with
different guesses until a valid match is found, meaning the
plaintext password has been recovered.
The term password cracking is typically limited to recovery of
one or more plaintext passwords from hashed passwords. Password
cracking requires that an attacker can gain access to a hashed
password, either by reading the password verification database
or intercepting a hashed password sent over an open network, or
has some other way to rapidly and without limit test if a
guessed password is correct. Without the hashed password, the
attacker can still attempt access to the computer system in
question with guessed passwords. However well designed systems
limit the number of failed access attempts and can alert
administrators to trace the source of the attack if that quota
is exceeded. With the hashed password, the attacker can work
undetected, and if the attacker has obtained several hashed
passwords, the chances for cracking at least one is quite high.
There are also many other ways of obtaining passwords illicitly,
such as social engineering, wiretapping, keystroke logging,
login spoofing, dumpster diving, timing attack, etc.. However,
cracking usually designates a guessing attack.
Cracking may be combined with other techniques. For example, use
of a hash-based challenge-response authentication method for
password verification may provide a hashed password to an
eavesdropper, who can then crack the password. A number of
stronger cryptographic protocols exist that do not expose
hashed-passwords during verification over a network, either by
protecting them in transmission using a high-grade key, or by
using a zero-knowledge password proof.