Skip to content

feat: implement FIPS 140-2/140-3 compliance#287

Draft
alexsander-souza wants to merge 4 commits into
canonical:masterfrom
alexsander-souza:fips_impl
Draft

feat: implement FIPS 140-2/140-3 compliance#287
alexsander-souza wants to merge 4 commits into
canonical:masterfrom
alexsander-souza:fips_impl

Conversation

@alexsander-souza

@alexsander-souza alexsander-souza commented May 28, 2026

Copy link
Copy Markdown
Contributor

Make MAAS operable on FIPS-enabled Ubuntu 24.04 LTS hosts by detecting
FIPS mode at runtime and enforcing FIPS-approved algorithms across all
components.

Key changes:

  • FIPS mode detection utilities
  • FIPS API exposure: fips_active field on GET /v3/, fips_supported annotations on power-types
  • FIPS API boundary enforcement: SSH key and TLS certificate import validation (422 rejection)
  • SSH algorithm hardening: FIPS allow-lists applied to hmc, mscm, wedge power drivers via connect_ssh()
  • IPMI cipher suite 17 enforcement in FIPS mode
  • Fernet→AES-256-GCM migration for region↔rack RPC encryption with backward-compatible Fernet decryption
  • OMAPI HMAC-MD5→HMAC-SHA256 upgrade (unconditional)
  • X.509 serial number CSPRNG (secrets.randbits), RSA≥2048/ECDSA P-256 key constraints
  • PostgreSQL BMC index MD5→SHA256 replacement (Alembic migration 0022)
  • SHA-1 display uses flagged with usedforsecurity=False
  • TLS 1.2 minimum version at key construction sites (vmware, simplestreams, certificates)
  • VMware driver SSL context remediation (ssl.PROTOCOL_SSLv23→create_default_context)
  • AMT driver HTTPS enforcement and TLS verification in FIPS mode
  • Unsupported power driver rejection (apc, eaton, raritan, dli, msftocs, recs, seamicro, ucsm, moonshot)
  • Go FIPS activation via GODEBUG=fips140=on wrapper scripts (snap + debian)
  • Structured security log event constants (FIPS_mode_detected, FIPS_crypto_error, etc.)
  • Power driver FIPS classification registry (DriverFIPSStatus enum)

@maas-lander

Copy link
Copy Markdown
Collaborator

Check where you would like a Mattermost message to be sent to when CI completes and this PR is merged

  • Direct message
  • ~maas

@alexsander-souza alexsander-souza changed the title feat: implement FIPS 140-2/140-3 compliance for MAAS feat: implement FIPS 140-2/140-3 compliance May 28, 2026
@alexsander-souza alexsander-souza force-pushed the fips_impl branch 6 times, most recently from bc4d5e5 to 0cff613 Compare June 3, 2026 21:14
@alexsander-souza alexsander-souza force-pushed the fips_impl branch 2 times, most recently from 1a2ca7a to 6b58829 Compare June 10, 2026 19:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants