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 :

  1. 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).

  2. 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.

  3. 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.