2. Introduction to Passwords and Password Management
A password is a secret (typically a character string) that a claimant uses to authenticate its identity. Using
a password with a user identifier, such as a username, is one form of identification and authentication .
Identification is a claimant presenting an identifier that indicates a user identity for the system.
Authentication is the process of establishing confidence in the validity of a claimant’s presented identifier,
usually as a prerequisite for granting access to resources in an information system.
Authentication can involve something the user knows (e.g., a password), something the user has (e.g., a
smart card), or something the user “is” (e.g., a fingerprint or voice pattern). Single-factor authentication
uses only one of the three forms of authentication, while two-factor authentication uses any two of the
three forms and three-factor authentication uses all three forms. Using additional factors makes it more
difficult for someone to gain unauthorized access to the system. For instance, it is easier to either discover
a user’s password or steal the user’s smart card than it is to both steal the smart card and also discover the
user’s password. To meet various security and operational needs, the selection of authentication methods
varies among systems, but passwords are the most commonly used authentication method, and are often
used both by themselves and with other authentication factors.
Passwords are used in many ways to protect data, systems, and networks. For example, passwords are
used to authenticate users of operating systems, applications (e.g., email, labor recording), hardware, and
remote access solutions. Passwords are also used to protect files and other stored information, such as
password-protecting a single compressed file, a cryptographic key, or an encrypted hard drive. In
addition, passwords are often used in less visible ways; for example, a biometric device may generate a
password based on a fingerprint scan, and that password is then used for authentication.
There are different forms of passwords. One is known as a personal identification number (PIN). A PIN
is relatively short (usually 4 to 6 characters) and consists of only digits. Examples of PINs are “7352” and
“832290”. They take less time to enter than other types of passwords, so they are often used when a
longer, more complex password might create human safety problems, such as in a fire suppression system
or air traffic control tower console. (In these environments, it is assumed that there are physical security
controls in place that compensate for the relatively low security provided by the PIN.) PINs are also used
for alarm systems, automated teller machines (ATM), security token devices, and other devices that have
small keypads. PINs are rarely used as the only form of authentication for IT system access. Throughout
the rest of this document, PINs will be considered out of scope in references to the term “password”
unless explicitly mentioned.
Another specialized form of password is known as a passphrase. This is a relatively long password
consisting of a series of words, such as a phrase or a full sentence. An example of a passphrase is
“Iamdefinitelyyour#1fan”. The motivation for passphrases is that they can be longer than single-word
passwords but easier to remember than a sequence of arbitrary letters, digits, and special characters, such
as “72*^dSd!” or “C8ke2.e3:”. However, a simple passphrase such as “iloverocknroll” is predictable and
therefore easier for an attacker to guess than “9j%a#F.0”, so a passphrase’s length alone does not make it
stronger than other passwords. Throughout the rest of this publication, the term “password” includes both
regular passwords and passphrases unless otherwise noted.
In some cases, passwords are used without a user identifier. This is most common in situations with low-security needs, such
as entering a numeric code into an office copying machine. This publication assumes that a password is associated with a
user identifier unless specifically noted otherwise.
Additional information on the selection of appropriate authentication methods and on two-factor and three-factor
authentication is available from NIST Special Publication (SP) 800-63 Revision 1, Electronic Authentication Guideline
(Draft), at http://csrc.nist.gov/publications/PubsSPs.html
Password management is the process of defining, implementing, and maintaining password policies
throughout an enterprise. Effective password management reduces the risk of compromise of password-
based authentication systems to the extent possible. Organizations need to protect the confidentiality,
integrity, and availability of passwords so that all authorized users—and no unauthorized users—can use
passwords successfully as needed. Integrity and availability should be ensured by typical data security
controls, such as using access control lists to prevent attackers from overwriting passwords and having
secured backups of password files. Ensuring the confidentiality of passwords is considerably more
challenging and involves a number of security controls along with decisions involving the characteristics
of the passwords themselves. For example, requiring that passwords be long and complex makes it less
likely that attackers will guess or crack them, but it also makes the passwords harder for users to
remember, and thus more likely to be stored insecurely. This increases the likelihood that users will store
their passwords insecurely and expose them to attackers.
Organizations may also be concerned about protecting the confidentiality of user identifiers, such as
usernames. Concealing these makes it harder for attackers to perform targeted attacks. However, in many
cases concealing identifiers is not helpful because the identifiers are based on a user’s email address, first
and last name, or other information readily available to attackers. For higher-security situations, where
targeted attacks are of particular concern, it may be somewhat helpful to use a unique identifier scheme
that is unlike any other organization-issued identifier. If a user uses the same password across multiple
systems, having different identifiers makes it less likely that an attacker who gets a user’s password on
one system will be able to reuse it on other systems. However, using different identifiers has limited
security value because many threats capture identifiers along with passwords; also, users have to
remember each identifier or record the identifiers in a readily accessible location.
An organization should have a password policy that specifies all of its password management-related
requirements. These requirements should include password storage and transmission, password
composition, and password issuance and reset procedures. In addition to the recommendations provided
in this publication, organizations should also take into account applicable mandates (e.g., FISMA),
regulations, and other requirements and guidelines related to passwords. An organization’s password
policy should be flexible enough to accommodate the differing password capabilities provided by various
operating systems and applications. For example, the encryption algorithms and password character sets
they support may differ. Policies should also take into account the protection provided by different
password mechanisms and the compensating controls that may be needed to address weaknesses in those
After developing a policy, organizations should then select security controls that implement the password
policy. NIST Special Publication (SP) 800-53
identifies a number of security controls specifically related
to identification and authentication. The controls required by NIST SP 800-53 vary based on the security
categorization of the system, as defined in the Federal Information Processing Standards (FIPS)
—low, moderate, or high. Under NIST SP 800-53, the minimum requirements for
passwords vary according to the FIPS 199 level.
An organization should review its password policy periodically, particularly as major technology changes
occur (e.g., new desktop operating system) that may affect password management. Also, an organization
should review its password-related security controls periodically to ensure that they comply with the
organization’s password policy.
NIST SP 800-53 Revision 2, Recommended Security Controls for Federal Information Systems, is available at
FIPS 199, Standards for Security Categorization of Federal Information Systems, is available at
C# HTML5 Viewer: Deployment on AzureCloudService
RasterEdge.XDoc.PDF.HTML5Editor.dll. system.webServer> <validation validateIntegratedModeConfiguration="false"/> <security> <requestFiltering password on pdf; convert password protected pdf to normal pdf
C# HTML5 Viewer: Deployment on ASP.NET MVC
RasterEdge.XDoc.PDF.HTML5Editor.dll. system.webServer> <validation validateIntegratedModeConfiguration="false"/> <security> <requestFiltering copy protection pdf; add password to pdf online
In addition to securing passwords and password-based authentication mechanisms, organizations should
also periodically evaluate the need to move to stronger forms of authentication. There are many types of
threats against passwords, and most of these threats can only be partially mitigated. Section 3 describes
the threats and possible mitigation measures in detail. Also, users are burdened with memorizing and
managing an ever-increasing number of passwords. However, as Section 4 explains, although the existing
mechanisms for enterprise password management can somewhat alleviate this burden, they each have
significant usability disadvantages and can also cause more serious security incidents because they permit
access to many systems through a single authenticator. Therefore, organizations should make long-term
plans for replacing password-based authentication with stronger forms of authentication for resources
with higher security needs.
3. Mitigating Threats Against Passwords
This section discusses common threats against the confidentiality of passwords. For the purposes of this
discussion, the threats are divided into four groups: threats that directly capture passwords, such as
installing keyloggers; threats that take advantage of weak passwords and password hashes, such as
password guessing and cracking; threats that replace passwords; and threats that involve attackers reusing
compromised passwords. These four groups of threats are discussed in detail below, along with
recommendations for partially mitigating these threats.
3.1 Password Capturing
Capturing is an attacker acquiring a password from storage, transmission, or user knowledge and
behavior. This section discusses common threats in each of these categories and explains how they can be
mitigated. Note that password strength policies, such as those described in Section 3.2 for mandating
minimum password length and complexity, are ineffective against password capture threats.
To be used for authentication, operating system (OS) and application passwords are stored on hosts. If the
stored passwords are not secured properly, then attackers with physical or logical access to a host may be
able to gain access to the passwords. Passwords should not be stored without additional security controls
to protect them. Examples of such security controls include:
Encrypting files that contain passwords. This may be done by the operating system, an application, or
a specialized utility such as password management software that is specifically designed to protect the
confidentiality of passwords.
Using OS access control features to restrict access to files that contain passwords. For example, a host
could be configured to permit only administrators and certain processes running with administrator-
level privileges to access a password file, thus preventing users and user-level processes from
Storing one-way cryptographic hashes for passwords instead of storing the passwords themselves.
The use of such hashes allows the authentication system to verify during authentication attempts that
the correct password has been entered without storing the actual password. An attacker that gains
access to hashes cannot determine the corresponding passwords directly from the hashes and must use
cracking techniques to attempt to recover the passwords, as discussed in Section 3.
The security controls appropriate for a particular situation are dependent on several factors, such as the
host’s security capabilities, the threats against the host, and the authentication requirements. For example,
cryptographic hashes may not be an option if an authentication protocol requires that an entered password
be directly compared to a stored password. Also, if an attacker that gained access to hashes would be
likely to crack them within the lifetime of the passwords (i.e., before they expire), then additional
controls, such as OS access control lists, may be needed to restrict access to the hashes. Federal agencies
must protect passwords using FIPS-approved cryptographic algorithm implementations. Many
authentication systems support the protection of passwords only with cryptographic algorithms and
implementations that are either no longer FIPS-approved (e.g., DES) or were never FIPS-approved (e.g.,
MD4, MD5, RC2, RC4). In such situations, agencies must use compensating controls to protect the
passwords using FIPS-approved cryptographic means.
Organizations should carefully consider how well passwords and password hashes stored by applications
are protected. For example, web browsers, email clients, and other applications can store passwords on
behalf of users, but it is often not apparent how well-secured these passwords are. Also, in most cases
these applications automatically fill in passwords as needed without verifying the user’s identity, which
permits an attacker who can gain access to such a computer to use the passwords immediately. Password
management utilities, which are discussed in more detail in Section 4, can also be used to store passwords
for users, but they need to be configured properly to achieve the desired level of security. Organizations
should decide which types of applications, if any, should be permitted to store passwords and password
hashes based on a consideration of the risks of doing so versus the convenience provided to users.
Organizations should have requirements in their password policies regarding which types of applications
may store passwords and hashes, as well as how those stored passwords and hashes should be protected.
In addition to being stored on a host’s storage media (e.g., hard drive), passwords and password hashes
are also stored temporarily in a host’s memory, swap files, and similar locations. An attacker who gains
access to these resources while passwords or hashes are stored there can potentially recover passwords;
utilities to extract passwords from certain operating systems are publicly available. For particularly high-
risk hosts, organizations should consider evaluating their temporary password storage to ensure that
passwords and hashes are in temporary storage for only a short time and are properly cleared from
temporary storage once they are no longer needed.
In addition to storing passwords on the host, users and administrators may also keep passwords on paper
so that they do not have to remember the passwords. Such papers should be adequately physically
secured, such as stored in a locked file cabinet, safe, or office, to prevent the passwords from being
acquired by a malicious party with physical access to the workspace. Also, papers containing passwords
should be discarded properly, such as shredding them instead of throwing them in a trash can or recycling
Many passwords and password hashes are transmitted over internal and external networks to provide
authentication capabilities between hosts. The main threat to transmitted passwords and hashes is sniffing,
which involves using a wired or wireless sniffer to listen to network traffic. Sniffing may occur as passive
eavesdropping or active interception, such as a man-in-the-middle attack with an attacker serving as an
intermediary through which messages between two other systems pass. Most sniffers offer the ability to
decode and analyze the data gathered if the sniffer knows the packet structure. Sniffers can gather
usernames and passwords that are sent unencrypted by protocols such as Telnet, File Transfer Protocol
(FTP), Post Office Protocol 3 (POP3), and Hypertext Transfer Protocol (HTTP). Other protocols use
flawed cryptographic algorithm implementations for password protection that attackers can easily
circumvent. Some sniffers can automatically filter out usernames and passwords from other observed
information, providing the attacker an uncluttered view of captured account information and data. Some
sniffers can also identify password hashes, which an attacker might be able to crack.
Sniffing threats can be mitigated in several ways, including the following:
Encrypting the passwords or the communications containing the passwords, such as using Transport
Layer Security (TLS) or tunneling the communications through a virtual private network (VPN). For
Federal agencies, the encryption mechanisms used to protect password confidentiality must use FIPS-
approved algorithms and implementations.
Transmitting cryptographic password hashes instead of plaintext passwords.
Switching from protocols that do not protect passwords to protocols that do. Examples are switching
from telnet to Secure Shell (SSH) and from HTTP to HTTP Secure (HTTPS).
Using network segregation and fully switched networks to protect passwords transmitted on internal
networks. Note that these methods reduce, but do not eliminate, the possibility of sniffing.
Replacing a password implementation that exposes the passwords to sniffing with a more secure
password-based authentication protocol, such as Kerberos.
Because of sniffing threats, passwords, and in most cases password hashes, should not be transmitted
across untrusted networks without additional encryption unless the passwords have no value and cannot
be used to gain access to any significant resources.
Another threat against password transmission is replay attacks, which involve an attacker resending
captured traffic in the hopes of getting the same response as the original traffic. When passwords are
involved, replay attacks are attempts to gain access to information without having to know valid
credentials. For example, if an attacker can sniff packets that contain encrypted authentication credentials,
the attacker may be able to re-send the encrypted credentials—without ever decrypting them—and be
authenticated by the recipient if the authentication protocol is vulnerable to replay attacks. Organizations
should mitigate such attacks on untrusted networks by using an authentication protocol that offers anti-
replay features, such as incorporating timestamps into the authentication packets, or by using
compensating controls that prevent replay, such as wrapping the authentication protocol within another
protocol that protects it (e.g., TLS).
3.1.3 User Knowledge and Behavior
Passwords may be captured by taking advantage of user knowledge and behavior. When users enter
passwords into a computer, the passwords can be captured through non-technical means such as shoulder
surfing—simply watching a user type a password. Although this can be somewhat mitigated by having
hosts hide the password by displaying asterisks or other symbols as the user types, a trained observer who
is monitoring keystrokes can determine most or all of the characters being typed. Users should be made
aware of shoulder surfing threats and advised to be aware of their surroundings before and during
Password entry can also be monitored by attackers through technical means. For example, a keystroke
logger, also known as a keylogger, is a form of malware that monitors the keyboard for action events,
such as a key being pressed, and provides the observed keystrokes to an attacker. An attacker can use a
keystroke logger to acquire the usernames and passwords typed into the infected computer. Many Trojan
horses and some other forms of malware can also monitor user activity to gather usernames, passwords,
and other sensitive pieces of information for attackers. These sorts of threats can be mitigated by securing
users’ hosts effectively, including applying patches regularly, using antimalware software (e.g., antivirus
software, antispyware software), and having the user run with user-level privileges, not administrator-
level privileges, for daily tasks. Another possible mitigation technique is to avoid typing passwords, such
as retrieving them from secure storage or using onscreen simulated keyboards to enter them. Users should
also be made aware of common attack vectors for malware threats and how to avoid malware infections,
such as not downloading and executing files from unknown sources. Users should also be cautioned not
to enter passwords into publicly accessible computers, such as kiosk computers at conferences and hotels,
because of the high risk of the passwords being compromised.
Users may also reveal their passwords to attackers because of social engineering. For example, an
attacker could pretend to be a help desk agent, call a user, and ask the user to provide a password to assist
the agent in troubleshooting a problem. Social engineering can take many forms, some of which involve
technical methods, such as phishing emails that direct users to a malicious web site that mimics a
legitimate site. The goal behind many phishing attacks is to collect usernames, passwords, and other
sensitive information from users. Mitigation of social engineering threats primarily involves user
awareness of such threats and how users should handle them, although some technical controls are also
available (for example, many web browsers offer anti-phishing capabilities). Social engineering may also
target help desk agents, system administrators, and other IT staff with access to privileged accounts, so
organizations should ensure that they are aware of how to recognize such attacks and how to respond
when an attack is suspected.
Another problem with users revealing passwords is that a malicious insider, such as a disgruntled current
or former employee, may know valid passwords and share them with other parties. A malicious insider
may also be intimately familiar with authentication processes and protections, particularly their
weaknesses. A user might also benignly share passwords with other users, such as to grant a colleague
access to a system for which the colleague has not been specifically authorized.
3.2 Password Guessing and Cracking
Attackers attempt to determine weak passwords and to recover passwords from password hashes through
two types of techniques: guessing and cracking. Guessing involves repeatedly attempting to authenticate
using default passwords, dictionary words, and other possible passwords. Cracking is the process of an
attacker recovering cryptographic password hashes and using various analysis methods to attempt to
identify a character string that will produce one of these hashes, thereby being the equivalent of the
password to the targeted system. Guessing can be attempted by any attacker that can access the
authentication interface, whereas cracking can only be attempted by an attacker who has already gained
access to password hashes. This section describes guessing and cracking in detail and recommends
strategies for mitigating these threats.
There are several forms of guessing. In a brute force attack, the attacker attempts to guess the password
using all possible combinations of characters from a given character set and for passwords up to a given
length. This method is likely to take an extensive amount of time if there are many combinations to be
tested. In a dictionary attack, the attacker attempts to guess the password using a list of possible
passwords. The list may contain numbers, letters, and symbols, but is not an exhaustive list of all possible
passwords or combinations that could create a password. In a hybrid attack, the attacker uses a dictionary
that contains possible passwords and then uses variations through brute force methods of the original
passwords in the dictionary to create new potential passwords. Since the attacker is adding characters—
and in some cases replacing characters based on a rule set—in a controlled manner, the attack is more
exhaustive than a dictionary attack but takes less time than a brute force attack. Another form of guessing
attack is to search the victim’s information for possible password content, such as family member names
Guessing attacks can be mitigated rather easily by using a combination of two methods. First, ensure that
passwords are sufficiently complex so that attackers cannot readily guess them. It is particularly important
to change all default OS and application passwords; lists of default accounts and passwords are widely
available to attackers. Organizations should also ensure that other trivial passwords cannot be set, such as
the username or person’s name, “password”, the organization’s name, simple keyboard patterns (e.g.,
“qwerty”, “1234!@#$”), dates (e.g., “03011970”), dictionary words, and names of people and places.
Most password mechanisms have the ability to prevent the use of such passwords. Additional information
on password strength is provided in Section 3.2.3.
The second method recommended for mitigating guessing attacks is to configure OS and application
password authentication mechanisms to limit the frequency of authentication attempts. Examples of how
this can be accomplished include the following:
Lock out a user account after a number of consecutive failed authentication attempts (often performed
within a particular time period, such as the past hour). For example, after a user has failed to provide
the correct password 50 times in a row, ignore all additional authentication attempts to the user
account for 15 minutes. Locking out an account after only a few failed attempts has a significant
impact on legitimate users and tends to cause them to choose simpler passwords or store their
passwords insecurely, thus weakening security.
Have a fixed or exponentially increasing delay after each failed authentication attempt. After the first
failure, for example, there could be a five-second delay; after the second failure, a 10-second delay;
after the third failure, a 20-second delay, and so on.
Guessing is made easier by password mechanisms that inadvertently provide information about
passwords to attackers. For example, information might be available when a password is entered, such as
an input field that only accepts a maximum of eight characters, says that the username does or does not
exist, or that has its “OK” button grayed out until the minimum required number of characters has been
entered. This information is very helpful to authorized users when they are creating new passwords, but
when this information is provided during authentication, it may benefit attackers more than legitimate
A special case of password guessing is the use of default passwords for password resets, such as when
accounts are first created. A password reset is often accomplished by setting a one-time password (OTP),
which is a password that is set to expire immediately, and thus can only be used to gain access to a system
An example of how OTPs are used is a help desk staff member creating a new account. The
help desk member sets an OTP for an account and provides the OTP to the user. The user may log in with
the OTP once, at which point the OTP expires and the user is required to set a new password. Randomly
generated or arbitrarily chosen OTPs, not default or patterned passwords (e.g., “NIST0722”), should be
used during account creation and password reset processes. This ensures that if the user does not promptly
change the assigned password, that the password will not be easily guessable. In some automated
procedures, using a random OTP can be omitted because the user will set a new password immediately
after verifying his or her identity to the system. Also, if a help desk agent or other security administrator
walks the user through setting a new password in a timely fashion, a random OTP may not be necessary.
Cracking involves attempting to discover a character string that will produce the same encrypted hash as
the target password. The discovered string may be the actual password or another password that happens
to produce the same hash. If the hash algorithm is weak, cracking may be much easier. Hash functions
should be one-way, otherwise attackers that can access hashes may be able to identify passwords from
them and successfully authenticate. Another example of a hash algorithm weakness is that some
algorithms do not use salting. Salting is the inclusion of a random value in the password hashing process
that greatly decreases the likelihood of identical passwords returning the same hash. If two users choose
the same password, salting can make it highly unlikely that their hashes are the same.
Attackers using cracking techniques often employ rainbow tables, which are lookup tables that contain
pre-computed password hashes. These tables allow an attacker to attempt to crack a password with
minimal time on the victim system and without constantly having to regenerate hashes if the attacker is
attempting to crack multiple accounts. For instance, the attacker generates or acquires a rainbow table that
contains every permutation for a given character set up to a certain length of characters. The attacker then
uses the table against two separate password hash files, but does not have to generate the permutations
Some OTPs are time-synchronized, which means that the password may be used for a short period of time before it expires.
Such an OTP could be used multiple times within that time period.
Documents you may be interested
Documents you may be interested