Jump to: navigation, search

A password is a secret word or string of characters that is used for authentication, to prove identity or gain access to a resource (Example: An access code is a type of password). The password must be kept secret from those not allowed access.



For the purposes of more compellingly authenticating the identity of one computing device to another, passwords have significant disadvantages (they may be stolen, spoofed, forgotten, etc.) over authentications systems relying on cryptographic protocols which are more difficult to circumvent.

Easy to remember, hard to guess

The easier a password is for the owner to remember generally means it will be easy for a hacker to guess. Passwords which are difficult to remember will reduce the security of a system because (a) users might need to write down or electronically store the password, (b) users will need frequent password resets and (c) users are more likely to re-use the same password. Similarly, the more stringent requirements for password strength, e.g. "have a mix of uppercase and lowercase letters and digits" or "change it monthly", the greater the degree to which users will subvert the system. [1]

In [2], Jeff Yan et al. examine the effect of advice given to users about a good choice of password. They find that passwords based on thinking of a phrase and taking the first letter of each word, are just as memorable as naively selected passwords, and just as hard to crack as randomly generated passwords. Combining two unrelated words is another good method. Having a personally designed "algorithm" for generating obscure passwords is another good method.

However, asking users to remember a password consisting of a “mix of uppercase and lowercase characters” is like asking them to remember a sequence of bits: hard to remember, and only a little bit harder to crack (e.g. only 128 times harder to crack for 7-letter passwords, less if the user simply capitalises the first letter). Asking users to use "both letters and digits" will often lead to easy-to-guess substitutions such as 'E' --> '3' and 'I' --> '1', substitutions which are well known to crackers. Similarly typing the password one keyboard row higher is a common trick known to crackers.

Factors in the security of a password system


Effective access control provisions may force extreme measures on criminals seeking to acquire a password or biometric token.[3] Less extreme measures include extortion, rubber hose cryptanalysis, side channel attack, ...


Rate at which an attacker can try guessed passwords


Many systems store or transmit a cryptographic hash of the password in a manner that makes the hash value accessible to an attacker. When this is done, and it is very common, an attacker can work off-line, rapidly testing candidate passwords against the true password's hash value. Passwords that are used to generate cryptographic keys (e.g., for disk encryption or Wi-Fi security) can also be subjected to high rate guessing. Lists of common passwords are widely available and can make password attacks very efficient. (See Password cracking.) Security in such situations depends on using passwords or passphrases of adequate complexity, making such an attack computationally infeasible for the attacker. Some systems, such as PGP and Wi-Fi WPA apply a computation-intensive hash to the password to slow such attacks. See key strengthening.

Form of stored passwords

Some computer systems store user passwords as cleartext, against which to compare user log on attempts. If an attacker gains access to such an internal password store, all passwords -- and so all user accounts -- will be compromised. If some users employ the same password for accounts on different systems, those will be compromised as well.


A common approach stores only a "hashed" form of the plaintext password. When a user types in a password on such a system, the password handling software runs through a cryptographic hash algorithm, and if the hash value generated from the user's entry matches the hash stored in the password database, the user is permitted access. The hash value is created by applying a hash function (for maximum resistance to attack this should be a cryptographic hash function) to a string consisting of the submitted password and, usually, another value known as a salt. The salt prevents attackers from easily building a list of hash values for common passwords. MD5 and SHA1 are frequently used cryptographic hash functions.

A modified version of the DES algorithm was used for this purpose in early Unix systems. The UNIX DES function was iterated to make the hash function equivalent slow, further frustrating automated guessing attacks, and used the password candidate as a key to encrypt a fixed value, thus blocking yet another attack on the password shrouding system. More recent Unix or Unix like systems (eg, Linux or the various BSD systems) use what most believe to be still more effective protective mechanisms based on MD5, SHA1, Blowfish, Twofish, or any of several other algorithms to prevent or frustrate attacks on stored password files[5].

If the hash function is well designed, it will be computationally infeasible to reverse it to directly find a plaintext password. However, many systems do not protect their hashed passwords adequately, and if an attacker can gain access to the hashed values he can use widely available tools which compare the encrypted outcome of every word from some list, such as a dictionary (many are available on the Internet). Large lists of possible passwords in many languages are widely available on the Internet, as are software programs to try common variations. The existence of these dictionary attack tools constrains user password choices which are intended to resist easy attacks; they must not be findable on such lists. Obviously, words on such lists should be avoided as passwords. Use of a key stretching hash such as PBKDF2 is designed to reduce this risk.

A poorly designed hash function can make attacks feasible even if a strong password is chosen. See LM hash for a very widely deployed, and deplorably insecure, example. [2]

Methods of verifying a password over a network

A variety of methods have been used to verify submitted passwords in a network setting:

Simple transmission of the password


