Skip to main content

Cryptographic Controls Policy (A.8.24)

Document ID: cryptographic-controls-policy
Version: 1.0
Effective from: 2025-01-01
Owner: Founder / CEO
Review cycle: Annual


Purpose​

Define which cryptographic algorithms, key sizes, and key management practices are approved for protecting SigmaShake information assets.

Approved algorithms​

Use caseAlgorithmKey size / parametersNotes
Evidence signingEd25519256-bit (Curve25519)IETF RFC 8032
TLS transportTLS 1.2+ECDHE preferredEnforced by Cloudflare
HMAC (internal auth)HMAC-SHA-256256-bit keySecrets Store
Password hashingN/A—No passwords stored; SSO only
Content addressingSHA-256—Evidence hashing + Merkle chain

Prohibited algorithms​

  • MD5, SHA-1 (for integrity or signing purposes)
  • RSA < 2048 bits
  • DES, 3DES, RC4
  • ECB mode for any block cipher
  • Self-signed TLS certificates in production

Key management​

Evidence signing keys (Ed25519)​

  • Generated in Cloudflare Workers using crypto.subtle.generateKey
  • Private key stored as COMPLIANCE_SIGNING_KEY in Cloudflare Secrets Store
  • Public key registered in signing_keys table and published at /.well-known/compliance-pubkey
  • Rotation: every 90 days. Overlap slot (COMPLIANCE_SIGNING_KEY_V2) maintained during rotation window
  • Retiring keys remain in signing_keys with state retiring so historical evidence remains verifiable

HMAC keys​

  • Stored in Cloudflare Secrets Store
  • Rotated on the same 90-day cadence as signing keys (secrets-age + rotation-smoke collectors)
  • Never transmitted; compared via constant-time equality

GitHub App private key (RSA)​

  • RS256 JWT signing for GitHub App installation token minting
  • Stored as GITHUB_APP_PRIVATE_KEY in Secrets Store
  • Rotated annually or on suspected compromise

Transport security​

All external-facing endpoints use HTTPS enforced by Cloudflare. Internal service-to-service calls use Cloudflare service bindings (same-network, TLS-equivalent isolation).

Key compromise response​

If a signing key is suspected compromised:

  1. Immediately set key state to revoked in signing_keys
  2. Generate a new key and deploy as the active key
  3. Issue an incident report referencing affected evidence objects
  4. Notify affected auditors or customers if evidence integrity is in question

Evidence​

CollectorCadenceControl
secrets-ageDailyA.5.17, A.8.24
rotation-smokeDailyA.5.17, A.8.24
saml-signing-attestationWeeklyA.8.24
sso-signing-key-ageWeeklyA.8.24