63
G
UIDE TO
E
NTERPRISE
P
ASSWORD
M
ANAGEMENT
(DRAFT)
Organizations should decide whether to use password expiration mechanisms and what expiration period
to set based on balancing security needs and usability. For example, if the organization provides secure
storage for user passwords, so that users do not have to remember passwords, then password expiration
will be less frustrating to users. If there are significant threats involving unauthorized access to password
hashes, then it may be necessary to set the expiration period to be less than the amount of time required to
crack the passwords from the hashes, as discussed in the box below. Another consideration is the
frequency of authentication; if an application is accessed only a few times a year by employees and
password expiration is enforced, then the passwords will be expired every time the users attempt to
authenticate. Other factors for organizations to consider in selecting password expiration requirements
include the strength of password storage and transmission algorithms and the system security
requirements. Organizations should consider having different policies for password expiration for
different types of systems, OSs, and applications, to reflect their varying security needs and usability
requirements.
Because of advances in hardware and cracking software and the availability of large numbers of
compromised computers through botnets, attackers are constantly increasing their ability to crack
passwords. The type of cryptographic algorithm used for the password hashes somewhat affects the
cracking speed, but generally does not affect it enough to make cracking ineffective. Security researchers
and cracking software vendors claim hash generation speeds for some hash algorithms of hundreds of
millions to over a billion per second per computer, with the ability to use thousands of computers
simultaneously.
11
Generating a billion hashes per second on each of a thousand machines would equal
approximately 2.6 quintillion (2.6*10
18
) hashes per month.
In cases where password hashes are at significant risk of compromise, organizations should take estimates
of cracking abilities into consideration when setting policies for password expiration, length, and
complexity. Consider the keyspace examples from Table 3-1. A password with a character set size of 72
and a length of 8 characters has a maximum keyspace of 7*10
14
. For the example described above, hashes
for this entire keyspace could be generated in 12 minutes. Increasing the character set size to 95 only
increases the time to 2 hours. However, increasing the length to 12 characters, and keeping the character
set size at 72, drastically increases the time needed to generate all the hashes—to over 500 years.
The use of salts also makes cracking more difficult—for example, using 48-bit salting values effectively
appends a 48-bit password hash to the original password hash, assuming that the attacker does not have
access to the salting values and that the salting values are well-chosen. So a salted password might have
the same effective length, and therefore be roughly as time-consuming to crack, as an unsalted password
that is several characters longer. Also, salts typically use the full range of possible values, unlike
passwords that have limited character sets, so salts can strengthen the effective password complexity.
Policies for password expiration, length, and complexity should take into account the use of salts.
In cases where generating all hashes would take many years, having password expiration would be
irrelevant for mitigating cracking, even if most users do not take full advantage of the available character
set. Generally, password expiration periods are not of much help in mitigating cracking because they have
such a small effect on the amount of effort an attacker would need to expend, as compared to the effect of
other password policy elements. Suppose that an organization reduced its password expiration period
from 60 days to 30 days. An attacker would simply need to use twice the hardware resources to
compensate for this change.
When password expiration is enabled and it is expected that users will be memorizing their passwords, it
is helpful to provide reminders to users that their passwords will be expiring soon. Giving users at least a
11
An example is described at http://www.elcomsoft.com/edpr.html?r1=pr&r2=multi-gpu
.
3-13