FIPS 140 mode and IP security

The Internet Key Exchange daemon (IKED), the network security services daemon (NSSD), and the TCP/IP stack components perform a wide variety of cryptographic operations for IP Security. The IKED and the NSSD manage cryptographic keys and digital signatures and perform hashes for authentication. The IKED and the TCP/IP stacks perform encryption and decryption of messages that flow over the IPSec tunnels. Architectural enhancements to the IKE protocols periodically introduce new cryptographic algorithms for performing hashes and encryption.

Federal Information Processing Standards (FIPS) document 140 (FIPS 140) provides a higher degree of assurance of the integrity of cryptographic operations by placing restrictions on the cryptographic components and the operations performed by these components. Weaker algorithms are forbidden and all the operations must be performed by cryptographic modules that are contained within a well defined cryptographic boundary.

You can configure the IKED, the NSSD, and the TCP/IP stack components to operate in FIPS 140 mode. When you do, you restrict the cryptographic algorithms they support, and you modify their interactions with each other and with the other hardware and software components of the z/OS® system related to cryptography, such as Integrated Cryptographic Services Facility (ICSF) and System SSL.

In FIPS 140 mode, the IKED, the NSSD, and the TCP/IP stacks enforce the following restrictions on the cryptographic algorithms that can be used for IP security:

When the FIPS 140 mode is configured for a TCP/IP stack, the Policy Agent enforces some of the FIPS 140-related restrictions when it parses the IP security policy files. Other restrictions are enforced when dynamic tunnels are being activated, after the FIPS 140 mode of all of the relevant software components (the IKED and the NSSD) is known.

You configure FIPS 140 mode independently for each of the IKED, the NSSD, and the TCP/IP stack components. ICSF and System SSL must also be configured to support FIPS 140. If you use FIPS 140 mode in some components and not others, the resulting system might not operate in FIPS 140 mode. The components that are configured to use FIPS 140 mode can use cryptographic services only from components that are also operating in FIPS 140 mode, so the FIPS 140 mode mismatch can cause functional problems.

When possible, you should enable FIPS 140 mode for the IKED, the NSSD, and the TCP/IP stacks all at once. If you must implement FIPS 140 support in stages, enable FIPS 140 mode in the components in the following order:

  1. Configure FIPS 140 mode in the NSSD. If the NSSD is configured in FIPS 140 mode and the IKED and the TCP/IP stacks are not, the IKED still uses the NSS IPSec certificate service provided by the NSSD. Note that the NSSD creates and verifies signatures only for certificates that conform to FIPS 140 restrictions, even if the IPSec client is not operating in FIPS 140 mode.
  2. Configure FIPS 140 mode in the IKED. When the NSSD and the IKED are both in FIPS 140 mode, but the stacks are not, dynamic VPN tunnels can be activated and data can flow, as long as those tunnels follow the FIPS 140 cryptographic algorithm restrictions.
  3. If you are using SWSA in a sysplex, configure FIPS 140 mode in the distributor stack of the sysplex.
  4. Configure FIPS 140 mode in all other TCP/IP stacks.

Enabling FIPS 140 mode on a system can affect performance. For example, you might have to change from using a weak encryption algorithm to using one that requires more processing to perform. Even if no algorithm changes are necessary, the IKED, the NSSD, and the TCP/IP stacks perform their cryptography operations in a different way when FIPS 140 mode is enabled than when it is not enabled, because FIPS 140 imposes additional self-verification requirements and access restrictions, and because hardware accelerated implementations of some cryptographic operations might not be available in FIPS 140 mode.