ZIGMOON DESIGN

ART designer

MYRAGE : Partager des Secrets de Manière Éphémère et Sécurisée

Nous avons tous déjà eu besoin de partager un mot de passe, une clé API ou une information sensible avec quelqu’un. Les emails restent dans nos boîtes pendant des années, les messages Slack ou WhatsApp s’accumulent dans les historiques. J’ai créé MYRAGE pour résoudre ce problème simple : partager une information qui disparaît après lecture.

Un Projet Open Source Simple

MYRAGE est une application web statique qui crée des liens éphémères protégés par mot de passe. Le principe est simple : vous saisissez votre secret, vous définissez un mot de passe, et vous obtenez un lien à partager. Une fois consulté (ou après expiration), le secret disparaît.

Code source disponible : github.com/zigmoon/MYRAGE

Le projet est entièrement open source. Vous pouvez examiner le code, l’auditer, ou même l’héberger vous-même si vous préférez avoir le contrôle total.


Comment ça Marche ?

Chiffrement Côté Client

Tout le chiffrement se passe dans votre navigateur grâce à l’API Web Crypto native. Concrètement :

  1. Vous saisissez votre secret et un mot de passe
  2. Le navigateur chiffre le contenu avec AES-256-GCM
  3. Les données chiffrées sont encodées dans l’URL (après le #)
  4. Vous partagez ce lien

Quand le destinataire ouvre le lien :

  • Il entre le mot de passe
  • Le navigateur déchiffre localement
  • Si c’est en mode “vue unique”, le lien devient inutilisable

Pourquoi c’est Sûr ?

Le serveur ne voit rien : MYRAGE est un simple fichier HTML statique. Il n’y a pas de base de données, pas de serveur backend. Le serveur web ne fait que distribuer le fichier HTML – il ne voit jamais votre secret ni votre mot de passe.

Cryptographie standard : J’utilise AES-256-GCM (chiffrement authentifié) et PBKDF2 avec 100 000 itérations pour dériver la clé depuis votre mot de passe. Ce sont des algorithmes reconnus et recommandés par l’OWASP.

Données dans l’URL : Le secret chiffré est stocké dans le fragment d’URL (après le #). Cette partie n’est jamais envoyée au serveur – elle reste dans le navigateur.


Cas d’Usage Pratiques

Partager un mot de passe temporaire
Au lieu d’envoyer un mot de passe par email où il restera indéfiniment, créez un lien MYRAGE qui s’autodétruira après lecture.

Transmettre des clés API
Besoin de partager une clé API avec un collègue ? Un lien éphémère évite qu’elle ne traîne dans les historiques de chat.

Codes d’accès ponctuels
Pour des situations où vous avez besoin de partager un code temporaire qui ne doit servir qu’une fois.

Messages confidentiels
Parfois on a juste besoin d’envoyer quelque chose de sensible qui ne doit pas persister.


Deux Modes d’Expiration

Vue unique : Le lien se détruit automatiquement après la première consultation réussie. Le fragment d’URL est supprimé de l’historique du navigateur.

Expiration temporelle : Vous définissez une durée de vie (10 minutes par défaut). Passé ce délai, même avec le bon mot de passe, le lien refuse de déchiffrer.


Ce que MYRAGE N’est Pas

Soyons clairs sur les limitations :

Ce n’est pas un gestionnaire de mots de passe – utilisez Bitwarden ou 1Password pour ça Ce n’est pas adapté pour du stockage long terme – c’est fait pour être éphémère Ce n’est pas magique – si quelqu’un regarde par-dessus votre épaule, il verra le secret L’historique du navigateur peut conserver l’URL – l’utilisateur doit le vider manuellement si nécessaire


Héberger Votre Propre Instance

Un des avantages d’une application statique, c’est qu’elle est triviale à déployer :

bash

git clone https://github.com/zigmoon/MYRAGE.git
cd MYRAGE
# Ouvrez index.html dans votre navigateur
# Ou uploadez sur n'importe quel hébergement web

Vous pouvez l’héberger sur GitHub Pages, Netlify, Vercel, ou même votre propre serveur web. Pas de base de données à configurer, pas de dépendances à installer.


Pourquoi Open Source ?

J’ai rendu MYRAGE open source pour une raison simple : la confiance.

Quand il s’agit de sécurité, les promesses marketing ne suffisent pas. En publiant le code, je permets à quiconque de vérifier que le chiffrement fonctionne comme décrit, que le mot de passe n’est jamais envoyé à un serveur, et qu’il n’y a pas de porte dérobée cachée.

Si vous êtes développeur ou que vous connaissez quelqu’un qui s’y connaît en sécurité, je vous encourage à jeter un œil au code et à me faire part de vos retours.


Vérifier Par Vous-Même

Vous n’avez pas besoin de me croire sur parole. Voici comment vérifier :

Test 1 – Aucune donnée envoyée au serveur :

  1. Ouvrez les DevTools (F12) → onglet Network
  2. Créez un lien avec un message de test
  3. Regardez les requêtes : votre message ne devrait apparaître nulle part

Test 2 – Mot de passe jamais transmis :

  1. Créez un lien avec un mot de passe unique
  2. Vérifiez les requêtes : le mot de passe ne doit jamais y apparaître

Test 3 – Examiner le code :

  1. Allez sur GitHub
  2. Lisez js/myrage.js
  3. Cherchez l’utilisation de crypto.subtle (Web Crypto API)

Détails Techniques

Pour les curieux, voici ce qui se passe sous le capot :

Chiffrement : AES-256-GCM via Web Crypto API
Dérivation de clé : PBKDF2 avec 100 000 itérations, SHA-256
Salt & IV : Générés aléatoirement pour chaque secret (16 octets pour le salt, 12 pour l’IV)
Format : Les données chiffrées sont concaténées avec le salt et l’IV, puis encodées en Base64 dans l’URL

Exemple d’URL générée :

https://app.zigmoon.com/#eyJzYWx0IjoiLi4uIiwiaXYiOiIuLi4iLCJjaXBoZXJ0ZXh0IjoiLi4uIn0=

Le fragment après # contient tout : salt, IV, et ciphertext. Sans le mot de passe, impossible de déchiffrer.


Améliorations Futures

Le projet est encore jeune et il y a plein d’améliorations possibles :

  • Indicateur de force du mot de passe
  • Support hors-ligne (PWA)
  • Génération de QR code pour le lien
  • Support multilingue
  • Tests automatisés
  • Audit de sécurité externe

Les contributions sont les bienvenues !


Conclusion

MYRAGE est un projet personnel que j’ai créé pour répondre à un besoin simple : partager ponctuellement des informations sensibles sans qu’elles traînent ensuite dans des historiques.

L’approche est volontairement minimaliste. Pas de fonctionnalités tape-à-l’œil, pas de complexité inutile. Juste du chiffrement solide, une interface simple, et un code ouvert que vous pouvez auditer.

Si vous avez le même besoin, n’hésitez pas à essayer MYRAGE. Et si vous trouvez un problème de sécurité ou une amélioration possible, les issues GitHub sont ouvertes.


🔗 Essayer : app.zigmoon.com
💻 Code source : github.com/zigmoon/MYRAGE
✉️ Contact : contact@zigmoon.com

Leave a Reply

Your email address will not be published. Required fields are marked *