Ouvre un « générateur en ligne », génère, puis le panneau Réseau. Si le mot tout neuf est dans le corps ou la query, le clair a quitté l’appareil. Pas besoin de croire une marque — le navigateur étale le trafic.
Calculer dans le navigateur n’est pas un slogan « décentralisé ». Ça réduit la fenêtre de clair : un transit de moins, un journal serveur de moins, une chance de moins qu’un dump mémoire se lise. Ci-dessous : modèle de menace, étapes vérifiables, limites. MyPassGen est bâti ainsi ; ce texte ne répond qu’à : pourquoi le calcul sensible ne doit pas, par défaut, vivre sur le serveur.
Ce que le calcul serveur agrandit
La fenêtre de clair, c’est là où le clair (ou une clé qui le rend tout de suite) existe vraiment. Si le serveur calcule, ce n’est rarement que le clic Envoyer, plutôt une chaîne difficile à effacer après coup :
- La session TLS vers l’origine — le processus voit la requête déjà déchiffrée, pas du chiffré.
- Échantillons dans le reverse proxy, le WAF, l’APM, les crashs ; un 500 peut coller le formulaire dans le rapport.
- Journaux applicatifs, requêtes lentes, access logs avec query ;
?key=finit presque toujours dans l’access log. - Fichiers temporaires, object storage, sauvegardes, second site.
- Le temps où l’exploitation, le support ou un intrus tient une de ces copies — « on efface après » ne change pas que la fenêtre a existé.
Le droit et les sous-traitants rendent « on ne regarde pas » peu auditable. Tu peux vérifier le protocole et le trafic, pas le règlement interne d’une salle machines.
Pour le générateur, c’est net : tu veux un secret qui n’existe encore nulle part. S’il naît dans une RAM étrangère, la première copie n’est pas chez toi. Collé plus tard dans la prod, la CI ou le gestionnaire, il y a déjà un nœud invisible.
Pour l’audit : envoyer un mot du quotidien à un « test de force » distant, c’est livrer le réemploi le plus sensible. Les fuites publiques peuvent se faire en k-anonymat ; MyPassGen choisit plus dur — le mot testé reste ici, entropie et liste top en local. À vérifier : pas « ils disent ne pas stocker », mais la requête ne contient pas ce mot.
Pour le coffre, « envoyer → chiffrer au serveur → retélécharger » veut dire que phrase et contenu ont existé entiers en mémoire serveur. Le flux local ne lui donne rien de lisible : il n’a même pas à savoir si c’est une photo ou une image disque.
HTTPS n’est pas un calcul local
TLS protège l’écoute sur le chemin, pas le correspondant. S’il calcule, il doit lire le clair. Local veut dire : ce correspondant n’est pas censé voir ce matériau.
Ce que « local » veut dire
« Local » devient vite slogan. Sinon, « visible seulement par vous » dans un cloud serait aussi du chiffrement local.
Un processus sur l’appareil, pas « dans mon compte cloud »
Chez MyPassGen, local = le calcul tourne dans l’onglet. Aléa via crypto.getRandomValues, symétrique via Web Crypto. Le matériau de clé vit peu dans des CryptoKey et ne part pas comme champ d’analyse. Copier, exporter, télécharger. Onglet fermé, le clair en RAM suit la vie du navigateur, pas une seconde copie dehors.
Ce n’est pas « le fichier n’est visible que par moi dans le cloud ». Le serveur cloud lit souvent l’objet en clair, sauf si tu le fermes avant. La question : le clair a-t-il existé hors de l’appareil sous une forme utilisable ?
Algorithme et plafond fichier sont vérifiables
Seulement AES-256-GCM (authentifié : chiffré altéré, déchiffrement refusé). Le coffre streame, 5 Go max, sortie .lock (préféré) ou .enc, pour ne pas charger une vidéo entière en RAM. C’est dans la spec, pas un adjectif. Un algorithme affiché mais pas livré : la fiche produit prime, pas l’imagination.
Local décrit le lieu ; les outils s’ouvrent tout de suite
Lieu du calcul et « faut-il un compte ? » ont longtemps été deux phrases. Aujourd’hui générateur, audit, confidentialité, création de lien et coffre s’ouvrent sans compte. Local ne dit que où ça calcule — pas « le clair ne peut jamais quitter l’appareil ». Le lien éphémère confie du chiffré au serveur un moment.
| Capacité | Prêt à l’emploi | Matériau sensible envoyé par défaut ? |
|---|---|---|
| Aléatoire / phrase | oui | non ; naît dans le navigateur |
| Password Audit | oui | mot testé ici ; force + liste locales |
| Clean Link / masquage | oui | URL et texte ici ; pas dans l’analytics |
| Créer un lien éphémère | oui | on envoie un blob chiffré, pas le texte |
| Lire un lien éphémère | ouvert au destinataire | clé dans le fragment #, pas dans la requête HTTP |
| Coffre fichiers | oui | fichier et phrase ici ; AES-256-GCM en flux |
Le lien éphémère est le seul chemin avec dépôt serveur — mais le dépôt est du chiffré. La clé est après # : le fragment ne voyage pas, l’access log n’a souvent que le chemin. La page de lecture est ouverte, sinon l’autre devrait s’inscrire. Après la première lecture, le chiffré disparaît. Zéro connaissance serveur ≠ « on ne stocke rien », plutôt « stocké et illisible ».
Vérifier avec le panneau Réseau si quelque chose part
Un slogan ne se prouve pas tout seul. Étapes sans confiance, avec les outils du navigateur. Le but n’est pas « aucun canal latéral au monde », c’est « un clic ne POSTE pas le clair ».
Commencer par le générateur. Aléatoire et phrase doivent naître sans connexion. On vérifie « la génération part-elle ? », pas les assets statiques.
Ouvrir Réseau, cocher Preserve log. Chrome, Edge, Firefox. Filtre Fetch/XHR d’abord, puis tout. Preserve log garde les lignes après un saut. sendBeacon et le service worker y apparaissent aussi.
Générer un mot facile à reconnaître. Un peu plus long, le copier. Dans le panneau, chercher la chaîne ou un morceau qui n’apparaît pas par hasard dans le JS.
URL, query, payload. Aucun hit : au moins pour cette génération, le clair n’est pas parti en HTTP. Une chaîne étrangère dans un script ne compte pas — seulement celle que tu viens de créer.
Même méthode sur les autres outils. Audit, confidentialité, coffre : mot de test ou petit fichier. L’audit ne doit pas envoyer le mot, le nettoyage ne doit pas POSTER l’original, le coffre ne doit pas monter le clair en multipart.
Sur le lien éphémère, regarder chiffré et fragment. Vers le serveur : du chiffré, pas ta saisie. Dans le lien complet, la clé est après # ; sans fragment, elle ne doit pas être dans le chemin. Lecture sans compte.
Ce que cette étape prouve — et ce qu’elle ne prouve pas
Le panneau dit : le clair était-il dans HTTP ? Il ne voit ni la lecture mémoire par un script same-origin, ni une extension hostile, ni un XSS. Pour démasquer beaucoup d’« outils en ligne », ça suffit ; ce n’est pas une preuve formelle.
Ce qui doit rester local, quelle exception dire clairement
Doit rester ici ce qu’on ne reprend pas une fois parti : mot tout neuf, ancien à tester, texte avant masquage, clair d’un fichier, clés symétriques. Dans un journal ailleurs, fermer la page n’efface pas l’autre copie.
Peut quitter l’appareil seulement ce qui est inutile au serveur en crypto : le blob du lien éphémère, les assets sans secret. Pas de compte ni de coffre sur le site. « La page a chargé un script » ≠ « l’outil a envoyé le clair ».
Le coffre pose un .lock / .enc sur le disque. Ensuite le chiffré voyage par cloud, clé USB ou mail. Le cloud ne voit ni phrase ni original — si la phrase n’est pas en clair dans le même envoi. Le local change « l’admin cloud ouvre tes photos par défaut », pas la garde physique.
La confidentialité (Clean Link et masquage) garde URL et texte dans le navigateur : UTM et pubs hors, téléphone et pièce masqués, résultat à relire. Original non envoyé, pas comme contenu d’analytics. Si le nettoyage POSTE tout le ticket et renvoie « déjà masqué », la fenêtre s’est ouverte côté serveur.
Limites et malentendus
Local-d’abord réduit la surface serveur et transit, pas un PC déjà sous troyens. Écrire la limite dans l’attente vaut mieux qu’AES dans le pied de page.
Page injectée : l’algorithme n’aide pas
Un XSS ou un script détourné lit le champ. Web Crypto protège « un travail de clé honnête dans une page honnête », pas « du code hostile est déjà same-origin ». Ça tient à same-origin, CSP et l’intégrité du front. « AES-256-GCM » ne veut pas dire « XSS inopérant ».
Extensions, proxy d’entreprise, regard par-dessus l’épaule
Extensions et rupture TLS d’entreprise voient encore l’onglet. Le panneau derrière un certificat racine injecté montre le monde après le proxy. Perte, partage d’écran, épaule — le calcul local ne s’en occupe pas. C’est de la sécurité de poste, à part de « le serveur ne doit pas tenir le clair ».
« Pas d’envoi » n’est pas « pas de réseau »
La page et les scripts partent encore. On vérifie si des champs sensibles sont dans les requêtes, on ne débranche pas le câble. MyPassGen n’envoie pas non plus mot testé, original ou fichier comme événement d’analyse — l’événement ne doit pas porter le secret lui-même.
Ne pas surjouer les capacités
AES-256-GCM, pas de RSA commutable, pas de suite nationale non livrée. Ne pas écrire que la lecture d’un lien exige un compte. Ne pas dire que le serveur voit le clair ou la clé. Honnête : calcul sensible dans le navigateur ; clair, clés, fichiers non envoyés par défaut ; le serveur du lien ne garde que du chiffré.
Par où vérifier soi-même
Pour savoir si « cette génération » est partie, le générateur est l’entrée la moins chère. Aléatoire et phrase ici, copie et export aussi. Réseau ouvert, chercher la chaîne toute neuve. Peu coûteux, et l’intuition de la fenêtre de clair s’installe.
Les habitudes courantes ont des trous précis. Mail et chat en clair laissent la clé dans l’historique, l’archive et la sauvegarde ; le cloud est lisible côté serveur sauf chiffrement préalable ; une clé en query entre presque sûrement dans l’access log. Ce n’est pas « peu pratique », la fenêtre est dans le dessin.
Un fichier qui ne doit pas voyager nu : coffre, AES-256-GCM en flux, 5 Go max, .lock ou .enc. Recapturer l’opération : le fichier original ne doit pas partir en POST. Texte court, une fois, clé hors des logs : lien éphémère, fermer ici, clé après #, serveur = chiffré, lecture sans compte. Ce texte n’exige qu’une réponse : après le clic, le clair est-il encore dans ton onglet ?
La phrase MyPassGen : chiffrement local, la sécurité vous suit. Suivre, c’est : le calcul tourne dans l’onglet que tu regardes, et tu peux le vérifier avec le panneau du navigateur.