MySelf·Lab demo · noindex

🔐 Security architecture

Deliberate transparency. This page documents our defences and their limits. No security through obscurity: a red team deserves to know what it is attacking. All code is licensed AGPL-3.0. For the test framework, see the rules of engagement; for demonstrations, the Attack Simulator.

1. Authentication — SelfRecover no email

2. Data encryption — two models, by sensitivity

a) Server blind-key (profile: bio, location, link) — AES-256-GCM, key derived from a server secret held outside the database and outside the webroot. A SQL dump yields nothing but blobs.

b) Client-side end-to-end (personal memo) — encrypted in the browser (WebCrypto). PBKDF2 (600k) → HKDF per label → a random vault_key encrypts the memo, itself wrapped in two envelopes (password and recovery passphrase). The server holds no key.

✅ What this protects

  • Blind-key: stolen disk, SQL dump, injection
  • E2E: even admin or root access on the server leaves the memo unreadable

⛔ What it does not (V1, acknowledged)

  • Blind-key: an admin, or an RCE that reads the key, can decrypt profiles and private messages
  • E2E: a persistently compromised server serving tampered JavaScript that captures the password at unlock — the "served code" problem

3. The shared foundation — SelfRecover ⇄ SelfDataGuard

4. Application hardening

5. Moderation — SelfModerate anti-manipulation

6. Threat model — stated honestly

✅ Mitigated

  • Database exfiltration (dump, stolen disk) — blobs only
  • Password brute-forcing (rate limiting)
  • Moderation manipulation (Sybil, pack-voting)
  • CSRF, clickjacking, passive session theft
  • Memo theft, even with root access (E2E at rest)

⚠️ Known limits (V1)

  • Profiles and private messages readable by an admin or an RCE (blind-key)
  • Persistently compromised server → tampering with the served code
  • Metadata is not encrypted (who talks to whom, and when)

7. Roadmap (beyond V1)

E2E extended to private messages and profiles · Argon2id replacing PBKDF2 · an external integrity supervisor (detecting tampered served code and abnormal behaviour, with reversible automatic containment) · distributed quorum (Shamir) for critical keys.