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

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