Email is sometimes used to distribute passwords. Since most email is sent as cleartext, it is available without effort during transport to any eavesdropper. Further, the email will be stored on at least two computers as cleartext -- the sender's and the recipient's. If it passes through intermediate systems during its travels, it will probably be stored on those as well, at least for some time. Attempts to delete an email from all these vulnerabilities may, or may not, succeed; backups or history files or caches on any of several systems may still contain the email. Indeed merely identifying every one of those systems may be difficult. Emailed passwords are generally an insecure method of distribution.

An example of cleartext transmission of passwords is the original website. When you logged into your account, your username and password are sent from your computer's browser through the Internet as cleartext. In principle, anyone could read them in transit and thereafter log into your account as you;'s servers have no way of distinguishing such an attacker from you. In practice, an unknowably larger number could do so as well (eg, employees at your Internet Service Provider, at any of the systems through which the traffic passes, etc). More recently, has offered a secure login option, which, like many e-commerce sites, uses the SSL / (TLS) cryptographically based protocol to eliminate the cleartext transmission. But, because anyone can gain access to (without logging in at all), and then edit essentially all articles, it can be argued that there is little need to encrypt these transmissions as there's little being protected. Other websites (eg, banks and financial institutions) have quite different security requirements, and cleartext transmission of anything is clearly insecure in those contexts.


Transmission through encrypted channels


Hash-based challenge-response methods


Zero-knowledge password proofs



Procedures for changing passwords


Identity management systems are increasingly used to automate issuance of replacements for lost passwords, a feature called self service password reset. The user's identity is verified by asking questions and comparing the answers to ones previously stored (ie, when the account was opened). Typical questions include "Where were you born?," "What is your favorite movie?" or "What is the name of your pet?" In many cases the answers to these questions can be relatively easily guessed by an attacker, determined by low effort research, or obtained through social engineering, and so this is less than fully satisfactory as a verification technique. While many users have been trained never to reveal a password, few consider the name of their pet or favorite movie to require similar care.

Password longevity

"Password aging" is a feature of some operating systems which forces users to change passwords frequently (e.g., quarterly, monthly or even more often), with the intent that a stolen password will become unusable more or less quickly. Such policies usually provoke user protest and foot-dragging at best and hostility at worst. Users may develop simple variation patterns to keep their passwords memorable. In any case, the security benefits are distinctly limited, if worthwhile, because attackers often exploit a password as soon as it is compromised, which will probably be some time before change is required. In many cases, particularly with administrative or "root" accounts, once an attacker has gained access, he can make alterations to the operating system that will allow him future access even after the initial password he used expires. (see rootkit). Implementing such a policy requires careful consideration of the relevant human factors.

Number of users per password



Design of the protected software

