Face aux enjeux modernes de surveillance et de fuites de données, j’ai développé une Application de chat chiffrée de bout en bout. Son paradigme de sécurité est strict : le serveur ne sait rien, ne déchiffre rien et oublie tout. L’historique des échanges est entièrement purgé toutes les 6 heures. De plus, aucune donnée nominative comme un compte, un e-mail ou du tracking ne se sauvegarde.
🛡️ Architecture de Sécurité & Modèle de Menace (DevSecOps)
En tant que passionné et futur spécialiste en cybersécurité, j’ai conçu Murmure selon les principes du Privacy by Design :
Chiffrement de bout en bout (E2E) : Implémentation de l’API WebCrypto native du navigateur. Les messages et les images sont chiffrés en AES-256-GCM avant de quitter le terminal de l’utilisateur.
Dérivation de clé robuste : La clé de chiffrement est dérivée d’un code secret partagé. Ce code existe via une entropie de 4 mots et 5 chiffres, soit environ 50 bits d’entropie. L’opération utilise l’algorithme PBKDF2-SHA256 configuré à 250 000 itérations côté client.
Vérification d’intégrité : Affichage d’une empreinte cryptographique (fingerprint) unique sur les deux terminaux. Ce système prévient efficacement les attaques de type Man-In-The-Middle (MITM).
Protection de l’Infrastructure : Intégration d’un Captcha Cloudflare Turnstile anti-bot. Il y a un rate-limiting strict par IP côté serveur (Express) pour bloquer les attaques DoS et le brute-force.
⚙️ Fonctionnalités Techniques Avancées
Au-delà de sa couche de sécurité, Murmure offre l’expérience fluide d’une application de chat moderne :
Communication Temps Réel : Gestion des sockets bidirectionnels via Socket.io. Cela permet l’envoi des messages, les indicateurs d’écriture (typing) et les accusés de lecture.
Notifications Push Asynchrones : Implémentation du protocole Web Push / VAPID via un Service Worker personnalisé.
Proxy de Confidentialité (Anti-SSRF) : Les aperçus de liens (Open Graph) sont récupérés directement par le serveur et non par le client. Cela protège l’adresse IP des utilisateurs contre le tracking des sites tiers.
Richesse des Médias : Compression native en WebP pour le transfert d’images chiffrées. Le système intègre aussi l’API Giphy avec des requêtes proxifiées et des réactions émojis illimitées.
🛠️ Stack Technique & Déploiement
Pour garantir des performances optimales et une surface d’attaque minimale, j’ai opté pour une stack maîtrisée, sans framework Front-End superflu :
Backend : Node.js, Express, Socket.io, Web-Push.
Frontend : Vanilla JavaScript, HTML5, CSS3. Le design est responsive avec un Dark Theme natif et une PWA installable.
Reverse-proxy & Sécurité Réseau : Déploiement durci sous Nginx avec gestion des certificats TLS (Let’s Encrypt). L’infrastructure utilise l’isolation des processus via des variables d’environnement Linux et la configuration du tunneling d’entête (
X-Forwarded-For).Conteneurisation : Environnement packagé via Docker et Docker-Compose pour un déploiement DevSecOps reproductible et isolé.
🎯 Compétences valorisées à travers ce projet
La réalisation complète de Murmure, du design de l’architecture à sa mise en production sécurisée, démontre mes compétences pratiques en :
Cryptographie appliquée : Maîtrise des protocoles de chiffrement symétrique, de dérivation de clés et de gestion des vecteurs d’initialisation (IV).
Développement Full-Stack sécurisé : Écriture de code asynchrone robuste en JavaScript (Node.js). Gestion de flux de données en temps réel et sécurisation des API contre les injections et les failles logiques.
Administration Système & DevOps : Configuration de reverse-proxies sécurisés et gestion des permissions. Maîtrise des sockets web persistants et automatisation via Docker.
