The FIPS 140-3 Go Cryptographic Module
10 months ago
- #Cryptography
- #FIPS 140-3
- #Go Programming
- Go introduces native FIPS 140-3 support in the standard library and go command, simplifying compliance for regulated environments.
- The FIPS 140-3 Go Cryptographic Module is included in Go 1.24, with CAVP certificate A6650 and submitted to CMVP.
- Geomys led the implementation in collaboration with the Go Security Team, aiming for broad FIPS 140-3 validation.
- The module integrates transparently into Go applications, avoiding cgo and offering better performance and security than Go+BoringCrypto.
- FIPS 140-3 mode can be enabled with the `fips140=on` GODEBUG option, ensuring compliance with NIST DRBG for randomness and approved TLS algorithms.
- An experimental stricter mode, `fips140=only`, restricts non-approved algorithms, with feedback sought for policy enforcement frameworks.
- The `GOFIPS140` environment variable allows building against validated versions of the cryptographic module, simplifying compliance builds.
- Go prioritizes security, maintaining hedged ECDSA signatures and kernel-based random number generation even in FIPS 140-3 mode.
- The module supports a wide range of operating environments and hardware platforms, tested across 23 configurations.
- All FIPS 140-3 approved algorithms in the standard library are covered, including post-quantum ML-KEM key exchange.