Password System Security Values Demystified

IBM i (OS/400, i5/OS)
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

This article explores some of the security system values that deal with user profile creation and maintenance.

Setting up security on your AS/400 doesn’t have to be a chore. Although it can appear to be a daunting task when you first look at all the available system values, it’s really not that bad if properly planned and implemented. Of all the security features available on the AS/400, passwords are the first line of defense against intruders. This article takes an in-depth look at the system values that relate to password security and explains how you can use them to make your AS/400 as secure as possible.

Many of the suggestions offered in this article are those of IBM and the Security Reference Guide. As a security administrator, I cannot say I agree with all of these suggestions. However, they are here for your reference.

One of the first things you need to do on your system is set up user profiles for each of your users, and, if you are at security level 20 or above, each user profile must have a password that allows the user to sign on to the system. I’ll start by looking at which values affect the creation or maintenance of user profile passwords.

Creating and Maintaining Passwords

You can change passwords according to certain rules. Some of these rules are enforced by OS/400 on all passwords, and some of the rules are enforced according to the contents of the following system values.

All user profile passwords have a maximum length of 10 characters, and the first character must be alphabetic; the rest can be any alphanumeric value. Two system values work together to control the number of allowable characters: QPWDMINLEN and QPWDMAXLEN. As their names imply, QPWDMINLEN controls the minimum length of a password, and QPWDMAXLEN controls the maximum length. IBM recommends

setting the value of QPWDMINLEN to five. This forces users to be creative in choosing a password, eliminating the use of initials or easily guessed short names. You must balance the need for security with the reality that most people can’t remember a 10-character password. If your AS/400 communicates with other systems, the maximum length should be set to eight because some systems will not accept a password of more than eight characters.

Users should change their passwords periodically so they don’t get too comfortable with their passwords and share them with others. Further, if an unauthorized person does learn someone’s password, regularly scheduled password changes will prevent him from using it after a certain amount of time. The QPWDEXPITV system value allows the system to handle this for you. It controls the number of days that a password remains valid after it’s been issued or changed. You should set this value with a time period short enough to provide adequate security but long enough to keep your users from getting annoyed when the system forces them to change their passwords. IBM recommends 45 to 60 days. As with all system issues, you must tailor this value to your installation. Some small shops may be comfortable with setting this value to *NOMAX, which never forces users to change their passwords. On the other hand, large businesses with hundreds of users may want to make their users change passwords monthly.

QPWDEXPITV is a system value, and it applies only where the password expiration interval of the user profile is set to *SYSVAL, which is the default. You may choose to set the profile expiration to a different number of days than that which is specified by the system value. Do this by setting the Password expiration interval (PWDEXPITV) parameter on the user profile to a value of 1 to 366 days; *NOMAX; or the default, *SYSVAL. By setting it to a specific number of days, you ensure that the system will set the user profile’s Password expired (PWDEXP) parameter to Expired after the specified number of days has elapsed, unless the user changes the password.

Batten Down the Hatches

Those are the most commonly used system values to control password security. However, IBM didn’t stop there. Figure 1 shows other important system values that control password security.

Several system values don’t affect the user’s password but do control the way users sign on to the system. These system values are extremely important and can be used to thwart would-be intruders. Figure 2 shows the details of these system values.

Limiting Multiple Sign-ons

The last two system values I’ll discuss determine whether users can sign on at more than one terminal at a time. Figure 3 explains these values. In many instances, it’s easier to control internal security if users have access to only one terminal so that you can trace security violations when they occur. Using these system values along with object authorities can help control who signs on to which terminals and how many concurrent sessions users are allowed.

The QLMTDEVSSN system value controls whether regular users can sign on to multiple terminals. A value of 1 restricts users to one terminal. They still have access to group jobs and system request to start another session.

For users with the special *ALLOBJ or *SERVICE authorities, the QLMTSECOFR system value can be used in a slightly different way to limit terminal access. A value of 1 limits users with these special authorities to only devices for which they have explicit authority. A value of 0 allows them to sign on to any device. Using these system values can help control who signs on to which terminals and how many concurrent sessions users are allowed.

