my-self.fr Bi-Self / SelfRecover — démo live
⌛ —:—

Démo SelfRecover

Tu cliques à gauche, le serveur s'exécute à droite. Pas de script. Pas de mise en scène. Ce sont les vrais logs de ton interaction.

1
Inscription
Choisis-le toi-même. Il ne quittera pas cette page : ton navigateur en dérive une empreinte et n'envoie qu'elle.
Ce qu'il se passe ici : ton navigateur engendre le sel de ton compte et calcule HMAC-SHA256(clé = ton mot, message = nom d'hôte |v2 + sel). Il n'envoie que l'empreinte : le mot lui-même ne part jamais. Le serveur, lui, engendre un password et une passphrase diceware, puis hache les trois en Argon2id. Regarde la console à droite, chaque étape est tracée — et vois ce qui ne s'y trouve pas.
2
Login normal
Le login est ce qu'il y a de plus banal. argon2id_verify côté serveur, et si ça match, on crée une session applicative (cookie sr_app_session). Aucune magie. Ce qui compte c'est la suite : que se passe-t-il si tu perds ton password ?
3
Récupération niveau 1 — avec ta passphrase
La passphrase est ton « sceau de secours » : 4 mots mémorisables, connus de toi seul, qui re-débloquent ton compte sans aucun email. argon2id_verify contre le hash stocké, génération d'un nouveau password, invalidation de toutes les sessions précédentes. Aucun tiers impliqué, aucun SMTP, aucun délai.
4
Récupération niveau 2 — avec ton mot de récupération
Ce qu'il se passe ici : ton navigateur calcule HMAC-SHA256(clé = ton mot, message = nom d'hôte |v2 + sel) localement. Le nom d'hôte est celui qu'il lit dans sa barre d'adresse, jamais un que le serveur lui donnerait — c'est là tout l'anti-hameçonnage. Seule la clé dérivée part ; le mot ne traverse jamais le réseau. Le serveur compare via Argon2id, accorde ou refuse. Aucun email, aucun SMTP, aucun tiers.
4b
Récupération niveau 2 — par code de secours, sans identifiant

Même niveau, autre porte. Ici on ne te demande aucun identifiant : le code retrouve le compte à lui seul. Regarde le formulaire — il n'y a pas de champ où saisir un nom d'utilisateur, donc pas d'endroit où tester si un compte existe.

Ce qu'il se passe ici : le serveur calcule HMAC-SHA256(code, sel du service) et s'en sert comme index — une seule requête retrouve le compte, sans identifiant. Le code est ensuite vérifié par Argon2id, et le mot de récupération par le même HMAC client qu'à l'étape 4. Les deux sont exigés : un code trouvé sur un papier ne suffit pas, le mot seul non plus.

Essaie de te tromper volontairement sur l'un des deux : le message d'erreur est identique dans les deux cas, et le temps de réponse aussi. Dire lequel a échoué rendrait chaque facteur attaquable séparément. Essaie ensuite de rejouer un code déjà utilisé — il est consommé, et un code inconnu reçoit exactement la même réponse.
5
Simulation anti-phishing

Simulons qu'un phisher héberge une copie pixel-perfect de SelfRecover sur phishing-my-self-fr.local. Tu y entres ton mot de récupération. Que se passe-t-il ?

Ce qu'il se passe ici : ton navigateur dérive deux fois le même mot — une fois sous le nom d'hôte qu'il lit dans sa barre d'adresse, une fois sous un nom d'hôte imité. Deux clés sans aucun rapport. Seule la première passera argon2id_verify. Une page qui copie celle-ci est servie sous son propre nom d'hôte : la clé qu'elle récolte est inutilisable ici, et tu n'as eu aucune adresse à reconnaître.
État actuel
Charge…

Prochaines étapes (sessions 5-6) : démo SelfModerate (simulation d'une mini-communauté, votes, détection pack-voting, sanctions). Et démo binôme (étape 7) : comment l'identité SelfRecover rend la modération SelfModerate résistante aux attaques Sybil.

📄 Code source (redacted)
Sélectionne un fichier pour voir son code source.
Open book — secrets automatiquement censurés (sel de déploiement, tokens, chemins absolus).

Credentials de cette session vide

Inscris-toi pour générer tes credentials (étape 1).

↻ Nouvelle session