MFA overview
Multi-factor authentication (MFA) extends password authentication to include an additional authentication factor used to verify your identity.
The IBM i integrated MFA solution incorporates a time-based one-time password (TOTP) key which is stored in the user profile and is architecturally protected similar to the password. The TOTP key is used, along with the system time, to generate a TOTP value. The TOTP value is presented as an additional factor when authenticating. The IBM i implementation is based on RFC 6238 -TOTP: Time-Based One-Time Password Algorithm
The IBM i implementation follows RFC 6238, so any compatible client application such as a PC application, smart phone application, smart watch application, or physical token that is standards compliant can be used to generate a TOTP value. The user profile and compatible client application must have the same TOTP key or shared secret. The client application, after it is configured with the TOTP key, generates TOTP values based on the TOTP key and the current time on the device. The user enters the TOTP value as an additional sign-on factor when authenticating to the system. The operating system validates the user ID, password and TOTP value at the same time making it a multi-factor authentication.
Enabling MFA
The IBM i operating system integrated MFA solution requires the system be at a security level (QSECURITY system value) 40 or greater and a password level (QPWDLVL system value) 4 or greater.
MFA is enabled on your system when the Additional sign-on factor security attribute is set to enabled. When the additional sign-on factor is enabled, some interfaces will show an Additional factor field on the sign-on prompt along with the User and Password fields. This does not mean users will be required to enter an additional factor. The additional factor is only required if the user’s profile is changed to require it, otherwise the additional factor will be ignored. Enabling the additional factor for a user profile requires actions from both the user and the administrator. The frequency with which a user has to enter a TOTP value is configurable.
Interfaces that do not have an additional factor field require the additional factor value be appended to the password using a colon as the separator (password:additional_factor). The system administrator must educate users on how to use the password field on interfaces that do not provide an additional factor field.
For more information, refer to Additional sign-on factor security attribute.
When a user is required to enter a TOTP value, it requires the system time and client authenticator application time to be synchronized within a few seconds of each other. The Network Time Protocol (NTP) client can be used to keep the system time in sync with other devices in the network. For more information, refer to Network Time Protocol (NTP) time synchronization.
- Cached password
- The client application stores a user’s password and authenticates to the server multiple times, over multiple connections, during a variable time period. The time-sensitive TOTP requirement breaks authentication for these applications. Applications that ask permission to store the password can be identified while those doing it implicitly need to be discovered through testing.
- Applications can be redesigned to prompt for credentials on each authentication or to eliminate additional connections/authentications.
- Security administrators can allow password caching applications to work for individual user profiles by configuring the frequency that a TOTP value is required.
- Password circumvention
- An application’s server implementation bypasses the need for the user profile’s password. This happens when the application profile has authority to the user profile used on an interface that allows a special value for the password. An application may perform authentication independent of the user profile and/or password (such as Kerberos). Associating a user profile with this type of authentication that didn’t require a password, conflicts with MFA requirements.
- Security administrators can use the QIBM_RUN_UNDER_USER_NO_AUTH function ID to control if this circumvention is permitted.
Host Connection Server
The Host connection server (HCS) allows a client to establish authenticated sessions with various host servers. HCS allows a client to authenticate one time and then use that authenticated session to transfer new connections to other host servers without having to re-authenticate. A user configured to always require a TOTP value only has to provide it one time eliminating the need to prompt for credentials multiple times. IBM i Access Client Solutions (ACS), IBM Navigator for i, and Digital Certificate Manager (DCM) have changed to use HCS. For more information, refer to Host connection server.
QIBM_RUN_UNDER_USER_NO_AUTH function ID
IBM-supplied user profiles
- QPGMR_NC
- QSECOFR_NC
- QSYSOPR_NC
- QUSER_NC
Enhanced profile tokens
Single authentication exit point QIBM_QSY_AUTH
Application developer considerations
Some system authentication interfaces with a user password parameter have a separate additional authentication factor parameter. The user experience can be improved when applications expose an additional authentication prompt to their users. This can be accomplished if the application determines the Additional sign-on factor security attribute is enabled then uses the additional authentication factor parameter on authentication interfaces. The IBM i authentication interfaces also include parameters to provide the additional information required to be passed to the QIBM_QSY_AUTH exit program or to create an enhanced profile token. The QIBM_QSY_AUTH exit program can analyze more information when applications consistently provide the additional information on applicable interface calls. However, the IBM i integrated MFA solution is functional without application changes to use these parameters. For more information on the interfaces with the relevant parameters, refer to *REGFAC authentication method and Enhanced profile token security protection.
Service Tools support
System service tools (SST) and dedicated service tools (DST) support a separate MFA TOTP key implementation not connected to the operating system MFA support. The TOTP keys set for SST users have no relationship to the TOTP keys set for IBM i user profiles, specifically an SST user with a linked profile does not share a TOTP key with the linked profile. Another difference is that SST does not allow setting a frequency for providing the TOTP value, it is required every time a password is required. An SST administrator can enable MFA for SST without enabling it on the operating system. For more information, refer to Service tools Multi-factor authentication (MFA).