miniHabits
BUILD LOG · OUTLINE · 27 FEB 2026

Synchronisation anonyme sans compte : comment marche la clé d'appareil

Synchroniser entre appareils sans e-mail, sans mot de passe et sans fiche utilisateur. Voici la conception et ses limites.

build log 381 words of 1 900 planned

L’app n’a pas d’écran d’inscription, et elle synchronise quand même entre un iPhone et un iPad. Les gens demandent comment, en général avec un léger soupçon qu’elle fait quelque chose de pire qu’un compte plutôt que de mieux, ce qui est légitime.

La conception est simple. Le premier appareil génère une clé aléatoire localement. Cette clé est le seul identifiant que connaît la couche de synchronisation. Les données sont chiffrées sur l’appareil avant de partir, avec une clé dérivée du même secret, et le serveur stocke des blocs opaques face à un identifiant qu’il ne peut relier à personne. Pour ajouter un second appareil, vous transférez la clé : un QR code à l’écran et un appareil photo en face. Pas d’e-mail, pas de mot de passe, pas de table d’utilisateurs, parce qu’il n’y aurait rien à y mettre.

Les limites sont réelles et je préfère les énoncer plutôt que de laisser les gens les découvrir. Perdez tous vos appareils et les données sont perdues, parce que je ne peux pas réinitialiser un mot de passe qui n’existe pas. Le serveur voit des métadonnées de temps et de taille même s’il ne peut pas lire le contenu. Et le transfert par QR doit se faire avec les deux appareils physiquement présents, ce que certains trouvent peu pratique et qui est justement l’objet.

Cet article couvre la génération de la clé, l’enveloppe de chiffrement, la résolution de conflits, les options de récupération qui existent, et celles que j’ai décidé de ne pas construire.

Plan

Statut : plan. L’introduction ci-dessus est de la copie finie. Tout ce qui suit est le plan des sections de la version complète, visant environ 1 900 mots.

  1. Pourquoi pas de comptes. La raison produit, et la raison maintenance.
  2. La génération de la clé. Ce qui est généré, où, et ce qui en dérive.
  3. L’enveloppe de chiffrement. Ce que le serveur stocke, et ce qu’il peut déduire malgré tout.
  4. Ajouter un second appareil. Le transfert par QR, et pourquoi il exige une présence physique.
  5. La résolution de conflits. Deux appareils, un jour, deux valeurs différentes.
  6. La récupération. La seule option qui existe, et les trois que j’ai rejetées.
  7. Ce que le serveur voit quand même. Horodatage, taille et IP, dits franchement.
Try miniHabits free — 10 habits, no account.
Get it