In this article, security expert Carol Woodbury provides an explanation of the new security features provided in V7.
The IBM i operating system is famous for being one of the most securable systems available in the market, and IBM continues to take steps to ensure it stays that way.
New User Profile Parameters
Two new user profile parameters have been added to the Create and Change User Profile commands (CRT/CHGUSRPRF) in V7. These parameters allow you to specify that a profile is to expire (be set to status of *DISABLED) on a particular date or x days from when you created or changed the profile. Some of this function has been available since the Version 3 days, when the integrated Security Tools (GO SECTOOLS) were introduced. But the function provided by the Change Expiration Schedule Entry (CHGEXPSCDE) command is a bit buried, and that's probably why it's seldom used. The addition of these two parameters at the very end of CRT/CHGUSRPRF helps to bring visibility to this function. In V7, when you create or change a profile, you can specify the date that the profile is to expire. (See Figure 1 below.) Or you can specify that the profile is to expire based on the expiration interval. The expiration interval can be 1-365 days. For example, when you create a profile and specify that the expiration date is *USREXPITV and the expiration interval is 90, the profile will be set to status of *DISABLED 90 days later. This function can make management of "temporary profiles" (profiles created for seasonal employees or contractors, for example) easier to manage. However, if the profile does get set to *DISABLED using this interface and you find out that the employee has turned from temporary to permanent, you'll have to set the status to be *ENABLED and also set the expiration date to *NONE; otherwise, the profile cannot be used.
Figure 1: Specify the date that a profile is to expire. (Click image to enlarge.)
A field-level (column-level) exit has been defined for database files. This function has been added to enable encryption at the field level. The formal name of this new feature is "field procedure," but you might see it referred to as "column-level encryption." From the latter description, you might think that data in a column is automatically encrypted, but that's not what happens. This exit is simply providing the infrastructure to allow you to encrypt data. If you want the data encrypted (or decrypted), the exit program you register will have to call an encryption routine to perform the encryption function. You will also have to perform all encryption key management associated with encrypting this data. I expect the encryption vendors will provide examples of how you can invoke their products using this new exit point. Note: You do not register the exit program for this field-level exit in the Registration Facility. You register these exit programs when you run the SQL CREATE TABLE, or you can add it to an existing table using the SQL ALTER TABLE function. The exit program(s) registered for each column can be displayed using the Display File Field Definition (DSPFFD) command or by querying the database cross-reference catalogs.
While the nickname for and purpose of this function is column-level encryption, it was created as a general-purpose exit. So with a little imagination, you can use this exit for a variety of purposes. See the SQL Programming Guide for a sample field procedure and the SQL Reference Manual for instructions on the syntax of the FIELDPROC feature. Lest you think you want to add an exit for every column in your database, you'll want to first analyze whether adding a field procedure has performance implications for your environment And if you're going to use a field procedure for encrypting or decrypting data, you'll want to make sure that the exit program has some extra checks so that the encrypt/decrypt is only performed for selected—not all— users accessing the database file.
SSL-enabled Telnet client support has been added to V7 and is being PTFed to V5R4 and V6R1. You can control whether the entire system (that is, all connections) uses the SSL client or whether it's just in use for particular users or for a specific job. Environment variables control this when using the PTFs in previous versions; however, in V7, new parameters have been added to the TELNET command to control these options. This new function will help when your security policy requires that all connections be encrypted. Organizations often have compliance requirements—especially for powerful users (for example, users with *ALLOBJ special authority)—that all connections be encrypted so that their passwords do not flow over the network in cleartext.
V6R1 provided support for encrypted auxiliary storage pools (ASPs), but they had to be newly created ASPs. V7R1 allows you to turn on/off encryption on existing ASPs. V7 also provides support for changing the encryption key, which allows you to perform key rotation.
By using the Tivoli Key Lifecycle Manager (TKLM) to manage your encryption key, you can implement disk-level encryption at the hardware level. The DS8000 and DS5000 series drives definitely support this feature, and there may be others. To catch up on the tape drives that currently support encryption, check out this Redbook.
A new encryption mode, AES-XCBC-MAC, was added to the encryption APIs to support the encryption typically used by VPN connections.
V7 offers support for Simple Network Management Protocol (SNMP) Version 3, providing a more up-to-date version of this protocol.
Exit points have been added to sockets. You can register a user-written program for one of the QIBM_QSO_* exit points in the Registration Facility (WRKREGINF). These exits will be called for socket accept(), connect(), and listen() functions. The reason I'm mentioning this new function is that, because the exit programs can return an indication as to whether the function should be allowed to continue (or not), the plethora of security exit point vendors will likely add these to their list of supported exit points. However, as with all exit points, you'll want to consider and evaluate the potential performance impacts of registering a program for these functions.
IBM i Security
As IBM continues to show support for and make enhancements to IBM i, it's good to see IBM continue to add features that help us secure our systems and protect our data.