Update β the "coming soon" SelfDataGuard mentioned at the bottom of this thread is now released as v0.1.0-beta.
Per-user envelope encryption that survives DB exfiltration. Same memorized secret unlocks both modules, mathematically isolated via HMAC contexts.
Live demo: https://dataguard.my-self.fr
Release: https://github.com/Pierroons/my-self/releases/tag/selfdataguard-v0.1.0-beta
#SelfDataGuard #InfoSec #Cryptography
pierroons@infosec.exchange
Posts
-
π SelfRecover β open source protocol for password recovery without email I designed and released SelfRecover under AGPL-3.0-or-later in April 2026, two weeks before the French ID agency (ANTS) breach exposed ~12M citizen accounts via an IDOR. -
π SelfDataGuard v0.1.0-beta β open-source data-at-rest protection that survives DB exfiltration.
SelfDataGuard v0.1.0-beta β open-source data-at-rest protection that survives DB exfiltration.
Released today as the second pillar of MySelf, paired with SelfRecover. The same May 2026 ANTS leak (~12M accounts in plaintext) made the case for both: SelfRecover protects authentication, SelfDataGuard
protects what's stored.
How it works (one line):
Per-user data master key, never stored in plain. Wrapped twice β once by Argon2id-derived key from password, once by HMAC-SHA256-derived key from a memorized secret (shared with SelfRecover via mathematical
context separation). Personal fields encrypted field-by-field with AES-256-GCM. Dump the DB β encrypted soup.
Three operational modes:
βΈ Lite (default): server unwraps the master key in memory only during user sessions.
βΈ Hybrid (e-commerce): operational fields admin-readable, sensitive fields zero-knowledge.
βΈ Full (high-assurance): true zero-knowledge, all crypto in browser via WebCrypto.
Honest threat model β explicitly out of scope: compromised user endpoint (keyloggers, info-stealers), browser exploits, theoretical cryptanalysis of SHA-256 / AES-256-GCM / Argon2id, weak-password
bruteforce. The lib enforces password policy at deployment time.
Run the demo locally in 10 seconds:
git clone https://github.com/Pierroons/my-self
cd my-self/self-security/selfdataguard/demo && ./run.sh
(needs PHP 8.1+ with sodium + AES-NI capable CPU)
π§ͺ 155 sanity tests, 0 failures. Includes a "DB dump = encrypted soup" end-to-end assertion that greps the SQLite file post-write to verify no plaintext leaks.
GPG-signed tag selfdataguard-v0.1.0-beta, release dated 2026-05-08.
Live demo (no signup, ephemeral data, public reset every night at 04:00 Europe/Paris):
https://dataguard.my-self.fr
Whitepaper EN: https://github.com/Pierroons/my-self/blob/main/self-security/selfdataguard/docs/whitepaper-en.md
Whitepaper FR: https://github.com/Pierroons/my-self/blob/main/self-security/selfdataguard/docs/whitepaper-fr.md
Repo: https://github.com/Pierroons/my-self/tree/main/self-security/selfdataguard
Release: https://github.com/Pierroons/my-self/releases/tag/selfdataguard-v0.1.0-beta
Companion to SelfRecover (https://bi-self.my-self.fr/selfrecover/). Same memorized secret unlocks both, mathematically isolated via HMAC contexts (/recover vs /dataguard). One word, two purposes.
Feedback especially welcome from people who have integrated Bitwarden / 1Password / ProtonMail-style envelope encryption in app-side multi-tenant setups. AGPL-3.0-or-later, no NDA, no commercial agenda β
community cryptographic review before v1.0.0.
#opensource #infosec #AGPL #privacy #selfhosted #cryptography #encryption #zerotrust #dataprotection -
π SelfRecover β open source protocol for password recovery without email I designed and released SelfRecover under AGPL-3.0-or-later in April 2026, two weeks before the French ID agency (ANTS) breach exposed ~12M citizen accounts via an IDOR.
SelfRecover β open source protocol for password recovery without email
I designed and released SelfRecover under AGPL-3.0-or-later in April 2026, two weeks before the French ID agency (ANTS) breach exposed ~12M citizen accounts via an IDOR. The case for email-less recovery
suddenly got very tangible.
How it works (one line):
The browser computes HMAC-SHA256(secret, current_domain). The server only stores Argon2id hashes of derived values. The raw secret never leaves the user's browser, and a captured secret on site A is useless on
site B (anti-phishing by construction).
Two adoption modes:
βΈ Full: zero email at all. Diceware passphrase (EFF wordlist 7,776 words) + HMAC-per-domain.
βΈ Lite: keeps existing SMTP reset link, but adds a user-memorized word HMAC-derived client-side. So an intercepted reset email is no longer enough to compromise an account. Compatible with legacy stacks.
Honest threat model β explicitly out of scope: client compromise (keyloggers, info-stealers), browser exploits, physical coercion, theoretical cryptanalysis of SHA-256 / Argon2id. The protocol assumes a
trusted endpoint. For higher-assurance contexts, Tails / Qubes is the right answer.
Self-host in 30 seconds:
docker run -p 8080:8080 ghcr.io/pierroons/selfrecover:v0.1.1
(Image multi-arch amd64 + arm64, AGPL labels embedded)
GPG-signed tag v0.1.1, release dated 2026-05-05.
Live demos (no signup, ephemeral data):
- Full mode: https://bi-self.my-self.fr/selfrecover/
- Lite mode: https://bi-self.my-self.fr/selfrecover/lite.html
- Side-by-side comparison (8 adversary classes Γ 3 models): https://bi-self.my-self.fr/selfrecover/comparison.html
Whitepaper EN: https://github.com/Pierroons/my-self/blob/main/bi-self/selfrecover/docs/whitepaper-en.md
Whitepaper FR: https://github.com/Pierroons/my-self/blob/main/bi-self/selfrecover/docs/whitepaper-fr.md
Repo: https://github.com/Pierroons/my-self/tree/main/bi-self/selfrecover
The protocol is the first brick of a broader self-hosted ecosystem (MySelf β https://my-self.fr) that includes SelfModerate (community governance), SelfJustice / SelfAct (legal access), SelfFarm-Lite
(agricultural management), and SelfDataGuard (data-at-rest protection β coming soon).
Feedback especially welcome from people who have integrated similar split-knowledge schemes, and from anyone running auth flows in self-hosted setups. AGPL-3.0-or-later, no NDA, no commercial agenda β just an
open protocol that I hope is useful.
#opensource #infosec #AGPL #privacy #selfhosted #cryptography #authentication #zerotrust