nionx.cloud
← Blog

Security5 min read

How we encrypt your secrets

Envelope encryption with AES-256-GCM, values bound to where they belong, and a dashboard that never shows them.

A secrets manager is only as good as what happens to a value after you press Save. Here is exactly what Nionx does with it.

Envelope encryption

Every value gets its own random 256-bit data key and is encrypted with AES-256-GCM. The data key is then encrypted (“wrapped”) with a key-encryption key that never sits next to the data. What's stored is the ciphertext, the wrapped key and a few format fields: nothing that reveals the value on its own.

Bound to where it belongs

Each value is encrypted together with its context: the workspace, project, environment, secret and version it belongs to. Copy a ciphertext into another secret or environment and it won't decrypt. Change a single byte and decryption fails too.

Write-only by design

  • The dashboard never shows a stored value. You can replace or revoke it, not read it.
  • No person's role includes reading values. Only an API token for that environment can.
  • Values never appear in logs, the audit log, error messages or API metadata.
  • Rolling back to an earlier version just moves a pointer: nothing is decrypted or copied.

What's next

During the beta, keys are managed by Nionx itself. Before anyone stores real production secrets, the key-encryption key moves to a managed key service (AWS KMS), with a key rotation procedure. Until then: use Nionx for testing, not for real projects.

More from the blog