OpenShift must use FIPS-validated SHA-2 or higher hash function for digital signature generation and verification (nonlegacy use).

STIG ID: CNTR-OS-001080  |  SRG: SRG-APP-000610-CTR-001385 |  Severity: medium |  CCI: CCI-000803 |  Vulnerability Id: V-257587 | 

Vulnerability Discussion

Using a FIPS-validated SHA-2 or higher hash function for digital signature generation and verification in OpenShift ensures strong cryptographic security, compliance with industry standards, and protection against known attacks. It promotes the integrity, authenticity, and nonrepudiation of digital signatures, which are essential for secure communication and data exchange in the OpenShift platform.

SHA1 is disabled in digital signatures when FIPS mode is enabled. OpenShift must verify that the certificates in /etc/kubernetes and /etc/pki are using sha256 signatures.

Check

Verify the use of a FIPS-compliant hash function for digital signature generation and validation, by executing and reviewing the following commands:

update-crypto-policies --show

If the return is not "FIPS", this is a finding.

Verify the crypto-policies by executing the following:

openssl x509 -in /etc/kubernetes/kubelet-ca.crt -noout -text | grep Algorithm

openssl x509 -in /etc/kubernetes/ca.crt -noout -text | grep Algorithm

If any of the crypto-policies listed are not FIPS compliant, this is a finding. Details of algorithms can be reviewed at the following knowledge base article:
https://access.redhat.com/articles/3642912

Fix

Reinstall the OpenShift cluster in FIPS mode. The file install-config.yaml has a top-level key that enables FIPS mode for all nodes and the cluster platform layer. If the install-config.yaml was not backed up prior to consumption as part of the installation, it must be recreated. An example install-config.yaml with some sections trimmed out for brevity, and the "fips: true" key applied at the top level is shown below:

apiVersion: v1
baseDomain: example.com
controlPlane:
name: master
platform:
aws:
[...]
replicas: 3
compute:
- name: worker
platform:
aws:
replicas: 3
metadata:
name: fips-cluster
networking:
[...]
platform:
aws:
[...]
sshKey: ssh-ed25519 AAAA...
pullSecret: '{"auths": ...}'
fips: true

After saving the install-config.yaml with the corresponding correct information, run the installer to create a cluster that uses FIPS-validated Modules in Process cryptographic libraries. The command to install a cluster and consume the install-config.yaml is:

> ./openshift-install create cluster --dir= --log-level=info
Where is the directory that contains install-config.yaml

Additional details can be found here: https://docs.openshift.com/container-platform/4.8/installing/installing-fips.html