Common techniques used to improve the security of software systems protected by a password include:

  • Not echoing the password on the display screen as it is being entered or obscuring it as it is typed by using asterisks (*) or bullets (•).
  • Allowing passwords of adequate length (some legacy operating systems, including early versions of Unix and Windows, limited passwords to an 8 character maximum.
  • Requiring users to re-enter their password after a period of inactivity (a semi log-off policy).
  • Enforcing a password policy to increase password strength and security.
    • Requiring periodic password changes.
    • Assigning randomly chosen passwords.
    • Requiring minimum or maximum password lengths.
    • Some systems require characters from various character classes in a password -- for example, "must have at least one uppercase and at least one lowercase letter". However, all-lowercase passwords are more secure per keystroke than mixed capitalization passwords[6].
    • Providing an alternative to keyboard entry (eg, spoken passwords, or biometric passwords).
  • Using encrypted tunnels or password-authenticated key agreement to prevent access to transmitted passwords via network attacks
  • Limiting the number of allowed failures within a given time period (to prevent repeated password guessing). After the limit is reached, further attempts will fail (including correct password attempts) until the beginning of the next time period. However, this is vulnerable to a form of denial of service attack.
  • Introducing a delay between password submission attempts to slow down automated password guessing programs.


Password cracking



Studies of production computer systems have consistently shown that a large fraction of all user-chosen passwords are readily guessed automatically. For example, Columbia University found 22% of user passwords could be recovered with little effort. [7] According to Bruce Schneier, examining data from a 2006 phishing attack, 55% of MySpace passwords would be crackable in 8 hours using a commercially available Password Recovery Toolkit capable of testing 200,000 passwords per second in 2006.[8] He also reported that the single most common password was password1, confirming yet again the general lack of informed care in choosing passwords amongst users. (He nevertheless maintained, based on these data, that the general quality of passwords has improved over the years -- for example, average length was up to eight characters from under seven in previous surveys, and less than 4% were dictionary words. [9])

Alternatives to passwords for access control


  • Single-use passwords. Having passwords which are only valid once makes many potential attacks ineffective. Most users find single use passwords extremely inconvenient. They have, however, been widely implemented in personal online banking, where they are known as TANs. As most home users only perform a small number of transactions each week, the single use issue has not led to intolerable customer dissatisfaction in this case.
  • Security tokens are similar in some ways to single-use passwords, but the value to be entered is displayed on a small (generally pocketable) item and changes every minute or so.
  • Access controls based on public key cryptography e.g. ssh. The necessary keys are usually too large to memorize (but see proposal Passmaze) and must be stored on a local computer, security token or portable memory device, such as a flash disk or floppy disk.
  • Biometric methods promise authentication based on unalterable personal characteristics, but currently (2008) have high error rates and require additional hardware to scan, for example, fingerprints, irises, etc. They have proven easy to spoof in some famous incidents testing commercially available systems, for example, the gummie fingerprint spoof demonstration,[10] and, because these characteristics are unalterable, they cannot be changed if compromised; this is a highly important consideration in access control as a compromised access token is necessarily insecure.
  • Single sign-on technology is claimed to eliminate the need for having multiple passwords. Such schemes do not relieve user and administrators from choosing reasonable single passwords, nor system designers or administrators from ensuring that private access control information passed among systems enabling single sign-on is secure against attack. As yet, no satisfactory standard has been developed.
  • Envaulting technology is a password-free way to secure data on e.g. removable storage devices such as flash drives. Instead of user passwords, access control is based on the user's access to a network resource.
  • Non-text-based passwords, such as graphical passwords or mouse-movement based passwords.[3] Another system requires users to select a series of faces as a password, utilizing the human brain's ability to recall faces easily.[4]. So far, these are promising, but are not widely used.
  • Graphical passwords are an alternative means of authentication for log-in intended to be used in place of conventional password; they use images, graphics or colours instead of letters, digits or special characters. In some implementations the user is required to pick from a series of images in the correct sequence in order to gain access[11]. While some believe that graphical passwords would be harder to crack, others suggest that people will be just as likely to pick common images or sequences as they are to pick common passwords.[12]
  • 2D Key (2-Dimensional Key) [5] is a 2D matrix-like key input method having the key styles of multiline passphrase, crossword, ASCII/Unicode art, with optional textual semantic noises, to create big password/key beyond 128 bits to realize the MePKC (Memorizable Public-Key Cryptography) using fully memorizable private key upon the current private key management technologies like encrypted private key, split private key, and roaming private key.

Website password systems



So-called website password and membership management systems often involve the use of Java or JavaScript code existing on the client side (meaning the visitor's web browser) HTML source code (for example, AuthPro). Drawbacks to such systems are the relative ease in bypassing or circumventing the protection by switching off JavaScript and Meta redirects in the browser, thereby gaining access to the protected web page. Others take advantage of server-side scripting languages such as ASP or PHP to authenticate users on the server before delivering the source code to the browser. Popular systems such as Sentry Login and Password Sentry take advantage of technology in which web pages are protected using such scripting language code snippets placed in front of the HTML code in the web page source saved in the appropriate extension on the server, such as .asp or .php.

History of passwords

Passwords or watchwords have been used since ancient times. Polybius describes the system for distribution watchwords in the Roman military as follows:


Passwords in military use evolved to include not just a password, but a password and a counterpassword; for example in the opening days of the Battle of Normandy, paratroopers of the U.S. 101st Airborne Division used a password - "thunder" - which was presented as a challenge, and answered with the correct response - "flash". The challenge and response were changed periodically. American paratroopers also famously used a device known as a "cricket" on D-Day in place of a password system as a temporarily unique method of identification; one metallic click given by the device in lieu of a password was to be met by two clicks in reply.[14]

Passwords have been used with computers since the earliest days of computing. MIT's CTSS, one of the first time sharing systems, was introduced in 1961. It had a LOGIN command that requested a user password. "After typing PASSWORD, the system turns off the printing mechanism, if possible, so that the user may type in his password with privacy." [15] Robert Morris invented the idea of storing login passwords in a hashed form as part of the Unix operating system. His algorithm, know as crypt(3), used a 12-bit salt and invoked a modified form of the DES algorithm 25 times to reduce the risk of Pre-computed dictionary attacks.

See also

  • Access Code
  • Authentication
  • Diceware
  • Keyfile
  • Passphrase
  • Password manager
  • Password policy
  • Password psychology
  • Password strength
  • Password length parameter
  • Password cracking
  • Password fatigue
  • Password-authenticated key agreement
  • Password notification e-mail
  • Password synchronization
  • Pre-shared key
  • Random password generator
  • Self-service password reset
  • Shibboleth


  1. [1] Fred Cohen and Associates
  2. The Memorability and Security of Passwords
  3. Malaysia car thieves steal finger
  4. Top ten passwords used in the United Kingdom
  5. Password Protection for Modern Operating Systems
  6. "To Capitalize or Not to Capitalize?"
  7. Password
  8. Schneier, Real-World Passwords
  9. MySpace Passwords Aren't So Dumb
  10. T Matsumoto. H Matsumotot, K Yamada, and S Hoshino, Impact of artificial 'Gummy' Fingers on Fingerprint Systems. Proc SPIE, vol 4677, Optical Security and Counterfeit Deterrence Techniques IV or pg 356
  13. Polybius on the Roman Military
  14. Bando, Mark Screaming Eagles: Tales of the 101st Airborne Division in World War II
  15. CTSS Programmers Guide, 2nd Ed., MIT Press, 1965

External links