Q: Recently my senior programmer told me he was given a back door to determine the passwords of all user profiles on the AS/400. You can guess my reaction upon receiving this information. What can I do to prevent this incursion?
A: I am not aware of any back door to discover passwords. Because of the serious nature of this potential exposure, I discussed your letter with the IBM development team in Rochester. IBM is also unaware of any back door to determine the passwords of users.
The way in which the AS/400 stores user passwords does not, in itself, compromise security. I can think of some potential methods to record passwords when they are entered. The AS/400 does record the current and last 32 passwords of users to prevent reuse of passwords. However, the actual password is never stored. The passwords are one-way encrypted to prevent discovery by skilled individuals who know where passwords are stored.
The system uses a data encrypting standard (DES) to encrypt the user ID, with the password serving as the encryption key. The system then stores the result of the encryption (password token) and never the password. The formula used to encrypt a password is:
ENC PASSWORD + (User ID)=PASSWORD TOKEN
This method is secure because the PASSWORD TOKEN cannot be used to determine the password. If two users have the same password, the resulting password token will be different because the user IDs are different.
There are two possible ways to record the user password. If you find either of these situations is causing your problem, you can correct it easily. By restricting access to the system values and the service tools, you can prevent exposure in the future.
It is possible for a user-written validation program to store passwords whenever users change them. The Display Password (DSPPWD) tool in library QUSRTOOL is an example of such a program. If system value QPWDVLDPGM names a program, you need to determine what the program's function is. If you find a program that stores user passwords, then change the system value to *NONE to stop recording passwords.
The service tools can be used to trace a communication line. This trace records the sign-on screen including the user's password. A communication line trace can also record program start requests which may include the user ID and password in clear text. Only users who have *SERVICE special authority in their user profile can run a communication line trace. Dedicated Service Tools (DST) also has communication line trace capability. DST can be run from the system console if the system key lock is turned to the manual position and the DST password is known. I recommend changing the DST password and removing the key from your system unit.
Q: We plan to upgrade security on our AS/400, which currently has 170 users. Originally, our security was created with a single user profile for each department, with all users within a department using the same password and profile. Our plans will include one group profile per department, with multiple profiles attached.
Do you have any suggestions or pointers for a smooth transition?
A: The key to a successful transition is good communication with the user community. Before you implement a change, explain to the user community the purpose of the change and any impact it will have on them. Mention the benefits of increased security and the ability to customize the system for individual users. Emphasize to individuals that they should never share passwords with anyone.
The impact to users should be small, but you do need to explain how they can change their passwords. Tell your users whom they can contact if they forget their passwords. Be prepared to reset passwords; users will tend to forget their passwords since this is new to them.
I recommend a staggered approach. Target one department first to uncover any problems you could avoid before you convert all users. Start with the department that has the most vocal users. Work carefully with this department to resolve any problems, as this group's success will encourage other groups.
The user profile changes that you need to make are not complex. You will want to create each of the 170 individual user profiles.
I suggest using the existing departmental profiles as group profiles. During the transition, users can continue to use the departmental profile while you create the individual profiles. Set up the individual user profiles so that any objects they create are owned by the group profile. The command to create the individual profiles is:
CRTUSRPRF USRPRF(indiv_user) + GRPPRF(dept_profile) + OWNER(*GRPPRF) + INLPGM(menu_program) + LMTCPB(*YES) PWDEXP(*YES)
After users have become accustomed to their individual profiles, the last step is to change the password for the existing departmental profile to *NONE. For additional information on changing AS/400 security levels, see "A Guide to Changing QSECURITY," MC, March 1994.
LATEST COMMENTS
MC Press Online