← Back to Consent

Data Safety & Encryption

technical explainer · v1.0
Plain-English technical explainer. Reading this is optional. The Privacy & Data Policy is the binding legal document. This page explains how the encryption works for clients who want to understand.

The short version

Every client's data is encrypted with a key derived uniquely from their account. Even if our server's disk were copied, the data would be unreadable without each client's specific key derivation. We never store passwords (only Argon2id hashes). The master encryption salt is stored in AWS KMS, separate from the data.

In practical terms: Your data is unreadable on disk without active server runtime + AWS KMS access. No human at our company can read your data by browsing files.

How encryption works in the Stack

Layer 1: Per-client key derivation
Every client has a unique UUID assigned at account creation. We derive their encryption key using HKDF-SHA256 with: Result: each client has a 256-bit AES key that exists only in server memory during their session.
Layer 2: File-level encryption
Every file containing client data is encrypted with AES-256-GCM (authenticated encryption). This means: Files use a versioned magic header (STV1) so we can rotate the encryption scheme in the future without breaking existing data.
Layer 3: Backup encryption
Daily backups are uploaded to AWS S3 with SSE-KMS (server-side encryption with AWS KMS keys). Even if the S3 bucket were compromised, the contents would be unreadable without KMS access. Backups are retained for 90 days then automatically destroyed.
Layer 4: Password hashing
We never store your password. When you set a password, we run it through Argon2id (the modern standard recommended by OWASP) and store only the resulting hash. When you log in, we hash what you type and compare hashes. The plaintext password never touches our database.
Layer 5: Authentication

What happens when you delete your account

When you request deletion (or withdraw consent), the following happens:

  1. Your client registry record is marked as deleted
  2. Your encrypted data files are removed from active storage
  3. Your sessions are immediately invalidated
  4. Backups containing your data are retained for 90 days for legal/regulatory protection, then permanently destroyed (S3 lifecycle rule)
  5. Audit logs (signin events, consent records) are retained for 7 years for legal trail purposes

What we can and cannot see

We can see:

We cannot see (without active runtime + KMS access):

What goes to third-party AI providers

When your data is processed by AI (Claude for synthesis, OpenAI for embeddings), the relevant content is sent through their API. Anthropic and OpenAI both commit publicly that customer API data is NOT used to train their models. The data sent includes only what's needed to generate your specific output.

Example: when you generate a Resilience Profile Report, your structured genetics + bloodwork + audit + notes are sent to Claude as the user message. Your other data is not sent.

Known limitations (full transparency)

No system is perfect. Here are honest limitations:

Security incident response

If a security incident affecting client data is detected, we commit to:

Contact

Security questions or concerns: support@theresilienceadvantage.com