Security

How Simault protects secrets, and where it does not yet

A secrets service has to be honest about its own security. This page describes the controls that exist and the gaps we know about.

Simault is pre-release software and has had no independent security review. Review the limitations below before using it to protect anything important.

How it works

Encryption at rest

Secrets and public keys are encrypted in the application with AES-256 before they are written. MongoDB stores ciphertext only. A data key in the database is wrapped by a master key that you hold.

Agent authentication

Each application registers an RSA public key and signs its ID and the current time to get a token. The signature must be recent, and each signed request is accepted once.

Short lifetimes

Secrets, access tokens and registration tokens expire after one hour by default. Their age is checked on every use, not only when the database cleans up.

Revocation

Removing or re-registering an application deletes its tokens and its secret at once. Every secret request also checks that the application is still active.

Access policies

Policies restrict each application by action, resource and client network range. Once a policy applies to an application, anything it does not allow is denied.

Operational safeguards

Per-client rate limits, constant-time admin key checks, log redaction, and error responses that never include internal details.

Known limitations

The complete security policy, including configuration checks for production, is in SECURITY.MD.

Report a vulnerability

Please do not open a public issue for a security problem.