Hasty Briefsbeta

Bilingual

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.