home *** CD-ROM | disk | FTP | other *** search
Text File | 2003-06-11 | 59.5 KB | 1,455 lines |
-
-
-
- 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.
-
-