Apprendre · 6 min de lecture
Pourquoi la cryptographie côté client est importante
Les services « chiffrés » côté serveur voient toujours votre texte en clair. La cryptographie côté client retire complètement le serveur de la frontière de confiance. Voici pourquoi cette distinction change tout.
De nombreux services font la publicité du « chiffrement ». Presque tous entendent par là le chiffrement en transit (HTTPS) et le chiffrement au repos (la base de données est sur un disque chiffré). Ce sont des pratiques sensées. Aucune ne cache vos données aux personnes qui gèrent le service.
Où se situe la frontière
Le chiffrement protège les données contre quelqu'un à l'extérieur de la frontière de confiance. Si la frontière est « de votre ordinateur au serveur », alors HTTPS le garde privé de votre FAI — mais le serveur voit le texte en clair. Si la frontière est « votre ordinateur uniquement », le serveur ne voit que du texte chiffré qu'il ne peut pas lire.
La cryptographie côté client signifie la deuxième frontière. Vos données sont chiffrées avant de quitter votre machine, et les clés pour les déchiffrer n'existent jamais sur un serveur. Même si le serveur est piraté, mis sous assignation ou silencieusement compromis, l'opérateur n'a rien d'utile à remettre.
Ce que « côté client » signifie dans cette application
- Chaque appel de chiffrement et de déchiffrement s'exécute dans votre navigateur avec OpenPGP.js ou Web Crypto.
- Les clés privées ne vivent en mémoire de votre navigateur que le temps de l'opération ; elles ne sont jamais envoyées nulle part.
- Il n'y a pas de backend. Le serveur auquel vous vous connectez (le CDN d'hébergement statique) ne livre que du HTML, du JS et du CSS — pas d'API, pas de comptes utilisateurs, pas d'ingestion de données.
- Vous pouvez le vérifier. Ouvrez les outils de développement → onglet Réseau. Avec le mode air-gap activé, aucune requête sortante ne se déclenche lors d'une opération.
L'inconvénient
La cryptographie côté client déplace la frontière de confiance sur votre machine. Si votre navigateur est compromis, ou si vous chargez cette application depuis un serveur qui a été attaqué par MITM, vous perdez. C'est pourquoi ce site est open source, dispose d'une Content Security Policy et est servi via HTTPS avec épinglage de certificat. Vous pouvez aussi cloner le dépôt et l'exécuter localement pour une assurance maximale.
Commodité versus confiance est le compromis fondamental. Les services côté serveur sont plus simples — synchronisation entre appareils, flux de récupération, réinitialisation du mot de passe — au prix de faire confiance à un opérateur. Les services côté client sont plus exigeants — perdez votre clé, perdez vos données — mais l'opérateur ne peut pas vous trahir.