Overview
FIPS, short for the Federal Information Processing Standards, is a federal compliance framework. FIPS is mandatory for non-military federal government agencies, contractors, and vendors, and is often adopted voluntarily by private sector companies. It is also required by FedRAMP.What is FIPS
FIPS compliance ensures that cryptographic security services in applications adhere to rigorous standards for security and integrity and that they are correctly implemented. Minimus FIPS images are built to contain only FIPS-validated cryptographic modules. Cryptographic FIPS modules currently provided by Minimus:- Minimus Cryptographic Module (FIPS 140-3 Provider)
FIPS certifications
The Minimus Cryptographic Module has one or more of the following FIPS certifications (depending on the image and technology):Minimus FIPS images are kernel independent
As a rule, FIPS requires an entropy source to provide cryptographic protection. The entropy source provides unpredictability using trusted algorithms and secure random bit generators whose output cannot be predicted. The FIPS entropy source can be kernel-independent if provided by a userspace entropy source, or it can be kernel-dependent and require specialized hardware with certified FIPS-enabled kernels. In certified FIPS hardware the host kernel is configured in FIPS mode. Minimus FIPS container images do not require specialized hardware because they rely on a userspace entropy source. Minimus FIPS-validated container images can run in any environment, including local developer machines, existing CI/CD pipelines, and standard managed cloud services. Minimus FIPS images do not suffer from the constraints of many other traditional FIPS images which rely on kernel-dependent entropy and require specialized hardware with certified FIPS-enabled kernels, helping to greatly lower operational costs.Minimus FIPS images | Most FIPS options | |
---|---|---|
Entropy source | Userspace entropy | Kernel-dependent entropy |
Hardware requirement | None, any host kernel | Certified host kernel configured in FIPS mode |
Cloud environment requirements | None, any cloud environment | Only certified FIPS-enabled environment |
FIPS packages
FIPS validated images have unique FIPS packages, to enforce OpenSSL. FIPS packages are listed in the SBOM:- minimus-cryptographic-module
- openssl-fips-config (FIPS-relevant configuration files located in
/etc/ssl/
) - openssl-fips-test (a tool for validating that the FIPS provider is correctly configured)
Test for FIPS compatibility
Examine ciphers
First run the FIPS container so it is listening to a port for an SSL connection. To view the ciphers used by the container, run the following from the host:Test for FIPS compatibility
To test that the OpenSSL FIPS provider module is configured, you will need to run the container as root and override the entrypoint at runtime. For example, for the Minimus FIPS NGINX image, the run command looks like this:Further reading: About FIPS entropy requirements
FIPS compliance depends on an entropy source for secure key generation. Acceptable entropy sources and seeding behavior is detained in the following:- NITS publication FIPS 140-3: Security Requirements for Cryptographic Modules
- NIST SP 800-90 Series
- SP 800-90A: Recommendation for Random Number Generation Using Deterministic Random Bit Generators
Details DRBG types, seeding methods, and reseeding requirements. - SP 800-90B: Recommendation for the Entropy Sources Used for Random Bit Generation
Considered to be the most detailed source for acceptable entropy sources under FIPS requirements. - SP 800-90C: Recommendation for Random Bit Generator (RBG) Constructions
Discusses how to combine entropy sources and DRBGs in FIPS-compliant ways.
- SP 800-90A: Recommendation for Random Number Generation Using Deterministic Random Bit Generators