Sahhar Dhia Eddine
Tous les projets

Secure Messenger

Messagerie chiffrée de bout en bout et appels vidéo dans le navigateur

  • React
  • TypeScript
  • Vite
  • Zustand
  • Tailwind CSS
  • Socket.IO
  • WebRTC
  • WebCrypto
  • Node.js
  • Express
  • MongoDB
  • Redis
  • MinIO
Discussion entre deux personnes avec une photo jointe chiffrée

Une messagerie web avec des comptes anonymes : ni numéro de téléphone ni e-mail, seulement un pseudo et un code d'invitation. Les messages, photos et notes vocales sont chiffrés dans le navigateur avec l'API WebCrypto avant l'envoi : le serveur ne fait que relayer et stocker des données chiffrées. Les appels audio et vidéo passent directement d'un navigateur à l'autre via WebRTC. L'interface est disponible en anglais, en français et en arabe.

Fonctionnalités

  • Comptes anonymes : un pseudo et un code d'invitation, sans numéro de téléphone ni e-mail
  • Discussions privées et de groupe en temps réel
  • Photos, fichiers et notes vocales, chiffrés avant l'envoi
  • Appels audio et vidéo via WebRTC
  • Accusés de lecture, réponses, réactions et messages épinglés
  • Numéros de sécurité pour vérifier l'identité d'un contact en personne
  • Interface en anglais, français et arabe, avec mise en page de droite à gauche

Fonctionnement du chiffrement

  • La paire de clés de chaque compte (ECDH P-256) est créée dans le navigateur ; la clé privée ne quitte jamais l'appareil
  • Chaque message a sa propre clé AES-256-GCM, protégée pour chaque membre par une clé dérivée via ECDH et HKDF
  • Le même principe s'applique aux discussions privées et aux groupes : le serveur ne détient jamais le texte des messages
  • Les pièces jointes sont chiffrées avant l'envoi ; leur clé voyage dans le message chiffré
  • Chaque requête et chaque événement du socket sont liés à un jeton de session et vérifiés selon l'appartenance à la conversation

Galerie

Projet suivantTop Papier