MySelf·Lab démo · noindex

🔐 Architecture de sécurité

Transparence assumée. Cette page documente nos défenses et leurs limites. Pas de sécurité par l'obscurité : une red team mérite de savoir ce qu'elle attaque. Tout le code est sous licence AGPL-3.0. Pour le cadre du test, voir les règles d'engagement ; pour les démonstrations, l'Attack Simulator.

1. Authentification — SelfRecover sans email

2. Chiffrement des données — deux modèles selon la sensibilité

a) Blind-key serveur (profil : bio, localisation, lien) — AES-256-GCM, clé dérivée d'un secret serveur stocké hors base et hors webroot. Un dump SQL ne révèle que des blobs.

b) Bout-en-bout côté client (mémo perso) — chiffré dans le navigateur (WebCrypto). PBKDF2 (600k) → HKDF par étiquette → une vault_key aléatoire chiffre le mémo, wrappée dans deux enveloppes (mot de passe + passphrase de secours). Le serveur ne détient aucune clé.

✅ Ce que ça protège

  • Blind-key : vol de disque, dump SQL, injection
  • E2E : même un accès admin ou root sur le serveur → le mémo reste illisible

⛔ Ce que ça ne protège pas (V1, assumé)

  • Blind-key : un admin / un RCE qui lit la clé peut déchiffrer le profil & les DM
  • E2E : un serveur compromis persistant servant un JS piégé captant le mot de passe au déverrouillage (faille du « code servi »)

3. Le socle commun — mapping SelfRecover ⇄ SelfDataGuard

4. Durcissement applicatif

5. Modération — SelfModerate anti-manipulation

6. Modèle de menace — honnête

✅ Neutralisé

  • Exfiltration de la base (dump, disque volé) — blobs
  • Bruteforce de mot de passe (rate-limit)
  • Manipulation de la modération (Sybil, pack-voting)
  • CSRF, clickjacking, vol de session passif
  • Vol du mémo, même avec un accès root (E2E au repos)

⚠️ Limites connues (V1)

  • Profil & DM lisibles par un admin / un RCE (blind-key)
  • Serveur compromis persistant → altération du code servi (« code servi »)
  • Métadonnées non chiffrées (qui parle à qui, quand)

7. Feuille de route (hors V1)

E2E étendu aux messages privés et au profil · Argon2id en remplacement de PBKDF2 · superviseur d'intégrité externe (détection du code servi altéré + comportement anormal, confinement automatique réversible) · quorum distribué (Shamir) pour les clés critiques.