The Value of System Values

System values work with user profiles, object authorities, and other system resources to control system security. The one thing that’s different about system values is that they can affect everyone. When you change one, make sure you know what overall impact that change will have on your system. For example, if you disallow A, E, I, O, and U from being valid characters in a password, users will not be able to form English words and may have difficulty remembering their passwords.

Print all of your system values (WRKSYSVAL OUTPUT(*PRINT)), and keep them handy. When you change a security value, or any system value, either make that annotation or print out a new list.

And remember that when you make a change to these values, they can be changed back. Only users with All Object (*ALLOBJ) and Security Admin (*SECADM) authority in their user profiles can make changes to system values, so try to limit this power to as few people as possible.


CL Reference, V3R1 (SC41-3722, CD-ROM QBKAUP00) Security Reference Guide, V3R1 (SC41-3302, CD-ROM QBKALC00)

Value Description Valid Values

QPWDLMTAJC Limits the use of contiguous 0—Numeric characters allowed (Limit adjacent numeric characters in the password. next to each other digits in password) Use of this system value keeps people from using easily guessed 1—Numeric characters not allowed passwords such as social security next to each other numbers or birthdays.

QPWDRQDDIF Determines whether the new 0—Allow duplicate passwords (Required differences password must be different to be used
in passwords) from the old password. 1—Disallow previous 32

2—Disallow previous 24 3—Disallow previous 18 4—Disallow previous 12 5—Disallow previous 10 6—Disallow previous 8 7—Disallow previous 6 8—Disallow previous 4

QPWDLMTREP Determines if a password can 0—Can be repeated (Limit repeating have repeating characters 1—Cannot be repeated characters) in the password 2—Cannot be repeated consecutively

QPWDRQDDGT Determines if users are required 0—Numbers not required (Require digit to have a number (0 to 9) 1—At least one number required in password) in their passwords.

QPWDLMTCHR Limits the use of certain characters A to Z, 0 to 9 (Limit characters in a password, and allows you to
in password) specify up to 10 characters that *NONE—Special characters #, $, cannot appear in a password. underline (_), and @

QPWDPOSDIF Determines if a user can use 0—Corresponding characters (Limit password same character in the same can be used character positions) position in the new password 1—Corresponding characters

as in the old password cannot be used

QPWDVLDPGM* An external program used *NONE—No program is used (Password validation to validate new passwords —When a user program) changes his password, this program executes

QPWDMINLEN Sets the minimum number 1 to 10 (Minimum length of characters that a
of password) password can have

QPWDMAXLEN Sets the maximum number of 1 to 10 (Maximum length characters that a password
of password) can have

QPWDEXPITV Determines when you want the 1 to 366, *NOMAX default to cause the user’s
password to expire.

*IBM does not recommend using this system value, as it poses a security threat. With a validation program, passwords are passed unencrypted to the validation program when the user logs on. This validation program, requires three variables in this order: a 10-character new password, a 10-character old password, and a one-character return code that must be a 0 for a valid password and any other character for an invalid password.

Figure 1: System values that affect passwords

Value Description Valid Values

QMAXSIGN Limits invalid attempts to sign on 1 to 25, *NOMAX (Maximum sign-on
attempts allowed)

QMAXSGNACN What to do when QMAXSIGN is reached 3—Disable profile and device (Action to take 2—Disable profile for failed sign-on 1—Disable device attempts)

QDSPSGNINF Display sign-on information 0—Do not show sign-on display (Sign-on display 1—Show sign-on display information control)

Figure 2: System values that affect signing on to the AS/400

Value Description Valid Values

QLMTDEVSSN Limits regular users to 0—Do not limit to one sign-on (Disallow or allow multiple sessions 1—Limit to one sign-on multiple sign-ons)

QLMTSECOFR Limits security officers to 0—Explicit device access not needed (Disallow or allow multiple sessions 1—Explicit device access needed multiple sign-ons by
security officer)

Figure 3: Limiting multiple sign-ons