Skip to main content

Overview

Federal Information Processing Standard (FIPS) 140-3 specifies security requirements for cryptographic modules used by federal agencies and their contractors. Compliance with FIPS 140-3 is mandatory for systems that process sensitive but unclassified (SBU) information or Controlled Unclassified Information (CUI). Nabla’s FIPS assessment evaluates whether your infrastructure uses FIPS-validated cryptographic implementations and follows cryptographic best practices across encryption at rest, encryption in transit, and key management.

Framework Details

  • Framework: FIPS 140-3
  • Standard Type: Cryptographic module validation
  • Validation Authority: NIST Cryptographic Module Validation Program (CMVP)
  • Output Format: OSCAL Assessment Results (JSON)
  • Primary Use Case: Federal systems, FISMA compliance, CUI protection

Key Concepts

FIPS 140-3 Security Levels

Note: Most cloud provider KMS services (AWS KMS, Azure Key Vault, GCP Cloud KMS) are validated at FIPS 140-2 Level 2 or FIPS 140-3 Level 1-2. Check the CMVP validation list for specific certificates.

FIPS Mode vs. FIPS Validation

Critical Distinction: Using a FIPS-validated library in non-FIPS mode does NOT constitute compliance. Both validation AND proper configuration are required.

Assessed Cryptographic Controls

Nabla’s FIPS assessor maps evidence to FedRAMP cryptographic controls from NIST 800-53 Rev 5:

SC-13: Cryptographic Protection

Requirement: Implement FIPS-validated cryptography to protect information Assessment Criteria:
  • System metadata indicates FIPS mode enabled (fips_mode_enabled: true)
  • SBOM identifies FIPS-validated cryptographic libraries
  • CMVP certificate numbers are documented
  • No weak cryptographic algorithms detected (MD5, SHA-1, DES, 3DES, RC4)
Evidence Sources:
Example Finding:

SC-12: Cryptographic Key Establishment and Management

Requirement: Establish and manage cryptographic keys for employed cryptography Assessment Criteria:
  • Key Management Service (KMS) resources detected
  • Customer Master Keys (CMK) properly configured
  • Key rotation enabled
  • Key metadata includes spec, usage, origin
  • Key size meets minimums (e2048 bits for RSA, e256 bits for AES)
Evidence Sources:
Example Finding:

SC-17: Public Key Infrastructure Certificates

Requirement: Issue public key certificates under an approved certificate policy Assessment Criteria:
  • Valid X.509 certificates detected on assets
  • Certificate signature algorithms meet standards (SHA-256+)
  • Certificate key sizes e2048 bits
  • No expired or self-signed certificates (in production)
Evidence Sources:
Example Finding:

SC-28: Protection of Information at Rest

Requirement: Protect confidentiality and integrity of information at rest Assessment Criteria:
  • Storage and database assets have encryption_at_rest: true
  • KMS key ID is documented for encrypted resources
  • Encryption algorithm specified (AES-256-GCM preferred)
Evidence Sources:
Example Finding:

SC-8: Transmission Confidentiality and Integrity

Requirement: Protect confidentiality and integrity of transmitted information Assessment Criteria:
  • Assets have encryption_in_transit: true
  • TLS version e1.2 (prefer TLS 1.3)
  • Modern cipher suites configured
  • No SSLv2, SSLv3, TLSv1.0, TLSv1.1
Evidence Sources:
Example Finding:

Multi-Cloud FIPS Validation

Cloud Provider FIPS Status: Major cloud providers maintain CMVP-validated cryptographic modules, but validation status varies by service and region.Current Coverage (Expanding):Important: Always verify current validation status on the NIST CMVP website. Validations can expire or be updated.

CMVP Certificate Tracking

Nabla automatically extracts CMVP certificate numbers from SBOM metadata:
Validation Lookup: https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/4282

Evidence Lake Integration

The FIPS assessor consumes evidence from Nabla’s multi-source evidence lake:

Evidence Sources

1. System Metadata (system_metadata)
  • fips_mode_enabled: Boolean indicating OS-level FIPS mode
  • openssl_fips_status: OpenSSL FIPS configuration string
  • hostname: System identifier for evidence attribution
2. Software Bill of Materials (sboms)
  • component_name, component_version: Software identity
  • cryptographic_libraries: Array of crypto libs (e.g., ["openssl", "libgcrypt"])
  • fips_validated: Boolean attestation
  • fips_certificate_number: CMVP cert number (e.g., "4282")
3. Configuration Posture (configs_posture)
  • weak_crypto_detected: Boolean flag for legacy algorithms
  • encryption_algorithm: Configured algorithm (e.g., "AES-256-GCM")
  • cipher_suite: TLS cipher suite
  • key_size: Cryptographic key size in bits
  • cryptographic_material_type: Type of crypto material (private_key, symmetric_key, certificate)
4. Asset Inventory (asset_inventory)
  • asset_type: Infrastructure type (storage, database, key_vault)
  • encryption_at_rest, encryption_in_transit: Boolean flags
  • kms_key_id: KMS key ARN/ID
  • tls_version: TLS protocol version
  • certificate_info: X.509 certificate metadata
  • provider: Cloud provider (aws, azure, gcp)

OSCAL Output Structure

FIPS assessment results include detailed subject tracking and observation linking:

Example Assessment Request

Common FIPS Compliance Issues

Critical Violations

Non-FIPS Cryptographic Libraries
Weak Cryptographic Algorithms
FIPS Mode Not Enabled

Warnings

Missing CMVP Certificate
Incomplete KMS Metadata

FIPS-Approved Algorithms (FIPS 140-3)

Encryption

Hashing

Key Agreement

Federal Compliance Context

FISMA Requirements

FIPS 140-3 Mandate: FISMA (Federal Information Security Management Act) requires all federal information systems to use FIPS-validated cryptography. OMB Circular A-130: Federal agencies must implement FIPS 140-3 validated cryptographic modules for:
  • Confidentiality protection
  • Integrity verification
  • Authentication
  • Nonrepudiation

NIST Guidelines

  • NIST SP 800-52 Rev 2: TLS implementation guidance
  • NIST SP 800-57: Key management recommendations
  • NIST SP 800-175B: Algorithm security lifetimes

Limitations

FIPS Assessment Limitations:
  • IaC Scope: Only evaluates infrastructure declared in code/evidence lake
  • CMVP Trust: Relies on SBOM attestations; does not independently verify CMVP certificates
  • Runtime Validation: Cannot verify FIPS mode is enabled at runtime (only config)
  • Application Crypto: Cannot assess application-level cryptographic implementations
  • Hardware Modules: Physical HSMs (FIPS 140-3 Level 3/4) require on-site validation

Best Practices

  1. Use Cloud Provider KMS: AWS KMS, Azure Key Vault, GCP Cloud KMS are FIPS-validated
  2. Enable FIPS Mode: Configure OS and libraries for FIPS operation
  3. Document CMVP Certificates: Include certificate numbers in SBOM metadata
  4. Rotate Keys: Enable automatic key rotation (annually minimum)
  5. Audit Cryptographic Inventory: Maintain up-to-date SBOM with crypto libraries
Migration Note: FIPS 140-2 validations remain acceptable until September 2026. After this date, only FIPS 140-3 validated modules will be compliant.
  • NIST 800-53 - Security controls including SC-13, SC-12, SC-8
  • NIST 800-171 - Requirement 3.13.11 (FIPS-validated cryptography)
  • NIST 800-172 - Enhanced cryptographic requirements
  • FedRAMP - Cryptographic requirements for cloud services

References