Security

Your test data is encrypted with a key we don't have

Testrim is designed so that a breach of our servers, a subpoena to our cloud provider, or a malicious insider at Testrim itself yields ciphertext — never plaintext storageState, never plaintext test source, never plaintext run output.

The invariant

The Testrim server can never decrypt your storageState.json, your test source, or any run-time artifact on its own. Plaintext exists only inside your runner, in RAM, for the duration of a single test execution.

Every other defense — Firecracker microVM isolation, mTLS, attestation, FedRAMP controls — is layered on top. The invariant is the load-bearing claim.

How it works

Two secrets protect your vault, both derived locally in your browser:

  1. 1.Master password — what you type. Lives only in your head.
  2. 2.Secret Key — 128 bits of randomness generated by your browser at signup, downloaded as a text file you save locally. We never see it.

Your Master Unlock Key (MUK) is derived from both:

Salt        = SHA-256(account_name)
K_password  = PBKDF2-HMAC-SHA256(password, Salt, 650,000 iterations)
K_secretKey = HKDF-SHA256(Secret Key, "testrim-2skd-v1:" + account_name)
MUK         = K_password XOR K_secretKey
AuthKey     = HKDF-SHA256(MUK, "testrim-auth-key-v1")

The MUK encrypts every test artifact with AES-256-GCM. The AuthKey is sent to us (hashed at rest) so we can mint a login session. The MUK itself never leaves your browser.

What we cannot decrypt

AssetWhere plaintext lives
Master passwordYour head
Secret Key fileYour local disk
Master Unlock Key (MUK)Your browser RAM and your runner RAM, briefly
storageState (cookies, localStorage)Your runner RAM, for one test
Test source codeYour runner RAM, for one test
Run-time screenshots / tracesYour runner RAM (we store only metadata: pass/fail, duration, ciphertext fingerprint)

What this defends against

Compliance roadmap

SOC 2 Type 22027 Q1 · in progress
HIPAA BAA2026 Q4 · in progress
FedRAMP Moderate2027 Q4 · roadmap
FedRAMP High2028 Q3 · roadmap
DoD IL52029 Q2 · roadmap
GDPR / Schrems II2026 Q3 · architectural — customer-held keys satisfy

For security teams

We publish our threat model and architecture under /docs inside the product's git repository. Auditors and buyer security teams should start there.

Responsible disclosure

If you find a security issue in Testrim, please email [email protected] with details. We commit to a 5-business-day initial response and will work with you on a coordinated-disclosure timeline.

We do not currently run a paid bug bounty. We will publicly acknowledge researchers who report valid issues.