Password 24304 226135818 2008-07-16T23:50:54Z Oli Filth 547762 Reverted edits by [[Special:Contributions/97.82.226.146|97.82.226.146]] ([[User talk:97.82.226.146|talk]]) to last version by 67.129.129.67 {{Refimprove|date=June 2008}} {{otheruses}} In computing, a '''password''' is a [[word]] or string of [[Character (computing)|characters]] that is entered, often along with a [[user (computing)|user name]], into a computer system to [[Logging (computer security)|log in]] or to gain access to some resource. Passwords are a common form of [[authentication]]. Full security requires that the password be kept [[Secrecy|secret]] from those not allowed access. The use of passwords goes back to ancient times. Sentries guarding a location would challenge for a password or ''watchword.'' They would only allow a person in if they knew the password. In modern times, passwords are used to [[access control|control access]] to protected computer [[operating system]]s, [[mobile phone]]s, [[cable TV]] decoders, [[Automated Teller Machine|automated teller machines]] (ATMs), etc. A typical [[computer user]] may require passwords for many purposes: logging in to computer accounts, retrieving [[e-mail]] from servers, accessing programs, databases, networks, web sites, and even reading the morning newspaper online. Despite the name, there is no need for passwords to be actual words; indeed passwords which are not actual words are harder to guess, a desirable property. Some passwords are formed from multiple words and are more accurately called a [[passphrase]]. The term '''passcode''' is sometimes used when the secret information is purely numeric, such as the [[personal identification number]] (PIN) commonly used for ATM access. Passwords are generally short enough to be [[memory|memorized]]. ==Designing a personal, user-friendly password== Passwords vary in the degree of public awareness, security protection and frequency of change. The most public, and therefore least secure, password might be one that is given to members of a group, a committee or some other organization. For instance, "publiclibrary", "internet", "AAAfinancecommittee" or "password" are all examples of easily remembered passwords, more or less publicly knowable passwords. Less easily attacked passwords might be built from such a basic form, for instance, "smith12nov34street" or "AAAchairpersonSUE". These are slightly more secure, but being relatively easily predictable should not be relied upon to actually block unauthorized access. Effective access control requires passwords which are more difficult to guess or to find automatically, less publicly knowable (ideally not at all), and these are the subject of much of the rest of this article. One method of creating passwords that are memorable, but harder to attack successfully is to use selective substitution of numbers for letters, e.g. 'I' is replaced by '1', 'E' by '3' etc. This becomes even more secure if the numbers are 'shifted' on the keyboard. In this instance, the number '1' might be replaced by '!', assuming '!' is a permitted character in passwords on the relevant system. ==Factors in the security of a password system== The security of a password-protected system depends on several factors. The overall system must, of course, be designed for sound security, with protection against [[computer virus]]es, [[man-in-the-middle attack]]s and the like. Physical security issued are also a concern, from deterring [[shoulder surfing (computer security)|shoulder surfing]] to more sophisticated threats such as video cameras and keyboard sniffers. See [[computer security]] and [[computer insecurity]]. Here are some specific password management issues that must be considered: ===Rate at which an attacker can try out guessed passwords=== The rate at which an attacker can submit guessed passwords to the system is a key factor in determining system security. Some systems impose a time out of several seconds after a small number (e.g., three) of failed password entry attempts. In the absence of other vulnerabilities, such systems can be effectively secure with relatively simple passwords, if they have been well chosen and are not easily guessed. [http://www.modernlifeisrubbish.co.uk/top-10-most-common-passwords.asp] 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, against which to compare user log on attempts, as [[cleartext]]. 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. More secure systems store each password in a cryptographically protected form, so access to the actual password will still be difficult for a snooper who gains internal access to the system, while validation of user access attempts remains possible. A common approache 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 [[cryptographic hash function]] to a string consisting of the submitted password and, usually, another value known as a [[salt (cryptography)|salt]]. The salt prevents attackers from building a list of hash values for common passwords. [[MD5]] and [[SHA1]] are frequently used cryptographic hash functions. A modified version of [[Data Encryption Standard|DES]] was used for this purpose in early [[Unix]] systems. The UNIX DES function was iterated to make the hash function 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 hashing system. More recent Unix or Unix like systems (eg, [[Linux]] or the various [[BSD]] variations) use still more protective mechanisms to prevent or frustrate attacks on password stores. If the hash function is well designed, it will be computationally infeasible to reverse it to directly find a plaintext. However, many systems do not protect their hashed passwords adequately, and if an attacker can gain access to hashed values he can use widely available tools which compare the encrypted outcome of every word from some collection, such as a dictionary. 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. Obviously, words on such lists should be avoided as passwords. Use of a [[key stretching]] hash such as [[PBKDF2]]can 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. [http://support.microsoft.com/default.aspx?scid=KB;EN-US;q299656] ===Methods of verifying a password over a network=== A variety of methods have been used to verify passwords in a network setting: ====Simple transmission of the password==== Passwords can be vulnerable to interception (i.e., "snooping") while being transmitted to the authenticating machine or person. If the password is carried as electrical signals on unsecured physical wiring between the user access point and the central system controlling the password database, it is subject to snooping by [[Telephone tapping|wiretapping]] methods. If it is carried as packetitzed data over the Internet, anyone able to watch the [[packet (information technology)|packets]] containing the logon information can snoop with a very low probability of detection. 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, it 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 likely be stored on those as well. Attempts to delete the email may, or may not, succeed as backups or history files or caches on any of several systems may still contain the email. Emailed passwords are generally an insecure method of distribution. An example of [[cleartext]] transmission of passwords is the original [[Wikipedia]] website. When you logged into your Wikipedia 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. In practice, only an unknowably larger number could do so (eg, employees at your Internet Service Provider, at any of the systems through which the traffic passes, etc). More recently, Wikipedia has offered a secure login option, which, like many e-commerce sites, uses the [[Secure Sockets Layer|SSL]] / ([[Transport Layer Security|TLS]]) cryptographic protocol to eliminate the cleartext transmission. But, because anyone can gain access to Wikipedia (without logging in at all), and then edit most articles, it can be argued that there is little need to encrypt these transmissions as little is 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. Another example of transmission vulnerability is email. Emailed passwords may be read by anyone with access to the transmission medium (in real time) or at any time with access to any system on which email is backed up, or cached, or on which mail history is maintained. Using client-side encryption will only protect transmission from the mail handling system server to the client machine. Previous or subsequent relays of the email will not be protected and the email will be stored on multiple computers, most often in cleartext. ====Transmission through encrypted channels==== The risk of interception of passwords sent over the Internet can be reduced by, among other approaches, using [[cryptography|cryptographic]] protection. The most widely used is the [[Transport Layer Security]] (TLS, previously called [[Secure Sockets Layer|SSL]]) feature built into most Internet [[Web browser|browsers]]. Most browsers alert the user of a TLS/SSL protected exchange with a server by displaying a closed lock icon when TLS is in use. There are several other techniques in use; see [[cryptography]]). ====Hash-based challenge-response methods==== Unfortunately, there is a conflict between stored hashed-passwords and hash-based [[challenge-response authentication]]; the latter requires a client to prove to a server that he knows what the [[shared secret]] (i.e., password) is, and to do this, the server must be able to obtain the shared secret from its stored form. On many systems (including [[Unix]]-type systems) doing remote authentication, the shared secret usually becomes the hashed form and has the serious limitation of exposing passwords to offline guessing attacks. ====Zero-knowledge password proofs==== Rather than transmitting the password, [[password-authenticated key agreement]] systems can perform a [[zero-knowledge password proof]], which proves knowledge of the password without exposing it. Moving a step further, augmented systems for [[password-authenticated key agreement]] (e.g. [[Authentication and key agreement via Memorable Passwords|AMP]], [[B-SPEKE]], [[PAK-Z]], [[SRP-6]]) avoid both the conflict and limitation of hash-based methods; An augmented system allows a client to prove knowledge of the password to a server, where the server knows only a (not exactly) hashed password, and where the unhashed password is required to gain access. ===Procedures for changing passwords=== Usually, a system must provide a way to change a password, either because a user believes the current password has been (or might have been) compromised, or as a precautionary measure. If a new password is passed to the system in an unencrypted form, security can be lost (e.g., via wiretapping) even before the new password can even be installed in the password database. If the new password is given to a compromised employee, little is gained. Some web sites include the user-selected password in an unencrypted confirmation e-mail message, with the obvious increased vulnerability. [[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, determined by low effort research, or obtained through [[social engineering (computer security)|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 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 limited because attackers often exploit a password as soon as it is compromised, which will likely 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=== Sometimes a single password controls access to a device, for example, for a network router, or password-protected mobile phone. However, in the case of a [[computer security|computer system]], a password is usually stored for each user name, thus making all access traceable (save, of course, in the case of users sharing passwords). A would-be user on most systems must supply a username as well as a password. If the user supplies a password matching the one stored for the supplied username, he or she is permitted further access into the computer system. This is also the case for a cash machine, except that the user name is typically the account number stored on the bank customer's card, and the PIN is usually quite short (4 to 6 digits). Allotting separate passwords to each user of a system is preferable to having a single password shared by legitimate users of the system, certainly from a security viewpoint. This is partly because users are more willing to tell another person (who may not be authorized) a shared password than one exclusively for their use. Single passwords are also much less convenient to change because many people need to be told at the same time, and they make removal of a particular user's access more difficult, as for instance on graduation or resignation. Per-user passwords are also essential if users are to be held accountable for their activities, such as making financial transactions or viewing medical records. ===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 circular blobs *allowing passwords of adequate length (some [[Legacy system|legacy]] operating systems, including early versions of Unix and Windows, limited passwords to 8 characters *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]] *requiring periodic password changes *assigning randomly chosen passwords *providing an alternative to keyboard entry (eg, spoken passwords) *using encrypted tunnels or [[password-authenticated key agreement]] to prevent access to transmitted passwords via network attacks Some of the more stringent policy enforcement measures can pose a risk of alienating users, possibly decreasing security as a result. ==Factors in the security of an individual password == {{main|Password strength}} Studies of production computer systems have for decades consistently shown that about 40% of all user-chosen passwords are readily guessed automatically, and still more with some individual research regarding a particular user.{{Fact|date=March 2008}} ''Password strength'' is the likelihood that a password cannot be guessed or discovered by an [[Authentication|unauthorized]] person or [[computer]]. Passwords easily guessed are termed ''weak'' or ''vulnerable''; passwords very difficult or impossible to guess are considered ''strong''. ==Alternatives to passwords for access control== The numerous ways in which reusable passwords can be compromised has prompted the development of other techniques. Unfortunately, few of them have become universally available for users seeking a more secure alternative. *[[One-time password|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 [[TAN (banking)|TAN]]s. As most home users only perform a small number of transactions each week, the single use issue has not lead to significant customer dissatisfaction in this case. *[[Security token]]s are similar to single-use passwords, but the value to be entered is displayed on a small fob and changes every minute or so. *Access controls based on [[public key cryptography]] e.g. [[Secure Shell|ssh]]. The necessary keys are too large to memorize (but see proposal [http://eprint.iacr.org/2005/434 Passmaze]) and must be stored on a local computer, security token or portable memory device, such as a [[keydrive|flash disk]] or [[floppy disk]]. *[[Biometric]] methods promise authentication based on unalterable personal characteristics, but currently (2005) have high error rates and require additional hardware to scan, for example, [[fingerprint]]s, [[Iris (anatomy)|iris]]es, etc. They have proven easy to spoof in some famous incidents testing commercially available systems <!-- the famous gummie fingerprint kitchen chemistry spoof demonstration paper is 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 itu.int/itudoc/itu-t/workshop/security/resent/s5p4.pdf pg 356 --> and, because these characteristics are unalterable, they cannot be changed if compromised, 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. *Non-text-based passwords, such as [[graphical passwords]] or mouse-movement based passwords.[http://waelchatila.com/2005/09/18/1127075317148.html] Another system requires users to select a series of [[face]]s as a password, utilizing the [[human brain]]'s ability to [[Face perception|recall faces]] easily.[http://mcpmag.com/reviews/products/article.asp?EditorialsID=486] '''Graphical passwords''' are an alternative means of [[authentication]] for log-in intended to be used in place of conventional password; they utilize [[images]] instead of [[Plain text|text]]. In many implementations, the user is required to pick from a series of images in the correct sequence in order to gain access. While some believe that graphical passwords would be harder to [[Password cracking|crack]], others suggest that people will be just as likely to pick common images or sequences as they are to pick common passwords.{{Fact|date=May 2007}} ==Website password systems== Passwords are used on websites to authenticate users and are usually server-side, meaning the browser sends the password to the server (by HTTP POST), the server checks the password and sends back the relevant content (or an access denied message). This process eliminates the possibility of local reverse engineering as the code used to authenticate the password does not reside on the local machine. The transmission of the password through the browser in plaintext means it can be intercepted along its journey to the server. Most web authentication systems use SSL to establish an encrypted session between the browser and the server. This is done automatically by the browser and ensures integrity of the session. So-called website password and membership management systems often involve the use of [[Java (programming language)|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 [[Active Server Pages|ASP]] or [[PHP]] to authenticate users on the server before delivering the source code to the browser. Popular systems such as [http://www.Sentrylogin.com Sentry Login] and [http://www.monster-submit.com/sentry/ 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. ==Password cracking== Attempting to [[Password cracking|crack]] passwords by trying as many possibilities as time and money permit is a [[brute force attack]]. A related method, rather more efficient in most cases, is a [[dictionary attack]]. In a dictionary attack, all words in one or more dictionaries are tested. There are several programs available for password auditing and recovery such as [[L0phtCrack]], [[John the Ripper]], and [[Cain (software)|Cain]]; some of which use password design vulnerabilities (as in the Microsoft LANManager system) to increase efficiency. Some are useful to system administrators as any password which can be found using one of these programs is most definitely a weak password and should be rejected as an unacceptable password choice. According to [[Bruce Schneier]], the most commonly used password is ''password1''. <ref>[http://www.wired.com/politics/security/commentary/securitymatters/2006/12/72300 MySpace Passwords Aren't So Dumb<!-- Bot generated title -->]</ref> ==History of passwords== Passwords or '''watchwords''' have been used since ancient times. [[Polybius]] describes the system for distribution watchwords in the [[Military of ancient Rome|Roman military]] as follows: :The way in which they secure the passing round of the watchword for the night is as follows: from the tenth [[Maniple (military unit)|maniple]] of each class of infantry and cavalry, the maniple which is encamped at the lower end of the street, a man is chosen who is relieved from guard duty, and he attends every day at sunset at the tent of the [[tribune]], and receiving from him the watchword - that is a wooden tablet with the word inscribed on it - takes his leave, and on returning to his quarters passes on the watchword and tablet before witnesses to the commander of the next maniple, who in turn passes it to the one next him. All do the same until it reaches the first maniples, those encamped near the tents of the tribunes. These latter are obliged to deliver the tablet to the tribunes before dark. So that if all those issued are returned, the tribune knows that the watchword has been given to all the maniples, and has passed through all on its way back to him. If any one of them is missing, he makes inquiry at once, as he knows by the marks from what quarter the tablet has not returned, and whoever is responsible for the stoppage meets with the punishment he merits. <ref>[http://ancienthistory.about.com/library/bl/bl_text_polybius6.htm Polybius on the Roman Military<!-- Bot generated title -->]</ref> Passwords have been used with computers since the earliest days of computing. [[MIT]]'s [[Compatible Time-Sharing System|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." <ref> CTSS Programmers Guide, 2nd Ed., 1965</ref> [[Robert Morris (cryptographer)|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 (Unix)|crypt(3)]], used a 12-bit [[salt (cryptography)|salt]] and invoked a modified form of the [[Data Encryption Standard|DES]] algorithm 25 times to reduce the risk of [[dictionary attack]]s. ==See also== * [[Authentication]] * [[Diceware]] * [[Keyfile]] * [[Passphrase]] * [[Password manager]] * [[Password policy]] * [[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]] ==References== <references/> ==External links== <!-- links to Web sites which purport ot geenrate a password for you, or to check your password for 'strength' are inappropriate here as they impute approval by Wikipedia. They shouldn't be approved since they are a serious security risk --> * [http://www.passwordresearch.com/stats/statindex.html Large collection of statistics about passwords] * [http://www.acsac.org/2005/abstracts/89.html Graphical Passwords: A Survey] * [http://labs.mininova.org/passclicks/ PassClicks] * [http://www.network-research-group.org/default.asp?page=publications PassImages] * [http://www.jablon.org/passwordlinks.html Links for password-based cryptography] * [http://www.mysecurecyberspace.com/encyclopedia/index/password.html Password], ''Encyclopedia of Risks and Threats'', [[MySecureCyberspace]] * [http://www.emiic.net/services/guides/Passwords%20Guide.pdf Procedural Advice for Organisations and Administrators] * [http://www.ftp.cl.cam.ac.uk/ftp/users/rja14/tr500.pdf Memorability and Security of Passwords] - Cambridge University Computer Laboratory study of password memorability vs. security. [[Category:Authentication methods]] [[Category:Computer security]] [[ca:Contrasenya]] [[cs:Heslo]] [[da:Adgangskode]] [[de:Kennwort]] [[es:Contraseña]] [[eo:Pasvorto]] [[eu:Pasahitz]] [[fr:Mot de passe]] [[zh-classical:符節]] [[ko:암호]] [[hr:Lozinka]] [[id:Kata sandi]] [[it:Password]] [[he:סיסמה]] [[ms:Kata laluan]] [[nl:Wachtwoord]] [[ja:パスワード]] [[no:Passord]] [[nn:Passord]] [[pt:Senha]] [[ru:Пароль]] [[sl:Geslo (računalništvo)]] [[sr:Шифра]] [[fi:Salasana]] [[sv:Lösenord]] [[vi:Mật khẩu truy nhập]] [[tg:Калимаи убур]] [[tr:Parola]] [[zh:密码]]