Vulnerability Discussion
Use of weak or untested encryption algorithms undermines the purposes of using encryption to protect data. The operating system must implement cryptographic modules adhering to the higher standards approved by the federal government since this provides assurance they have been tested and validated.
OL 8 uses GRUB 2 as the default bootloader. Note that GRUB 2 reads its configuration from the "/boot/grub2/grub.cfg" file on traditional BIOS-based machines and from the "/boot/efi/EFI/redhat/grub.cfg" file on UEFI machines.
The fips=1 kernel option needs to be added to the kernel command line during system installation so that key generation is done with FIPS-approved algorithms and continuous monitoring tests in place. Users should also ensure the system has plenty of entropy during the installation process by moving the mouse around, or if no mouse is available, ensuring that many keystrokes are typed. The recommended number of keystrokes is 256 and more. Fewer than 256 keystrokes may generate a non-unique key.
Satisfies: SRG-OS-000033-GPOS-00014, SRG-OS-000125-GPOS-00065, SRG-OS-000250-GPOS-00093, SRG-OS-000393-GPOS-00173, SRG-OS-000394-GPOS-00174, SRG-OS-000423-GPOS-00187
Check
Verify the operating system implements DoD-approved encryption to protect the confidentiality of remote access sessions.
Check to see if FIPS mode is enabled with the following command:
$ fips-mode-setup --check
FIPS mode is enabled
If FIPS mode is "enabled", check to see if the kernel command line is configured to use FIPS mode with the following command:
$ sudo grep fips /boot/grub2/grub.cfg
/vmlinuz-3.8.0-0.40.el7.x86_64 root=/dev/mapper/OL-root ro rd.md=0 rd.dm=0 rd.lvm.lv=OL/swap crashkernel=auto rd.luks=0 vconsole.keymap=us rd.lvm.lv=OL/root rhgb fips=1 quiet
If the kernel command line is configured to use FIPS mode, check to see if the system is in FIPS mode with the following command:
$ sudo cat /proc/sys/crypto/fips_enabled
1
If FIPS mode is not "enabled", the kernel command line does not have a FIPS entry, or the system has a value of "0" for "fips_enabled" in "/proc/sys/crypto", this is a finding.
Fix
Configure the operating system to implement DoD-approved encryption by following the steps below:
To enable strict FIPS compliance, the fips=1 kernel option needs to be added to the kernel boot parameters during system installation so key generation is done with FIPS-approved algorithms and continuous monitoring tests in place.
Enable FIPS mode after installation (not strict FIPS compliant) with the following command:
$ sudo fips-mode-setup --enable
Reboot the system for the changes to take effect.