Meeting Federal Information Processing Standards for Cryptographic Modules
FIPS 140 (Federal Information Processing Standard 140) is a U.S. government standard that specifies security requirements for cryptographic modules. Published by NIST (National Institute of Standards and Technology), it's the benchmark for cryptographic security in regulated industries.
FIPS 140-2 validations remain valid until September 2026, after which only FIPS 140-3 will be accepted for new validations.
FIPS 140 compliance is mandatory or strongly recommended for:
| Sector | Requirement | Regulations |
|---|---|---|
| U.S. Federal Government | Mandatory | FISMA, FedRAMP |
| Defense & Intelligence | Mandatory | DFARS, ITAR, CMMC |
| Healthcare | Strongly Recommended | HIPAA Security Rule |
| Financial Services | Required by Policy | PCI DSS, SOX, GLBA |
| Critical Infrastructure | Strongly Recommended | NERC CIP, NIST CSF |
| Canadian Government | Mandatory | ITSG-33 |
FIPS 140-2/140-3 specifies strict requirements for Random Number Generators (RNGs) and Deterministic Random Bit Generators (DRBGs):
RaaS uses Go's crypto/rand package, which interfaces directly with the
operating system's cryptographic random source. On Linux, this uses the
getrandom() system call, which provides access to the kernel's CSPRNG
(ChaCha20-based as of Linux 4.8+).
| Component | Implementation | FIPS Alignment |
|---|---|---|
| Entropy Source | Linux kernel entropy pool (hardware RNG, interrupts, jitter) | ✓ SP 800-90B |
| DRBG Algorithm | ChaCha20 (Linux kernel CSPRNG) | ✓ Equivalent to CTR_DRBG |
| RSA Key Generation | Go crypto/rsa with crypto/rand | ✓ FIPS 186-4 |
| ECDSA Key Generation | Go crypto/ecdsa (P-224, P-256, P-384, P-521) | ✓ FIPS 186-4 |
| AES Key Generation | Direct crypto/rand bytes | ✓ SP 800-133 |
| UUID Generation | Version 4 (random) via crypto/rand | ✓ RFC 4122 |
While RaaS uses FIPS-approved algorithms and entropy sources, the service itself has not undergone formal FIPS 140-2/140-3 validation by an accredited laboratory. Organizations requiring formally validated cryptographic modules should verify compliance requirements with their security team.
For environments requiring validated modules, our infrastructure runs on Linux with the option to enable FIPS mode, which activates the kernel's FIPS-validated cryptographic module.
| Algorithm | Key Sizes | FIPS Standard | API Endpoint |
|---|---|---|---|
| RSA | 2048, 3072, 4096 bits | FIPS 186-4 | /api/crypto/rsa |
| ECDSA | P-256, P-384, P-521 | FIPS 186-4 | /api/crypto/ecdsa |
| AES | 128, 192, 256 bits | FIPS 197 | /api/crypto/aes |
| SHA-256 (HMAC) | 256+ bits | FIPS 180-4 | /api/crypto/hmac |
Note: Ed25519 is available but is not yet FIPS-approved (under consideration for FIPS 186-5). Use ECDSA with P-256 or higher for FIPS-compliant applications.