A password is a common means of access control. Typically this is for computer systems, which is the model we will discuss here.
The 'user' whose access is being controlled (all users in principle, though some users have special privileged access deliberately or accidentally on some systems) maybe a real human at a keyboard, or a process / program, on the local or some other computer system. The user is asked to supply some information (ie, the password) as a credential. If the password given matches that the system has stored for that user, the user is permitted access by the login facility (usually a part of the operating system) to the computer system. The access granted may be limited to certain directories and files, to only certain executables, only for certain times, only for a limited amount of resources (eg, computer CPU time, or disk storage space, ...). Success implies that the user is 'authentic' in that only he (or it) should have knowledge of the password.
Examples include logons to computer systems such as e-mail servers, or Illya Kuryakin proving his identity to the U.N.C.L.E security door with a code word, or a PIN (Personal Identification Number) at a bank cash machine.
Despite the name, there is no need (unless a particular system requires it) for passwords to be real words, indeed they are frequently harder to steal or guess (a very desirable trait) if they are not.
A passcode is sometimes taken to imply that the information used is purely numeric, such as the PIN commonly used for ATM access.
Note that password is often used to describe what would be more accurately called a pass phrase.
Passwords are sometimes shared by the members of a group who are thus all intended to have the same access to the computer system, but this is less sensible than individual passwords since the more people (or programs) which know a password the higher the chance that password will become known to others and since membership in such a group may not coincide with the existence of the group. Individual passwords allow Alice, who has left the group, to be removed from it, thus losing access which was ex officio her membership. This is a simple example of the often subtle problems with access controls, including passwords.
The security of a password protected system against illegitimate access depends on several factors but they all relate to keeping the password completely secret.
- How often the password can be used to validate the user. If it is usable only once, many potential security exploits would be rendered ineffective. Several such systems have been designed and some of them are in production use.
- The underlying medium / method of passing the password from the user to the authenticator mechanism. If it is, in an extreme example, publication in a newspaper, the password will be entirely insecure. If the password is carried as electrical signals on a wire between the access point and the central system with the password database, it is subject to snooping by any of a variety of tapping methods and will be equally insecure, though perhaps less obviously so. If it is carried over the Internet from hither to yon, anyone in a position to watch the packets containing the logon information go by can snoop with very little possibility of detection.
- The nature of the data which is the password, and the connection, if any, between the password's 'value' and its holder. If it is your Student ID, or some other easily discovered information (eg, boyfriend's name), it will be likely insecure, and should always be expected to be so. If it is an entirely random collection of alphanumeric characters, it will be quite hard to discover without theft, extortion, or user mistake.
- See cryptography for ways in which the passing of information can be made more secure in the face of assorted snooping methods.
- snooper describes one type of attacker attempting to discover a password. 'Shoulder surfing' is a colorful phrase for one such technique. Burglary is another, merely less colorful. Extortion, blackmail, and threat are still less colorful.
- What procedures the system provides for changing a compromised password after discovery of the compromise, or prophylactically. If a new password is passed to 'the system' in clear, security can be lost before the new password can even be installed in the password database. If the new password is given (even securely) to a compromised employee, it will likely be lost (this sort of problem is publicly known to have happened many times at assorted organizations, companies, etc).
- Active theft/snoop/extortion preemption measures such as automatic expiry of passwords can work (eventually) even in cases in which a password is compromised without its owner being aware of it. This precaution annoys most user populations.
- How easily the password can be guessed / discovered by an attacker.
- Often the password must be entered by a human user. To allow easy recall of the password, a 'meaningful' value is frequently chosen. It is an apparently invariant characteristic of the human nervous system. Their year of birth, spouse's/child's/pet's or telephone / license plate number are all obvious choices to user and attacker alike. Studies of live computer systems have consistently shown (for several decades, for all systems examined, across all examined cultures, ...) that about 40% of all user chosen passwords are easily guessable.
- Conversely if the user selects a less obvious password, then to assist in remembering it, they may write it down somewhere (A Post It note on their monitor being a strangely popular choice), thus compromising the security of the system.
- The process of obtaining passwords by psychological manipulation of users is an example of social engineering. "Hi. Systems Control here. We're doing a security test. Can we have your password so we can proceed?" works astonishingly often.
- Forcing users to use system created 'random passwords' is sensible as the passwords will have no connection with that user (hard to guess from knowledge of the user), and shouldn't be findable in any dictionary (can't conduct 'dictionary attacks'). But, users universally hate them.
- Whether or not the checking process in the computer system (the 'authenticator') actually knows the plaintext of the password.
A weak password would be one that was short or which could be rapidly guessed by searching a subset such as words in the dictionary, proper names, words based on the user name or common variations on these themes. A strong password would be sufficiently long, random, or produceable only by the user who chose it, that 'guessing' for it will require 'too long'. How long that is will vary with the attacker, with attacker resources, and with how important the password being sought is to the attacker. 'Weak' and 'strong' have only a rather fuzzy meaning in this context, but are often misused in ways implying considerable precision.
It has been said that the ideal password should be "impossible to remember", and so unlikely to be guessable. Such passwords are surely stronger, which is to say harder for an attacker to discover; but they are more often written down and so easier to discover by looking under drawers or keyboards or behind pictures. Such passwords evoke violations of another bit of common, and wise, advice -- "never writte a password down anywhere". Requiring 'strong' passwords thus often causes the unintended consequence that many such passwords get written down, increasing the liklihood that they will be lost, snooped, copied, or otherwise compromised.
If even the smallest possibility exists that the password has become known to anyone other than those to whom it 'belongs', it should always be considered compromised, and immediately changed. Human users commonly resist such measures.