1455 lines
60 KiB
Plaintext
1455 lines
60 KiB
Plaintext
|
|
||
|
|
||
|
|
||
|
CSC-STD-002-85
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
DEPARTMENT OF DEFENSE
|
||
|
|
||
|
PASSWORD MANAGEMENT
|
||
|
|
||
|
GUIDELINE
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
Approved for public release;
|
||
|
distribution limited.
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
12 April 1985
|
||
|
|
||
|
|
||
|
|
||
|
DEPARTMENT OF DEFENSE
|
||
|
COMPUTER SECURITY CENTER
|
||
|
Fort George G. Meade, Maryland 20755
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
CSC-STD-002-85
|
||
|
Library No. S-226,994
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
FOREWORD
|
||
|
|
||
|
|
||
|
This publication, "Department of Defense Password management
|
||
|
Guideline," is being issued by the DoD Computer Security Center
|
||
|
(DoDCSC) under the authority of and in accordance with DoD
|
||
|
Directive 5215.1, "Computer Security Evaluation Center." The
|
||
|
guidelines described in this document provide a set of good
|
||
|
practices elated to the use of password-based user authentication
|
||
|
mechanisms in automatic data processing systems employed for
|
||
|
processing classified and other sensitive information. Point of
|
||
|
contact concerning this publication is the Office of Standards
|
||
|
and Products, Attention: Chief, Computer Security Standards.
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
Robert L. Brotman 12 April 1985
|
||
|
Director
|
||
|
DoD Computer Security Center
|
||
|
|
||
|
|
||
|
|
||
|
ACKNOWLEDGMENTS
|
||
|
|
||
|
|
||
|
Special recognition is extended to Sheila L. Brand, DoD Computer
|
||
|
Security Center (DoDCSC), and Jeffrey D. Makey, formerly DoDCSC,
|
||
|
as principal authors of this publication.
|
||
|
|
||
|
Acknowledgment is also given for the contributions of: Daniel J.
|
||
|
Edwards, Mary E. Flaherty, Steven J. Padilla, DoDCSC, John J.
|
||
|
Stasak III, Gregory L. Wessel and Bernard Peters, Department of
|
||
|
Defense, Col. Roger R. Schell, formerly DoDCSC, and James P.
|
||
|
Anderson, James P. Anderson & Co, who gave generously of their
|
||
|
time and expertise in the formulation and review of this
|
||
|
document.
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
ii
|
||
|
|
||
|
|
||
|
CONTENTS
|
||
|
|
||
|
FOREWORD..................................................... i
|
||
|
ACKNOWLEDGMENTS.............................................. ii
|
||
|
CONTENTS......................................................iii
|
||
|
INTRODUCTION................................................. 1
|
||
|
|
||
|
1.0
|
||
|
SCOPE...........................................................1
|
||
|
2.0 CONTROL OBJECTIVES..................................... ....2
|
||
|
3.0 DEFINTIONS............................................... 3
|
||
|
4.0 GUIDELINES.............................................. 4
|
||
|
4.1 SSO Responsibilities.................................. 4
|
||
|
4.1.1 Initial System Passwords............... 4
|
||
|
4.1.2 Initial Password Assignment............... 4
|
||
|
4.1.3 Password Change Authorization............. 6
|
||
|
4.1.4 Group IDs................................ 6
|
||
|
4.1.5 User ID Revalidation....................... 6
|
||
|
4.2 User Responsibilities.............................. 6
|
||
|
4.2.1 Security Awareness........................ 6
|
||
|
4.2.2 Changing Passwords........................ 6
|
||
|
4.2.3 Log into a Connected System.................. 8
|
||
|
4.2.4 Remembering Passwords.................... 8
|
||
|
4.3 Authentication Mechanism Functionality............ 9
|
||
|
4.3.1 Internal Storage of Passwords ............. 9
|
||
|
4.3.2 Entry...................................... 9
|
||
|
4.3.3 Transmission............................... 10
|
||
|
4.3.4 Login Attempt Rate......................... 10
|
||
|
4.3.5 Auditing.................................... 10
|
||
|
4.4 Password Protection.............................. 11
|
||
|
4.4.1 Single Guess Probability.................. 11
|
||
|
4.4.2 Password Distribution ...................... 11
|
||
|
APPENDIX A: Password Generation Algorithm................... 13
|
||
|
APPENDIX B: Password Encryption Algorithm................... 13
|
||
|
APPENDIX C: Determining Password Length..................... 17
|
||
|
|
||
|
|
||
|
iii
|
||
|
|
||
|
|
||
|
APPENDIX D: Protection Basis for Passwords.............. 23
|
||
|
APPENDIX E: Features for Use in Very Sensitive Applications 25
|
||
|
APPENDIX F: On the Probability of Guessing a Password..... 27
|
||
|
REFERENCES.................................................. 31
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
iv
|
||
|
|
||
|
INTRODUCTION
|
||
|
|
||
|
|
||
|
|
||
|
In August 1983, the DoD Computer Security Center published CSC-STD-001-83,
|
||
|
Department of Defense Trusted Computer System Evaluation Criteria. That
|
||
|
publication defines and describes feature and assurance requirements for six
|
||
|
hierarchical classes of enhanced security protection for computer systems that
|
||
|
are to be used for processing classified or other sensitive information. A
|
||
|
major requirement common to all six classes is accountability:
|
||
|
"Individual accountability is the key to securing and
|
||
|
controlling any system that processes information on behalf
|
||
|
of individuals or groups of individuals. A number of
|
||
|
requirements must be met in order to satisfy this objective.
|
||
|
|
||
|
"The first requirement is for individual user identification.
|
||
|
Second, there is a need for authentication. Without
|
||
|
authentication, user identification has no credibility.
|
||
|
Without a credible identity (no) security policies can be
|
||
|
properly invoked because there is no assurance that proper
|
||
|
authorizations can be made." (2)
|
||
|
|
||
|
This guideline has been developed `to assist in providing that much needed
|
||
|
credibility of user identity by presenting a set of good practices related to
|
||
|
the design, implementation and use of password-based user authentication
|
||
|
mechanisms. It is intended that features and practices described in this
|
||
|
guideline be incorporated into DoD automatic data processing (ADP) systems
|
||
|
used for processing classified or other sensitive information.
|
||
|
|
||
|
1.0 SCOPE
|
||
|
|
||
|
The security provided by a password system depends on the passwords being
|
||
|
kept secret at all times. Thus, a password is vulnerable to compromise
|
||
|
whenever it is used, stored, or even known. In a password-based
|
||
|
authentication mechanism implemented on an ADP system, passwords are
|
||
|
vulnerable to compromise due to five essential aspects of the password system:
|
||
|
1) a password must be initially assigned to a user when enrolled on
|
||
|
the ADP system;
|
||
|
2) a user's password must be changed periodically;
|
||
|
3) the ADP system must maintain a "password database";
|
||
|
4) users must remember their passwords; and
|
||
|
5) users must enter their passwords into the ADP system' at
|
||
|
authentication time.
|
||
|
|
||
|
This guideline prescribes steps to be taken to minimize
|
||
|
the vulnerability of passwords in each of these circumstances.
|
||
|
|
||
|
|
||
|
Specific areas addressed in this guideline include the responsibilities of
|
||
|
the system security officer and of users, the functionality of the
|
||
|
authentication mechanism, and password generation. The major features
|
||
|
advocated in this guideline are:
|
||
|
|
||
|
* Users should be able to change their own passwords.
|
||
|
|
||
|
* Passwords should be machine-generated rather than
|
||
|
user-created.
|
||
|
|
||
|
* Certain audit reports (e.g., date and time of last login)
|
||
|
should be
|
||
|
provided by the system directly to the user.
|
||
|
|
||
|
For certain sensitive applications such as Command and Control Systems,
|
||
|
pertinent DoD directives should be referenced in order to assess the need for
|
||
|
additional identification and authentication features.
|
||
|
|
||
|
2.0 CONTROL OBJECTIVES
|
||
|
|
||
|
The CSC-STD-001-83 gives the following as the Accountability
|
||
|
Control Objective:
|
||
|
|
||
|
"Systems that are used to process or handle classified or
|
||
|
other sensitive information must assure individual
|
||
|
accountability whenever either a mandatory or discretionary security
|
||
|
policy is invoked. Furthermore, to assure accountability, the
|
||
|
capability must exist for an authorized and competent agent to
|
||
|
access and evaluate accountability information by a secure means,
|
||
|
within a reasonable amount of time, and without undue difficulty."(2)
|
||
|
|
||
|
In order to attain the individual accountability required, it is necessary
|
||
|
for the ADP system to be able to uniquely identify each person who uses it.
|
||
|
In many cases, a password scheme will be used to achieve this. The
|
||
|
Accountability Control Objective, applied to password systems, leads to the
|
||
|
following control objectives for password systems.
|
||
|
|
||
|
* Personal Identification
|
||
|
|
||
|
Password systems used to control access to ADP systems that process or
|
||
|
handle classified or other sensitive information must assure the capability to
|
||
|
uniquely identify each individual user of the system.
|
||
|
|
||
|
* Authentication
|
||
|
|
||
|
Password systems used to control access to ADP systems that process or
|
||
|
handle classified or other sensitive information must assure unequivocal
|
||
|
authentication of the user's claimed identity.
|
||
|
|
||
|
|
||
|
* Password Privacy
|
||
|
|
||
|
Password systems must assure, to the extent possible, protection of
|
||
|
the password database consistent with protection afforded the classified or
|
||
|
other sensitive information processed or handled by the ADP system in which
|
||
|
the password systems operate.
|
||
|
|
||
|
* Auditing
|
||
|
|
||
|
Password systems used to control access to ADP systems that process or
|
||
|
handle classified or other sensitive information must be able to assist in the
|
||
|
detection of password compromise.
|
||
|
|
||
|
3.0 DEFINITIONS
|
||
|
|
||
|
* Access Port A logical or physical identifier that a computer uses to
|
||
|
distinguish different terminal input/output data streams.
|
||
|
|
||
|
* Expired Password - A password that must be changed by the
|
||
|
user before login may be completed.
|
||
|
|
||
|
* Password - A character string used to authenticate an identity.
|
||
|
Knowledge of the password that is associated with a user ID is considered
|
||
|
proof of authorization to use the capabilities associated with that user ID.
|
||
|
|
||
|
* Password System - A part of an ADP system that is used to authenticate a
|
||
|
user's identity. Assurance of unequivocal identification is based on the
|
||
|
user's ability to enter a private password that no one else should know.
|
||
|
|
||
|
* System Security Officer (SSO) - The person responsible for the security
|
||
|
of an ADP system. The SSO is authorized to act in the "security
|
||
|
administrator" role defined in CSC-STD-001-83. Functions that the SSO is
|
||
|
expected to perform include: auditing and changing security characteristics of
|
||
|
a user.
|
||
|
|
||
|
* Trusted Identification Forwarding - An identification method used in
|
||
|
networks where the sending host can verify that an authorized user on its
|
||
|
system is attempting a connection to another host. The sending host transmits
|
||
|
the required user authentication information to the receiving host. The
|
||
|
receiving host can then verify that the user is validated for access to its
|
||
|
system. This operation may be transparent to the user.
|
||
|
|
||
|
* User ID - A unique symbol or character string that is used by an ADP
|
||
|
system to uniquely identify a user. The security provided by a password
|
||
|
system should not rely on secrecy of the user's ID.
|
||
|
|
||
|
|
||
|
4
|
||
|
|
||
|
|
||
|
4.0 GUIDELINES
|
||
|
|
||
|
In the remainder of this document, guidelines for good practice are
|
||
|
presented in bold print, while amplifications, examples, and rationale are
|
||
|
presented in normal print. The guidelines are given with two degrees of
|
||
|
emphasis. Those that are most important to the security of a password system
|
||
|
are presented with such wording as "The SSO should ..." (the word "should" is
|
||
|
the key), while less critical functions are presented with such wording as "It
|
||
|
is recommended that." ("recommended" is the key). Because it is anticipated
|
||
|
that diverse user communities will adopt this guideline, all recommendations
|
||
|
are presented in general rather than specific terminology, divorced from
|
||
|
vendor-specific hardware or system software. Where features require the
|
||
|
setting of a specific value (e.g., password maximum lifetime), it is suggested
|
||
|
that these be designed as parametric settings leaving the determination of
|
||
|
exact values to local security management who understand the particular
|
||
|
security requirements of their user environment.
|
||
|
|
||
|
It is recommended that, whenever possible, the mechanisms discussed in
|
||
|
this guide be automated. Automation will result in a minimal burden on the
|
||
|
system administration and on the users, and thus in greater effectiveness
|
||
|
of the mechanisms by eliminating situations where passwords might be exposed
|
||
|
to people.
|
||
|
|
||
|
4.1 550 Responsibilities
|
||
|
4.1.1 Initial System Passwords
|
||
|
Many ADP systems come from the vendor with a few standard user IDs
|
||
|
(e.g., SYSTEM, TEST, MASTER, etc.) already enrolled in the system. The System
|
||
|
Security Officer (SSO) should change the passwords for all standard user IDs
|
||
|
before allowing the general user population to access the system. This can be
|
||
|
easily assured if the standard user IDs are initially identified by the system
|
||
|
as having "expired" passwords. (See section 4.2.2.1 for discussion of expired
|
||
|
passwords.)
|
||
|
|
||
|
|
||
|
4.1.2 Initial Password Assignment
|
||
|
The SSO is responsible for generating and assigning the initial
|
||
|
password for each user ID. The user must then be informed of this password.
|
||
|
In some areas, it may be necessary to prevent exposure of the password to the
|
||
|
SSO. In other cases, the user can easily nullify this exposure.
|
||
|
|
||
|
4.1.2.1 Preventing Exposure
|
||
|
There are methods that can be implemented to prevent exposure of
|
||
|
a password to the SSO after it has been generated. One technique is to print
|
||
|
the user's password on a sealed multipart form in such a way that it is not
|
||
|
visible on the top page of the form. The SSO would then protect the sealed
|
||
|
password appropriately until it could be delivered to the user. In this case,
|
||
|
the password is generated randomly by the ADP system and is not known by the
|
||
|
SSO.
|
||
|
|
||
|
5
|
||
|
|
||
|
|
||
|
|
||
|
The password should be seated so it is not visible and cannot be made
|
||
|
visible without breaking the seal. Delivery of the password in this manner
|
||
|
could require several days.
|
||
|
|
||
|
Another method of preventing exposure is to have the user present at
|
||
|
password generation. The SSO must initiate the procedure and the user must
|
||
|
shield the generated password and then remove or erase it from the display.
|
||
|
This method cannot be used when user terminals are at remote locations.
|
||
|
|
||
|
It is recommended that a technique comparable to one of the
|
||
|
above be used to prevent exposing a user's initial password to
|
||
|
the SSO. Whatever method is used to distribute passwords, the SSO
|
||
|
must receive an acknowledgment of receipt of the password within a
|
||
|
specified time period.
|
||
|
|
||
|
4.1.2.2 Nullifying Exposure
|
||
|
|
||
|
When a user's initial password must be exposed to the SSO, this
|
||
|
exposure may be nullified by having the user immediately change the password
|
||
|
by the normal procedure. (Presumably, this change procedure does not expose
|
||
|
the new password to the SSO.)
|
||
|
|
||
|
When a user's initial password is not protected from exposure
|
||
|
to the SSO, the user ID should be identified by the system as
|
||
|
having an "expired password" which will require the user to
|
||
|
change the password by the usual procedure (see section
|
||
|
4.2.2.3) before receiving authorization to access the system.
|
||
|
|
||
|
4.1.2.3 Classification Assignment
|
||
|
|
||
|
Where the password must be classified, the initial classification
|
||
|
assignment should be entered by the SSO to designate the highest security
|
||
|
level that may be associated with each user's initial password and its
|
||
|
successors.
|
||
|
|
||
|
4. 13 Password Change Authorization
|
||
|
|
||
|
Occasionally, a user will forget the password or the SSO may determine
|
||
|
that a user s password may have been compromised. To be able to correct these
|
||
|
problems, it is recommended that the SSO be permitted to change the password
|
||
|
of any user by generating a new one. The SSO should not have to know the
|
||
|
user's password in order to do this, but should follow the same rules for
|
||
|
distributing the new password that apply to initial password assignment (see
|
||
|
section 4.1.2). Positive identification of the user by the SSO is required
|
||
|
when a forgotten password must be replaced.
|
||
|
|
||
|
6
|
||
|
|
||
|
|
||
|
4. 1.4 Group IDs
|
||
|
|
||
|
Throughout the lifetime of an ADP system, each user ID should be
|
||
|
assigned to only one person. In other words, no two people may ever have the
|
||
|
same user ID at the same time, or even at different times. It should be
|
||
|
considered a security violation when two or more people know the password for
|
||
|
a user ID (except in the case when the SSO is the other person and the user ID
|
||
|
is identified by the system as having an "expired password">. Note that there
|
||
|
is no intention of prohibiting alternate forms of user identification (e.g.,
|
||
|
group IDs,functional titles) for non-authentication purposes (e.g., data
|
||
|
access control, mail). If alternate IDs are used, they must be based on user
|
||
|
IDs.
|
||
|
|
||
|
4.1.5 User ID Revalidation
|
||
|
|
||
|
The SSO should be responsible for the development of a procedure
|
||
|
whereby prompt notification is given to the SSO when a user ID and password
|
||
|
must be removed from the ADP system (e.g., when an employee leaves the
|
||
|
sponsoring organization>. In addition, all user IDs should be revalidated
|
||
|
periodically, and information such as sponsor and means of off-line contact
|
||
|
(e.g., phone number,mailing address) updated as necessary. It is recommended
|
||
|
that this revalidation be done at least once per year.
|
||
|
|
||
|
4.2 User Responsibilities
|
||
|
|
||
|
4.2.1 Security Awareness
|
||
|
|
||
|
Users should understand their responsibility to keep passwords private
|
||
|
and to report changes in their user status, suspected security violations,
|
||
|
etc. To assure security awareness among the user population, it is
|
||
|
recommended that each user be required to sign a statement to acknowledge
|
||
|
understanding these responsibilities.
|
||
|
|
||
|
4.2.2 Changing Passwords
|
||
|
|
||
|
The simplest way to recover from the compromise of a password is to
|
||
|
change it. Therefore, passwords should be changed on a periodic basis to
|
||
|
counter the possibility of undetected password compromise. They should be
|
||
|
changed often enough so that there is an acceptably low probability of
|
||
|
compromise during a password's lifetime. To avoid needless exposure of users'
|
||
|
passwords to the SSO, users should be able to change their passwords without
|
||
|
intervention by the SSO.
|
||
|
|
||
|
4.2.2.1 Password Lifetime
|
||
|
|
||
|
The most obvious threat to the security provided by a password
|
||
|
system is from the compromise of passwords. The greater the length of time
|
||
|
during which a password is used for authentication purposes,the more
|
||
|
opportunities there are for exposing it. In a useful password system, the
|
||
|
probability of compromise of a password increases during its lifetime. For a
|
||
|
period of time, this probability could be considered
|
||
|
|
||
|
|
||
|
7
|
||
|
|
||
|
|
||
|
acceptably low while after a longer period of time, it would be considered
|
||
|
unacceptably high. At this latter point, use of the password should be
|
||
|
considered suspect rather than a reliable proof of identity. By appropriately
|
||
|
limiting the length of time (called the password lifetime) during which a
|
||
|
password can be used,the vulnerability of the password can remain acceptable.
|
||
|
There should be a maximum lifetime for all passwords. To protect against
|
||
|
unknown threats, it is recommended that the maximum lifetime of a password be
|
||
|
no greater than 1 year. The presence of known threats may indicate a need for
|
||
|
a shorter maximum lifetime. Also, depending on the size of the password space
|
||
|
and on how fast a penetrator can execute a login attempt, it may be necessary
|
||
|
to change passwords even more frequently. See Appendix C for a discussion of
|
||
|
the relationship between password lifetime, password space and the guess rate.
|
||
|
A password should be invalidated at the end of its maximum lifetime. It is
|
||
|
recommended that, at a predetermined period of time prior to the expiration of
|
||
|
a password's lifetime, the user ID it is associated with be notified by the
|
||
|
system as having an "expired" password. A user who logs in with an ID having
|
||
|
an expired password should be required to change the password for that user ID
|
||
|
before further access to the system is permitted. If a password is not
|
||
|
changed before the end of its maximum lifetime, it is recommended that the
|
||
|
user ID it is associated with be identified by the system as "locked." No
|
||
|
login should be permitted to a locked user ID, but the SSO should be able to
|
||
|
unlock the user ID by changing the password for that user ID, following the
|
||
|
same rules that apply to initial password entry (see section 4.1.2). After a
|
||
|
password has been changed, the lifetime period for the password should be
|
||
|
reset to the maximum value established by the system. 4.2.2.2 Change
|
||
|
Authorization To be consistent with the Password Privacy control objective,
|
||
|
users (other than the SSO) should be permitted to change only their own
|
||
|
passwords. To ensure this, it is recommended that the user enter the old
|
||
|
password and the user ID/password combination be validated as part of the
|
||
|
password changing procedure.
|
||
|
|
||
|
|
||
|
4.2.2.3 Change Procedure
|
||
|
Changing a password in a secure manner involves several steps. The
|
||
|
following procedure is recommended:
|
||
|
The procedure should be invoked at the user's request or
|
||
|
when a user logs in with an expired password. If the change is
|
||
|
necessary due to an expired password, the user should be so
|
||
|
informed. The user should be presented with a brief summary of
|
||
|
the major steps in changing a password, including a caution that
|
||
|
the user should ensure that no one else is watching what the user
|
||
|
is doing. Except
|
||
|
|
||
|
|
||
|
8
|
||
|
|
||
|
|
||
|
|
||
|
when the change procedure is part of the login procedure (e.g.,
|
||
|
logging in with an expired password>, the user's current password
|
||
|
should be entered to re-authenticate identity. The change
|
||
|
procedure should display a new password for the user. The new
|
||
|
password should be different from the old one and should
|
||
|
be generated by angenerated by any algorithm that satisfies the
|
||
|
specifications in Appendix A. The user should then enter the new
|
||
|
password twice so the procedure can verify that the user can
|
||
|
consistently enter the password correctly. The new password
|
||
|
should be obliterated by techniques such as overprinting or
|
||
|
terminal screen erasing. If the two entered passwords are
|
||
|
identical to the generated password, the password data base
|
||
|
should be updated (i.e., the old password deleted or invalidated
|
||
|
andthe new password associated with the user ID) and a message to
|
||
|
this effect should be displayed. Failure by the user to
|
||
|
correctly enter the current password or the generated password
|
||
|
should result in a useful error message to the user and in the
|
||
|
change procedure being aborted without changing the password.
|
||
|
When the attempt to change an expired password is not successful,
|
||
|
the password should be retained as expired and the user given the
|
||
|
option to again change the password or logout. An audit record
|
||
|
should be generated that indicates whether or not the change was
|
||
|
successful.
|
||
|
|
||
|
4.2.3 Login to a Connected System
|
||
|
|
||
|
Users should be required to authenticate their identities at "login"
|
||
|
time by supplying their password along with their user ID. It is
|
||
|
recommended that some form of trusted identification forwarding
|
||
|
be used between hosts when users connect to other ADP systems
|
||
|
through a network. When trusted identification forwarding is not
|
||
|
used, a remote host should require the user's ID and password
|
||
|
when logging in through a network connection. Note that user IDs
|
||
|
on different hosts for the same user may be different, and that
|
||
|
corresponding machine-generated passwords almost certainly will be
|
||
|
different. Note also that a password required by a remote host is
|
||
|
vulnerable to compromise by the local host or intermediate hosts.
|
||
|
|
||
|
4.2.4 Remembering Passwords
|
||
|
|
||
|
Since users must supply their passwords to the ADP system at
|
||
|
authentication time, it follows that they must know what their passwords
|
||
|
are. It is recommended that users memorize their passwords and
|
||
|
not write them on any medium. If passwords must be written,they
|
||
|
should be protected in a manner that is consistent with the damage
|
||
|
that could be caused by their compromise. See Appendix D for
|
||
|
guidance on the protection of passwords.
|
||
|
|
||
|
|
||
|
9
|
||
|
|
||
|
|
||
|
|
||
|
4.3 Authentication Mechanism Functionality
|
||
|
|
||
|
4.3.1 Internal Storage of Passwords
|
||
|
|
||
|
It is normally necessary for the ADP system to store internally the
|
||
|
user ID for each authorized system user as well as some representation of the
|
||
|
password and, when required, the clearance and authorizations that are
|
||
|
associated with each user ID. Without some form of access control over this
|
||
|
information, it will be possible for unauthorized users to read an-or modify
|
||
|
the password database. Unauthorized reading and writing of the password
|
||
|
database are a concern. Reading it could result in disclosure of passwords to
|
||
|
unauthorized users. Being able to write it could result, for example, in user
|
||
|
A changing user B's password so user A could log in under user B's identity.
|
||
|
Note that it is necessary for the login process to be able to read the
|
||
|
password database and the password changing process to be able to read and
|
||
|
write the password database.
|
||
|
|
||
|
Stored passwords should be protected by access controls provided by
|
||
|
the ADP system, by password encryption, or by both.
|
||
|
|
||
|
4.3.1.1 Use of Access Control Mechanisms
|
||
|
|
||
|
Access control mechanisms (e.g., mandatory or discretionary
|
||
|
controls as discussed in CSC-STD-001-83) should be used to protect the
|
||
|
password data base from unauthorized modification and disclosure.
|
||
|
|
||
|
4.3.1.2 Use of Encryption
|
||
|
|
||
|
Encryption of stored passwords should be used whenever the access
|
||
|
control mechanisms provided by the ADP system are not adequate to prevent
|
||
|
exposure of the stored passwords. It is recommended that password encryption
|
||
|
be used even when other access controls are considered adequate, as this helps
|
||
|
protect against possible exposure when access controls are bypassed (e.g.,
|
||
|
system dumps). When encryption is used to protect stored passwords, it is
|
||
|
recommended that the algorithm meet the specifications in Appendix B. It is
|
||
|
recommended that encryption be done immediately after entry, that the memory
|
||
|
containing the plaintext password be erased immediately after encryption, and
|
||
|
that only the encrypted password be used in comparisons. There is no need to
|
||
|
be able to decrypt passwords. Comparisons can be made by encrypting the
|
||
|
password entered at login and comparing the encrypted form with the encrypted
|
||
|
password stored in the password database.
|
||
|
|
||
|
4.3.2 Entry
|
||
|
|
||
|
Encryption of stored passwords should be used whenever the access
|
||
|
control mechanisms provided by the ADP system are not adequate to prevent
|
||
|
exposure of the stored passwords. It is recommended that password encryption
|
||
|
be used even when other access controls are considered adequate, as this helps
|
||
|
protect against possible exposure when access controls are bypassed (e.g.,
|
||
|
system dumps). When encryption is used to protect stored passwords, it is
|
||
|
recommended that the algorithm meet the specifications in Appendix B. It is
|
||
|
recommended that encryption be done immediately after entry, that the memory
|
||
|
containing the plaintext password be erased immediately after encryption, and
|
||
|
that only the encrypted password be used in comparisons. There is no need to
|
||
|
be able to decrypt passwords. Comparisons can be made by encrypting the
|
||
|
password entered at login and comparing the encrypted form with the encrypted
|
||
|
password stored in the password database. Passwords should be entered after
|
||
|
providing a user ID to the system. If the entry is correct, the system should
|
||
|
then display the date and time of the user's last login.
|
||
|
|
||
|
It is recommended that the system not echo passwords that users type
|
||
|
in. When the system cannot prevent a password from being
|
||
|
|
||
|
|
||
|
|
||
|
10
|
||
|
|
||
|
|
||
|
|
||
|
echoed (e.g., in a half-duplex connection), it is recommended that a random
|
||
|
overprint mask be printed before or after the password is entered, as
|
||
|
appropriate, to conceal the typed password. The complete password as entered
|
||
|
by the user should be an exact match, character for character, with the user's
|
||
|
current password.
|
||
|
|
||
|
|
||
|
4.3.3 Transmission
|
||
|
|
||
|
During transmission of a password from a user's terminal to the computer
|
||
|
in which the authentication is done, passwords should be protected in a manner
|
||
|
that is consistent with the damage that could be caused by their compromise.
|
||
|
Since passwords are no more sensitive than the data they provide access to,
|
||
|
there is generally no reasonto protect them, during transmission, to any
|
||
|
greater degree (e.g.,encryption) than regular data is protected. See Appendix
|
||
|
D for guidanceon the protection of passwords.
|
||
|
|
||
|
4.3.4 Login Attempt Rate
|
||
|
|
||
|
By controlling the rate at which login attempts can be made (where each
|
||
|
attempt constitutes a guess of a password), the number of guesses a penetrator
|
||
|
can make during a password's lifetime is limited to a known upper bound. To
|
||
|
control attacks where a penetrator attempts many logins through a single
|
||
|
access port, the password guess rate should be controlled on a per-access port
|
||
|
basis. That is, each access port should be individually controlled to limit
|
||
|
the rate at which login attempts can be made at each port. When a penetrator
|
||
|
can easily switch among multiple access ports, it is recommended that the
|
||
|
password guess rate also be controlled on a per-user ID basis. It is
|
||
|
recommended that maximum login attempt rates fall within the range of one per
|
||
|
second to one per minute. This range provides reasonable user-friendliness
|
||
|
without permitting so many login attempts that an extremely large password
|
||
|
space or an extremely short password lifetime is necessary. See Appendix C
|
||
|
for a discussion of the relationship between the guess rate, password
|
||
|
lifetime, and password space. Note that it is not intended that login be an
|
||
|
inherently slow procedure, for there is no reason to delay a successful login.
|
||
|
However, in the event of an unsuccessful login attempt, it is quite reasonable
|
||
|
to use an internal timer to enforce the desired delay before permitting the
|
||
|
next login attempt. The user should not be able to bypass this procedure.
|
||
|
|
||
|
4.3.5 Auditing
|
||
|
|
||
|
4.3.5.1 Audit Trails
|
||
|
|
||
|
The system should be able to create an audit trail of password usage
|
||
|
and changes. Such an audit trail should not contain actual passwords or
|
||
|
character strings that were incorrectly given as passwords, since this could
|
||
|
expose the password of a legitimate user who mistyped his user ID or password.
|
||
|
Auditableevents should include: successful login, unsuccessful login
|
||
|
|
||
|
11
|
||
|
|
||
|
|
||
|
|
||
|
attempts, use of the password changing procedure, and the locking of a user ID
|
||
|
due to its password reaching the end of its lifetime. For each recorded
|
||
|
event, the audit record should include: date and time of the event, type of
|
||
|
event, offered user ID for unsuccessful logins or actual user ID for other
|
||
|
events, and origin of the event (e.g., terminal or access port 11'). Audit
|
||
|
records of password changes should also indicate whether or not the change was
|
||
|
successful.
|
||
|
|
||
|
4.3.5.2 Real-time Notification to System Personnel
|
||
|
|
||
|
It is recommended that each accumulation of 5 consecutiveunsuccessful login
|
||
|
attempts from a single access port or against a single user ID results in
|
||
|
immediate notification of the event to the ADP system operator or the SSO.
|
||
|
While there is no requirement for the SSO or operator to take any action upon
|
||
|
receiving the notification, frequent notifications may indicate that a
|
||
|
penetration attempt is in progress and may warrant investigation and possible
|
||
|
corrective action.
|
||
|
|
||
|
4.3.5.3 Notification to the User
|
||
|
|
||
|
Upon successful login, the user should be notified of:
|
||
|
|
||
|
* The date and time of user's last login;
|
||
|
|
||
|
* The location of the user (as can best be determined) at last
|
||
|
login; and
|
||
|
|
||
|
* Each unsuccessful login attempt to this user ID since the
|
||
|
last successful login.
|
||
|
|
||
|
This provides a means for the user to determine if someone else is
|
||
|
using or attempting to guess this user ID and
|
||
|
password.
|
||
|
|
||
|
4.4 Password Protection
|
||
|
|
||
|
4.4.1 Single Guess Probability
|
||
|
|
||
|
The probability that any single attempt at guessing a password will be
|
||
|
successful is one of the most critical factors in a password system. This
|
||
|
probability depends on the size of the password space and the statistical
|
||
|
distribution within that space of passwords that are actually used. Since
|
||
|
many user-created passwords are particularly easy to guess all passwords
|
||
|
should be machine generated using an algorithm that meets the specifications
|
||
|
in Appendix A.
|
||
|
|
||
|
4.4.2 Password Distribution
|
||
|
|
||
|
During distribution to the user. passwords should be protected to the
|
||
|
same degree as the information to which they provide access.machine-generated
|
||
|
passwords should be displayed on the user's terminal at time of change, along
|
||
|
with appropriate cautions to the
|
||
|
|
||
|
12
|
||
|
|
||
|
|
||
|
user to protect the password. At the completion of the change procedure, it
|
||
|
is recommended that displayed passwords be erased or overstruck, as
|
||
|
appropriate for the terminal type. Passwords changed by the 550 should be
|
||
|
distributed in a manner that is consistent with the damage that could be
|
||
|
caused by their compromise. See Appendix D for guidance on the protection of
|
||
|
passwords.
|
||
|
|
||
|
13
|
||
|
|
||
|
|
||
|
APPENDIX A
|
||
|
|
||
|
Password Generation Algorithm
|
||
|
|
||
|
|
||
|
This appendix describes the requirements to be met by an acceptable password
|
||
|
generation algorithm. The issues involved relate to the specifications for
|
||
|
password space, random seed generation, pseudo-random number generation and
|
||
|
"user- friendly" passwords.
|
||
|
|
||
|
A.1 Password Space
|
||
|
|
||
|
The size of the password space is a function of the size of the alphabet and
|
||
|
the number of characters from that alphabet that are used to create passwords.
|
||
|
(The maximum size of the password space can be expressed as 5 A where 5 is the
|
||
|
maximum password space, A is the alphabet size and M is the password length.)
|
||
|
|
||
|
To determine the minimum size of the password space needed to satisfy the
|
||
|
security requirements for an operational environment, equation [3] in Appendix
|
||
|
C can be used. The password generation algorithm selected should be able to
|
||
|
generate at least that number of passwords. In addition, the generated
|
||
|
passwords should be, at a minimum, 6 characters in length.
|
||
|
|
||
|
A.2 Random Seeds
|
||
|
|
||
|
When a pseudo-random number generator is used in a password generation
|
||
|
algorithm, it should accept as input random data that would provide output
|
||
|
which has a high degree of unpredictability. This random data (seed) can be
|
||
|
derived from a number of available parameters such as a system clock, system
|
||
|
registers, date, time, etc. The parameters should be selected to ensure that
|
||
|
the number of unique seeds that can be generated from these inputs should be
|
||
|
at least equal to the minimum number of passwords that must be generated.
|
||
|
When passwords are used to protect classified information, the seed generator
|
||
|
should be approved by the DoD Computer Security Center.
|
||
|
|
||
|
A.3 Pseudo-Random Number Generator
|
||
|
|
||
|
Using a random seed as input, the pseudo-random number generator that drives
|
||
|
a password generation algorithm should have the property that each bit in the
|
||
|
pseudo-random number that it generates is a complex function of all the bits
|
||
|
in the seed. The Federal Data Encryption Standard (DES), as specified in FIPS
|
||
|
46, (9) is an example of a pseudo-random number generator with this property.
|
||
|
If DES is used, it is suggested that the 64-bit Output Feedback (OFB) mode be
|
||
|
used as specified in FIPS 81 (10). In this case, the seed used as input could
|
||
|
consist of:
|
||
|
|
||
|
* An initialization vector
|
||
|
* A cryptographic key
|
||
|
* Plaintext
|
||
|
14
|
||
|
|
||
|
|
||
|
|
||
|
Factors that can be used as input to these parameters are:
|
||
|
|
||
|
For the initialization vector:
|
||
|
|
||
|
* System clock
|
||
|
* System ID
|
||
|
* User ID
|
||
|
-Date and time
|
||
|
|
||
|
For the cryptographic key:
|
||
|
|
||
|
* System interrupt registers
|
||
|
* System status registers
|
||
|
* System counters
|
||
|
|
||
|
The plain text can be an external randomly generated 64-bit value (8
|
||
|
characters input by the 550).
|
||
|
|
||
|
The resulting pseudo-random number that is output will be the 64 bits of
|
||
|
cipher text generated in the 64-bit OFB mode. The password generation
|
||
|
algorithm can either format this pseudo-random number into a password or use
|
||
|
it as an index (or indices) into a table and use the contents from this table
|
||
|
to form a password or a passphrase.
|
||
|
|
||
|
|
||
|
A.4 "User-Friendly" Passwords
|
||
|
|
||
|
To assist users in remembering their passwords, the password generation
|
||
|
algorithm should generate passwords or passphrases that are "easy" to
|
||
|
remember. Passwords formed by randomly choosing characters are generally
|
||
|
difficult to remember. Passwords that are pronounceable are often easy to
|
||
|
remember, as are passphrases that are formed by concatenating real words into
|
||
|
a phrase or sentence.
|
||
|
|
||
|
15
|
||
|
|
||
|
|
||
|
APPENDIX B
|
||
|
|
||
|
Password Encryption Algorithm
|
||
|
|
||
|
|
||
|
Password encryption is advocated as a password protection measure. The
|
||
|
algorithm selected for this would be determined by the system environment.
|
||
|
Some environments may require that a classified encryption algorithm be used,
|
||
|
while for other environments an unclassified algorithm would be required.
|
||
|
|
||
|
B.1 Encryption Algorithm
|
||
|
|
||
|
A conventional or public key cryptographic algorithm which is configured as a
|
||
|
"one-way" encryption algorithm may be used for password encryption, but
|
||
|
whatever algorithm is used, the protection the encryption algorithm provides
|
||
|
should rely on its complexity. If there is a key that can be used with the
|
||
|
algorithm to decrypt passwords, that key should not be stored in the ADP
|
||
|
system.
|
||
|
|
||
|
B.2 Assurance for Unique Encrypted Passwords
|
||
|
|
||
|
If a password encryption system depends only on the password and other fixed
|
||
|
information, there is a possibility that two different users will have
|
||
|
identical encrypted passwords. A user who discovers another user with an
|
||
|
identical encrypted password will then know that the same password will work
|
||
|
for both user IDs even if they don't have identical plaintext passwords. To
|
||
|
minimize this possibility, it is recommended that the encryption algorithm use
|
||
|
the ADP system name (in network environments) and the user's ID as factors in
|
||
|
the encryption. (This can be easily accomplished by concatenating the system
|
||
|
ID, user ID and password, and then applying the encryption algorithm to the
|
||
|
resulting string.)
|
||
|
16
|
||
|
|
||
|
|
||
|
|
||
|
APPENDIX C
|
||
|
|
||
|
Determining Password Length
|
||
|
|
||
|
|
||
|
The security afforded by passwords is determined by the probability that a
|
||
|
password can be guessed during its lifetime. The smaller that probability,
|
||
|
the greater the security provided by the password. All else being equal, the
|
||
|
longer the password, the greater the security it provides. This appendix
|
||
|
reviews the mathematics involved in establishing how long a password should
|
||
|
be.
|
||
|
|
||
|
The basic parameters that affect the length of the password needed to provide
|
||
|
a given degree of security are:
|
||
|
|
||
|
L = maximum lifetime that a password can be used to log into the system.
|
||
|
|
||
|
P = probability that a password can be guessed within its lifetime, assuming
|
||
|
continuous guesses for this period.
|
||
|
|
||
|
R = number of guesses per unit of time that it is possible to make.
|
||
|
|
||
|
S = password space, i.e., the total number of unique passwords that the
|
||
|
password generation algorithm can generate.
|
||
|
|
||
|
|
||
|
C.1 Relationship
|
||
|
|
||
|
Considering only the cases where S is greater than L x R and therefore P is
|
||
|
less than 1, the relationship between these parameters is expressed by the
|
||
|
equation:
|
||
|
|
||
|
P = L x R
|
||
|
[I]
|
||
|
|
||
|
|
||
|
A detailed explanation of the derivation of this basic equation
|
||
|
is given in Appendix F.
|
||
|
|
||
|
|
||
|
C.2 Guess Rate
|
||
|
|
||
|
Several factors contribute to the rate at which attempts can be made to gain
|
||
|
access to the data on a system when a valid password is not known. First and
|
||
|
foremost is the protection given to the password data base itself. If the
|
||
|
password data base is unprotected (i.e., can be read by anyone as ordinary
|
||
|
data), then "guessing" may not be required.
|
||
|
|
||
|
If the password data base can be read. but the passwords are encrypted (see
|
||
|
Appendix B), a very high guess rate may be possible by using a computer to try
|
||
|
a dictionary of possible passwords to see if ciphertext can be generated that
|
||
|
is the same as one in the password data base. A similar situation frequently
|
||
|
occurs where only passwords are used to protect files.
|
||
|
|
||
|
16
|
||
|
|
||
|
|
||
|
Finally, if the password data base has effective access controls and the
|
||
|
login procedure cannot be bypassed, the guess rate can be controlled by
|
||
|
setting limits on the number of login or other attempts that can be made
|
||
|
before terminating the connection or process.
|
||
|
|
||
|
C.3 Password Lifetime
|
||
|
|
||
|
All other things being equal, the shorter the lifetime of a password, the
|
||
|
fewer the number of guesses that can be made and thus the greater the degree
|
||
|
of password security. As stated in 4.2.2.1, the maximum password lifetime
|
||
|
should not exceed one year.
|
||
|
|
||
|
C.4 Password Space
|
||
|
|
||
|
Password length and alphabet size are factors in computing the maximum
|
||
|
password space requirements. Equation [2] expresses the relationship between
|
||
|
S, A, and M where:
|
||
|
|
||
|
S = password space
|
||
|
A = number of alphabet symbols
|
||
|
M = password length
|
||
|
|
||
|
S = AM
|
||
|
[2]
|
||
|
|
||
|
To illustrate: If passwords consisting of 4 digits using an alphabet of 10
|
||
|
digits (e.g., 0-9) are to be generated:
|
||
|
|
||
|
S = 104
|
||
|
|
||
|
That is, 10,000 unique 4-digit passwords could be generated. Likewise, to
|
||
|
generate random 6-character passwords from an alphabet of 26 characters (e.g.,
|
||
|
AZ):
|
||
|
|
||
|
S = 266
|
||
|
|
||
|
That is 3.089 * 108 unique 6-character passwords could be
|
||
|
generated.
|
||
|
|
||
|
"User-friendly" passwords (sometimes referred to as passphrases) could be
|
||
|
generated by using, for example, 3 symbols from an alphabet (dictionary) of
|
||
|
2000 symbols, where each symbol was a pronounceable word of 4, 5, or 6
|
||
|
characters.
|
||
|
|
||
|
Using equation [2] and setting:
|
||
|
|
||
|
A = 2000 symbols (words)
|
||
|
M = 3
|
||
|
|
||
|
Then S = 20003
|
||
|
|
||
|
That is, 8 * 109 unique passwords could be generated where each password was
|
||
|
made up of 3 words taken from a dictionary of 2000 words.
|
||
|
|
||
|
19
|
||
|
|
||
|
|
||
|
C.5 A Procedure for Determining Password Length
|
||
|
|
||
|
What is important in using passwords is how long to make the password to
|
||
|
resist exhaustive penetration attacks. We can do this by using the following
|
||
|
procedure:
|
||
|
|
||
|
a. Establish an acceptable probability, P, that a password will be guessed
|
||
|
during its lifetime. For example, when used as a login authenticator, the
|
||
|
probability may be no more than 1 in 1,000,000. In another case, where very
|
||
|
sensitive data is involved, the value for P may be set at 10-20.
|
||
|
|
||
|
b. Solve for the size of the password space, 5, with the equation derived
|
||
|
from equation [1]
|
||
|
|
||
|
S = G
|
||
|
[3]
|
||
|
P
|
||
|
|
||
|
where G L x R
|
||
|
|
||
|
c. Determine the length of the password, M, from the equation
|
||
|
|
||
|
M = log S
|
||
|
[4]
|
||
|
log (number of symbols in the "alphabet")
|
||
|
|
||
|
M will generally be a real number that must be rounded up or down to the
|
||
|
nearest whole number. Examples of calculating many of the values described
|
||
|
above are given below.
|
||
|
|
||
|
C.6 Worked Examples
|
||
|
|
||
|
An example shown here is drawn from a real network case. The problem is to
|
||
|
determine the needed password length to reduce to an acceptable level the
|
||
|
probability that a password will be guessed during its lifetime.
|
||
|
|
||
|
The network to which this is applied supports both a 300-baud and a
|
||
|
1200-baud service. Experiments on the network have determined that it is
|
||
|
possible to make about 8.5 guesses per minute on the 300-baud service and 14,
|
||
|
guesses per minute on the 1200-baud service. (The reason that the "guess
|
||
|
rate' for the 1200-baud service is not 4 times that of the 300-baud service is
|
||
|
that the system response time, which is not affected by the improved
|
||
|
transmission speed, becomes the limiting factor in how many guesses can be
|
||
|
accomplished in a given amount of time.)
|
||
|
|
||
|
In this example, the arbitrary value of 10-6 is used for the probability (P)
|
||
|
of guessing the password in its lifetime. As we will see below, the password
|
||
|
lifetime is not the critical factor here as long as the password is changed at
|
||
|
least once per year.
|
||
|
|
||
|
The statement of the problem is to find a password length that will resist
|
||
|
being guessed with a probability of 1 in 106 in 1 year of continuous guesses.
|
||
|
|
||
|
When three parameters in equation [1] are known, the fourth value can be
|
||
|
found. To find the password space required by our examples, the following
|
||
|
parameters are given:
|
||
|
|
||
|
20
|
||
|
|
||
|
|
||
|
|
||
|
L is set for 6 months and 12 months. P is set for 1 in 1,000,000 (acceptable
|
||
|
probability of guessing the password). R is set at 8.5 guesses per minute
|
||
|
(guess rate possible with 300-baud service).
|
||
|
|
||
|
At 8.5 guesses per minute, the number of guesses per day would be
|
||
|
12,240.
|
||
|
|
||
|
Substituting 183 days for 6 months then using equation [3],
|
||
|
|
||
|
S = G 183x12240 - 2.23992x1012 passwords
|
||
|
P -000001
|
||
|
|
||
|
The 12-month value is twice that of the 6-month case.
|
||
|
|
||
|
With this data, and using equation [4], we can determine the length of the
|
||
|
passwords as a function of the size of the alphabet from which they are drawn.
|
||
|
We will assume two alphabet sizes: a 26-letter alphabet and a
|
||
|
36-letter-and-number alphabet.
|
||
|
|
||
|
|
||
|
M = log (2.23992 x 1012) 8.72 (for 6-month lifetime)
|
||
|
log 26
|
||
|
|
||
|
M = log (4.4676x1012) 8.94 (for 12-month lifetime)
|
||
|
log 26
|
||
|
|
||
|
M = log (2.23992x1012) 7.93 (for 6-month lifetime)
|
||
|
log 36
|
||
|
|
||
|
M = log (4.4676 x 1012) 8.13 (for 12-month lifetime)
|
||
|
log 36
|
||
|
|
||
|
Table 1 presents the results.
|
||
|
|
||
|
|
||
|
TABLE 1
|
||
|
|
||
|
MAXIMUM Length of Password
|
||
|
LIFETIME
|
||
|
(months)
|
||
|
26-Character alphabet 36-Character alphabet
|
||
|
|
||
|
6 9 8
|
||
|
(rounded up from 8-72) (rounded up from 7.93)
|
||
|
|
||
|
12 9 8
|
||
|
(rounded up from 8.94) (rounded down from 8.13)
|
||
|
|
||
|
21
|
||
|
|
||
|
|
||
|
C.7 Passphrases
|
||
|
A "passphrase" is a concatenation of words drawn from a dictionary. The
|
||
|
dictionary is merely the collection of symbols making up the "alphabet" from
|
||
|
which the password is generated. As an example, suppose the passphrase is
|
||
|
made up of words drawn from a dictionary of 4, 5 and 6 letter words. There
|
||
|
are approximately 3,780 4-letter words, 7,500 5-letter words and 12,000
|
||
|
6-letter words in English. The "alphabet size" for generating passphrases is
|
||
|
approximately 23,300. We can compute how many words, drawn at random from the
|
||
|
dictionary of 23,300 words, are needed to produce a passphrase that will be
|
||
|
resistant to exhaustive attack with the probability of 1 x 10-6.
|
||
|
|
||
|
We have to solve for 5 as before, and from that, solve for M, the length of
|
||
|
the password (i.e., number of alphabet symbols or words).
|
||
|
|
||
|
For L = 12 months, 5=4.4676*1012, log S = 12.6500
|
||
|
For L = 6 months, 5=2.2399*1012, log S = 12.3502
|
||
|
Log 23300 4.3669
|
||
|
|
||
|
Using equation (4) we obtain:
|
||
|
For L = 12 months M 12.6500 3 (rounded from 2.89)
|
||
|
4.3669
|
||
|
For L = 6 months M 12.3502 3 (rounded from 2.82)
|
||
|
4.3669
|
||
|
Thus, for the passphrase algorithm described, namely selection at random
|
||
|
from a dictionary of 23,300 words, only 3 words are needed in a passphrase to
|
||
|
obtain the desired resistance to exhaustive enumeration. In using the
|
||
|
algorithm, each word of the phrase is drawn independently from the dictionary.
|
||
|
This may result in a word appearing more than once in the passphrase.
|
||
|
|
||
|
|
||
|
23
|
||
|
|
||
|
|
||
|
APPENDIX D
|
||
|
Protection Basis for Passwords
|
||
|
|
||
|
|
||
|
Passwords are used to prevent people who have physical access to an ADP system
|
||
|
from gaining access to data belonging to another user. Thus, a password
|
||
|
should be protected in a manner that is consistent with the damage that might
|
||
|
be caused by its exposure to someone who has the opportunity to use it (i.e.,
|
||
|
has physical access to the ADP system terminals). Exposure of a password to
|
||
|
someone who is physically prevented from attempting to use it is not a threat.
|
||
|
|
||
|
D.1 Systems Containing Only Unclassified Information
|
||
|
|
||
|
Although an ADP system may process only unclassified information, it still
|
||
|
may require that the data be protected from unauthorized use. Although the
|
||
|
password is unclassified, the obligation remains that the user protect this
|
||
|
password so that only those with a need-to-know can access the data.
|
||
|
|
||
|
D.2 Systems Containing Classified Information
|
||
|
|
||
|
Passwords that are used in AD P systems that operate in the dedicated or
|
||
|
system high security modes (3) should not be classified, but should be
|
||
|
protected to the same degree as For Official Use Only information. In this
|
||
|
case, there is no need to classify passwords since access to the area in which
|
||
|
the system resides is restricted to those with a clearance as high as the
|
||
|
highest classification level of the information processed. A person who
|
||
|
obtained a password for a system running in dedicated or system high security
|
||
|
mode but who did not possess the proper security clearance would be unable to
|
||
|
gain physical access to the system and use the password.
|
||
|
|
||
|
For systems operating in the multilevel security mode (3), passwords may or
|
||
|
may not have to be classified.
|
||
|
When the ability to access classified information is based on the physical
|
||
|
protection of the terminal rather than on the identity of the user (i.e., when
|
||
|
all terminals are single-level devices), passwords should not be classified,
|
||
|
but should be protected to the same degree as For Official Use Only
|
||
|
information. There is no need to classify passwords that can only be used on
|
||
|
single-level terminals, since physical access to single-level terminals is
|
||
|
controlled to the level associated with the terminal. When the ability to
|
||
|
access classified information is based on the user's identity and is not
|
||
|
restricted by the level of the terminal (i.e., multilevel terminals), each
|
||
|
password must be classified to the highest level of the information to which
|
||
|
it provides access. When multilevel terminals are used, the system determines
|
||
|
the user's access authorizations to classified material based on his identity,
|
||
|
and authenticates the identity by requiring a password. Thus. the ADP system
|
||
|
can protect the information it processes only to the extent that passwords are
|
||
|
protected. For example, a user with a Secret clearance can access Secret
|
||
|
information.
|
||
|
24
|
||
|
|
||
|
|
||
|
Compromise of that user's password could result in the compromise of Secret
|
||
|
information; therefore, the password would be classified Secret. In the case
|
||
|
of a system with multilevel terminals, disclosure of a Top Secret user's
|
||
|
password to a Secret user would allow the Secret user to login as the Top
|
||
|
Secret user and thus gain access to Top Secret information. Disclosure of Top
|
||
|
Secret information to someone with only a Secret clearance can cause
|
||
|
exceptionally grave damage to the national security. Since disclosure of the
|
||
|
Top Secret user's password could lead to this, the password must be classified
|
||
|
Top Secret (5).
|
||
|
|
||
|
Note that classified passwords must not be used on terminals that are not
|
||
|
authorized for data at the level of the password (e.g., a Top Secret password
|
||
|
must not be used on a Secret terminal). The presence of both single-level and
|
||
|
multilevel terminals on a system may indicate the need for passwords at each
|
||
|
security level. At a minimum, an unclassified password should be available
|
||
|
for use on terminals that are only authorized for unclassified data.
|
||
|
|
||
|
25
|
||
|
|
||
|
|
||
|
APPENDIX E
|
||
|
|
||
|
Features for Use in Very Sensitive Applications
|
||
|
|
||
|
|
||
|
The following features can be used to enhance the security provided by a
|
||
|
password system. Because they are somewhat "user-unfriendly," they are
|
||
|
recommended for environments only when there is a high threat of password
|
||
|
compromise.
|
||
|
|
||
|
E.1 One-Time Passwords
|
||
|
|
||
|
One-time passwords (i.e., those that are changed after each use) are useful
|
||
|
when the password is not adequately protected from compromise during login
|
||
|
(e.g., the communication line is suspected of being tapped). The difficult
|
||
|
part of using one-time passwords is in the distribution of the new passwords.
|
||
|
If a one-time password is changed often because of frequent use, the
|
||
|
distribution of new one-time passwords becomes a significant point of
|
||
|
vulnerability. There are products on the market that generate such passwords
|
||
|
through a cryptographic protocol between the destination host and a hand-held
|
||
|
device the user can carry.
|
||
|
|
||
|
E.2 Failed Login Attempt Limits
|
||
|
|
||
|
In some instances, it may be desirable to count the number of unsuccessful
|
||
|
login attempts for each user ID and to base password expiration and user ID
|
||
|
locking on the actual number of failed attempts. (Changing a password would
|
||
|
reset the count for that user ID to zero.) For example, the password could be
|
||
|
identified as expired after 100 failed login attempts, and the user ID locked
|
||
|
after 500.
|
||
|
|
||
|
|
||
|
27
|
||
|
|
||
|
|
||
|
APPENDIX F
|
||
|
|
||
|
On the Probability of Guessing a Password
|
||
|
|
||
|
|
||
|
Appendix C discusses the techniques for finding a password length that will
|
||
|
resist exhaustive enumeration over the lifetime of the password with a given
|
||
|
probability. This appendix derives the probability of guessing a password
|
||
|
during its lifetime. As in Appendix C, we use the parameters:
|
||
|
|
||
|
L = password lifetime
|
||
|
R = guess rate
|
||
|
S = size of the password space
|
||
|
P = probability of guessing a password during its lifetime
|
||
|
|
||
|
The total number of guesses, (G), that can be made during a password's
|
||
|
lifetime is:
|
||
|
|
||
|
G = R x L
|
||
|
[1]
|
||
|
|
||
|
At this point, we need to consider the relation of the size of the password
|
||
|
space, 5, to G. Clearly, if 5 is so small that one could try all possible
|
||
|
passwords before the lifetime of the password expires, the probability of
|
||
|
guessing the password is l. As a result, we consider only cases where 5 is
|
||
|
greater than G. The probability question then is, "For the case where 5 is
|
||
|
greater than G, what is the probability that in G guesses the password will be
|
||
|
guessed?" This is the same as asking the question, "What is the probability
|
||
|
that in the lifetime of the password, it will be guessed?" The probability
|
||
|
sought is:
|
||
|
|
||
|
How many ways one can make G guesses (of S objects)
|
||
|
|
||
|
P = that include the password
|
||
|
|
||
|
How many different ways one can make G guesses of S objects Note that
|
||
|
the probability that is appealed to is of the simplest form. It is derived
|
||
|
from the definition of probability that the probability of an event is given
|
||
|
by the number of ways the event can happen divided by the number of ways an
|
||
|
event can happen or fail. We first observe that the total number of ways one
|
||
|
can make G guesses of 5 things is given by sCg (the combinatorial notation
|
||
|
that means the number of combinations of "s" things taken "g" at a time).
|
||
|
(Lower case letters are used with the combinatorial notation in order to make
|
||
|
the expressions more readable.) This is determined by:
|
||
|
s!
|
||
|
g!(s-g)!
|
||
|
Thus, if 5 - A B C,D,E, one could make 3 guesses in 5C3 different
|
||
|
ways,
|
||
|
5*4*3*2*1/3*2*1*2*1 10.
|
||
|
|
||
|
28
|
||
|
|
||
|
|
||
|
(Enumerating, they are ABC~ABD,ABE,ACD,ACE,ADE,BCD,BCE,BDE~C~~.) The problem
|
||
|
of finding the number of guesses of this total that include a specific
|
||
|
password, e.g., an "A", is addressed by considering a reduced set without the
|
||
|
specific password and asking how many ways one can make G guesses with the
|
||
|
reduced set. Then, the total number of ways to make G guesses that include
|
||
|
the specified password is the difference between the two values. This is
|
||
|
given by:
|
||
|
|
||
|
sCg-(s-1)Cg
|
||
|
[2]
|
||
|
|
||
|
That is, remove the designated password from the set 5, compute the number of
|
||
|
ways of making G guesses without the password, then consider the difference
|
||
|
between the two values.
|
||
|
|
||
|
If we ask in our example how many ways to make 3 guesses that do NOT include a
|
||
|
particular password from the set of 5 (say an "A"), this is given by:
|
||
|
|
||
|
4C3 4*3*2*1/3*2*1*1 = 4
|
||
|
|
||
|
Enumerating for the specific case of an "A", they are BCD,BCE,BDE,CDE.
|
||
|
|
||
|
The number of ways to make 3 guesses that include the designated element is
|
||
|
10-4 6. Thus, the probability of guessing a designated password in 3 guesses
|
||
|
is 6/10 or 6.
|
||
|
|
||
|
|
||
|
Simplification:
|
||
|
|
||
|
It is indeed fortuitous that there is a theorem in any number of books on
|
||
|
Probability Theory that states:
|
||
|
|
||
|
nCr (n-1)C(r-1) + (n-1)Cr
|
||
|
[3]
|
||
|
|
||
|
This may also be expressed as:
|
||
|
|
||
|
nCr- (n-1)Cr (n-1)C(r-1)
|
||
|
[4]
|
||
|
|
||
|
Substituting s for n and g for r we obtain the expression:
|
||
|
|
||
|
(s-1)C(g-1)
|
||
|
[5]
|
||
|
|
||
|
for the number of ways of making G guesses that include a specific password.
|
||
|
Then, the probability that a given password will be guessed during the
|
||
|
lifetime of that password is given by:
|
||
|
|
||
|
P (s-1)C(g-1)
|
||
|
[6]
|
||
|
sCg
|
||
|
|
||
|
29
|
||
|
|
||
|
|
||
|
Evaluating this expression gives:
|
||
|
|
||
|
(s-1)! (s-1)!
|
||
|
P = (g-1)!((s-1)-(g1))! = (g-1)1(s-g)! = g!(s-1)! = g
|
||
|
s! s! (g-1)!s! s
|
||
|
g!(s-g)! g!(s-g)!
|
||
|
|
||
|
This derivation of the probability of guessing a password during
|
||
|
its lifetime, i.e.,
|
||
|
|
||
|
P = G [8]
|
||
|
|
||
|
|
||
|
is important in that it allows us to derive the size of the
|
||
|
password space
|
||
|
|
||
|
S = G [9]
|
||
|
P
|
||
|
|
||
|
given an acceptable probability of not guessing the password
|
||
|
during its lifetime.
|
||
|
30
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
REFERENCES
|
||
|
|
||
|
|
||
|
|
||
|
1. Brown, R. L. Computer System Access Control Using Passwords,
|
||
|
1985 , Aerospace Corporation, 16 January 1984.
|
||
|
|
||
|
2. DoD Computer Security Center. Department of Defense Trusted
|
||
|
Computer System Evaluation Criteria, CSC-STD-00183, 15 August 1983.
|
||
|
|
||
|
3. DoD Directive 5200.28, Security Requirements for Automatic Data Processing
|
||
|
(ADP) Systems, revised April 1978.
|
||
|
|
||
|
4. Downey, P. J. Multics Security Evaluation: Password and File Encryption
|
||
|
Techniques, ESD-TR-74-193, Vol. III, AD-A045279, AFSC Electronic Systems
|
||
|
Division, Hanscom AFB, Mass., June 1977.
|
||
|
|
||
|
5. Executive Order 12356, National Security Information, 6 April 1982.
|
||
|
|
||
|
6. Gasser, M. A Random Word Generator for Pronounceable
|
||
|
Passwords, MTR-3006, ESD-TR-75-97, AD-A017676, MITRE Corp., Bedford,
|
||
|
Mass.,November 1975.
|
||
|
|
||
|
7. Wood, H.M. The Use of Passwords for Controlled Access to Computer
|
||
|
Resources, NBS Special Publication 500-9, U.S. Department of Commerce,
|
||
|
National Bureau of Standards, May 1977.
|
||
|
|
||
|
8. National Bureau of Standards. Federal Information Processing
|
||
|
Standards Publication 112, Password Usage Standard, 30 May 1985.
|
||
|
|
||
|
9. National Bureau of Standards. Federal Information Processing
|
||
|
Standards Publication 46, Data Encryption Standards, 15 January 1977.
|
||
|
|
||
|
10. National Bureau of Standards. Federal Information Processing Standards
|
||
|
Publication 81, DES Modes of Operation, 2 December 1980.
|
||
|
|