Skip to content

Xanderssss/Assecuredv1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Assecured

Assecured Messenger

Messagerie chiffrée de bout en bout avec authentification par clé USB physique.

🌐 Site officiel📦 GitHub


Présentation

Assecured est une application de messagerie desktop sécurisée construite avec Wails v2 (Go + React). Elle implémente le Signal Protocol pour le chiffrement de bout en bout et utilise une clé USB physique comme facteur d'authentification matériel.

Aucun mot de passe n'est stocké sur un serveur. L'identité cryptographique de l'utilisateur vit exclusivement sur sa clé USB, protégée par le système Pazoo (mot de passe + séquence d'animaux).

Fonctionnalités

Sécurité

  • Signal Protocol — Double Ratchet, X3DH, PreKeys pour le chiffrement E2E des messages privés
  • Sender Keys — Chiffrement de groupe conforme à la spec Signal
  • Clé USB obligatoire — L'identité cryptographique est stockée uniquement sur un support physique
  • Pazoo — Système d'authentification combinant mot de passe + séquence visuelle d'animaux, dérivé via Argon2id
  • Wipe automatique — Après plusieurs tentatives échouées, la clé USB est effacée et le compte supprimé
  • Messages éphémères — Mode de conversation où les messages sont automatiquement supprimés
  • Chiffrement des fichiers — AES-256-GCM pour les fichiers envoyés, clés dérivées par session

Messagerie

  • Conversations privées chiffrées E2E
  • Groupes avec gestion des rôles (admin/membre)
  • Envoi de fichiers (images, documents, audio, vidéo) chiffrés
  • Prévisualisation des images et GIFs inline
  • Sélecteur d'emojis et de GIFs (Tenor)
  • Statuts de messages (envoyé, distribué, lu)
  • Indicateur de présence en ligne

Appels

  • Appels audio/vidéo en peer-to-peer via WebRTC
  • Appels de groupe
  • Partage d'écran
  • Configuration des périphériques audio/vidéo

Profil

  • Avatar personnalisable
  • Bio
  • Consultation du profil des contacts

Architecture

├── main.go                  # Point d'entrée Wails
├── app.go                   # Logique applicative principale (bindings Go ↔ JS)
├── event_manager.go         # Gestion des événements temps réel (Supabase Realtime + polling)
├── auth/                    # Authentification, contacts, blocage
├── crypto/                  # Primitives cryptographiques
├── signalcrypto/            # Implémentation Signal Protocol (Double Ratchet, X3DH, Sender Keys)
├── message/                 # Envoi/réception de messages, cache chiffré sur USB
├── group/                   # Gestion des groupes (création, membres, invitations)
├── supabase/                # Client Supabase (BDD, Realtime, Storage)
├── usb/                     # Gestion de la clé USB (identité, wipe, hardware ID)
├── pazoo/                   # Système Pazoo (dérivation de clé Argon2id)
├── frontend/                # Interface React + Vite
│   ├── src/pages/           # Écrans (Login, Register, Messenger, USBSetup)
│   └── src/components/      # Composants (CallManager, EmojiPicker, GifPicker, etc.)

Stack technique

Composant Technologie
Backend Go 1.23
Frontend React 18 + Vite
Framework desktop Wails v2
Base de données Supabase (PostgreSQL)
Temps réel Supabase Realtime (WebSocket)
Stockage fichiers Supabase Storage
Chiffrement Signal Protocol (X3DH + Double Ratchet + Sender Keys)
Dérivation de clé Argon2id
Appels WebRTC

Prérequis

  • Go 1.23+
  • Node.js 20+
  • Wails CLI v2 — go install github.com/wailsapp/wails/v2/cmd/wails@latest
  • Une clé USB pour l'authentification
  • Un projet Supabase configuré (tables: users, messages, contacts, groups, etc.)

Installation

# Cloner le repo
git clone https://github.com/Xanderssss/Assecuredv1.git
cd Assecuredv1

# Installer les dépendances frontend
cd frontend && npm install && cd ..

# Lancer en mode développement
wails dev

# Compiler l'exécutable
wails build

L'exécutable sera généré dans le dossier build/bin/.

Fonctionnement de l'authentification

  1. Première utilisation — L'utilisateur branche une clé USB vierge, choisit un nom d'utilisateur, un mot de passe et une séquence Pazoo (6+ animaux). L'identité cryptographique (clés Ed25519 + X25519) est générée et stockée chiffrée sur la clé USB.

  2. Connexion — L'utilisateur branche sa clé USB et reproduit son mot de passe + séquence Pazoo. Le hash final est dérivé via Argon2id avec un sel matériel (hardware ID + volume UUID de la clé USB).

  3. Protection anti-brute-force — Après plusieurs tentatives échouées, la clé USB est automatiquement effacée (secure wipe) et le compte supprimé de la base de données.

Signal Protocol

L'implémentation suit la spécification Signal :

  • X3DH (Extended Triple Diffie-Hellman) pour l'établissement de session
  • Double Ratchet pour le chiffrement des messages privés avec forward secrecy
  • Sender Keys pour le chiffrement de groupe performant
  • PreKey bundles publiés sur Supabase pour permettre les sessions asynchrones
  • Les sessions et Sender Keys sont persistées chiffrées sur la clé USB

Créateurs

Développé par Xander et Yorgalus, deux passionnés de cybersécurité. Ce projet a été fait pour le kiff.

Collaboration

Le système d'authentification Pazoo (mot de passe + séquence d'animaux) est développé en collaboration avec TeSairen.

Licence

Projet privé — Tous droits réservés.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors