|
|
|
🔒 Sécurité & Crypto
💬 Messagerie
🎨 Interface
🔒 Protection
|
┌──────────────────────────────────────────────────┐
│ UI Layer │
│ Fragments · ViewModels · Adapters │
├──────────────────────────────────────────────────┤
│ Repository Layer │
│ ChatRepository — source de vérité unique │
├────────────────┬────────────────┬────────────────┤
│ Room DB │ Crypto │ Firebase │
│ (SQLCipher) │ PQXDH + DR │ Relay + FCM │
└────────────────┴────────────────┴────────────────┘
📖 Détails — Architecture complète · Protocole crypto · Structure du projet
# 1. Clone
git clone https://github.com/DevBot667/SecureChat.git
cd SecureChat
# 2. Ajouter google-services.json dans app/ (voir docs/SETUP.md)
# 3. Build
./gradlew assembleDebug📖 Guide complet — Installation & Configuration Firebase
| Mesure | Statut |
|---|---|
| Chiffrement E2E (PQXDH : X25519 + ML-KEM-768 + AES-256-GCM) | ✅ |
| Double Ratchet avec PFS + healing | ✅ |
| Zeroing mémoire (clés intermédiaires) | ✅ |
| Envoi atomique (ratchet + Firebase) | ✅ |
| Mutex par conversation (thread-safe) | ✅ |
| SQLCipher (base locale chiffrée AES-256) | ✅ |
| Metadata hardening (trial decryption) | ✅ |
| senderUid hashé HMAC-SHA256 par conversation | ✅ |
| Message padding taille fixe (anti traffic analysis) | ✅ |
| Delete-after-delivery (Firebase auto-cleanup) | ✅ |
| Dummy traffic configurable (trafic factice) | ✅ |
| Fichiers E2E (AES-256-GCM + Firebase Storage) | ✅ |
| PBKDF2 PIN (600K itérations + salt) | ✅ |
| R8/ProGuard obfuscation + log stripping complet (d/v/i/w/e/wtf) | ✅ |
| Fingerprint emojis 96-bit anti-MITM | ✅ |
| App Lock (PIN + biométrie) | ✅ |
| Firebase security rules restrictives | ✅ |
| BIP-39 backup/restore (24 mots) | ✅ |
allowBackup=false, zéro logs sensibles |
✅ |
| Material Design 3 — migration complète des 5 thèmes | ✅ |
| Icônes d'attachement inline avec animation (style Session) | ✅ |
| Permissions Android 13+ (READ_MEDIA_IMAGES/AUDIO) | ✅ |
| Geste prédictif (enableOnBackInvokedCallback) | ✅ |
| Routage Tor intégré (SOCKS5 + VPN TUN + libtor.so) | ✅ |
| Écran bootstrap Tor (choix + progress + 5 thèmes) | ✅ |
| Toggle Tor dans Paramètres Sécurité + reconnexion | ✅ |
| Dummy traffic par conversation | ✅ |
| Signature Ed25519 par message (anti-falsification) | ✅ |
| PQXDH : X25519 + ML-KEM-768 (résistance post-quantique) | ✅ |
| Upgrade PQXDH différé (rootKey-only, zéro désync) | ✅ |
| StrongBox hardware key storage (si disponible) | ✅ |
| DeviceSecurityManager (probe StrongBox + profil utilisateur) | ✅ |
| QR deep link v2 (X25519 + ML-KEM + nom, auto-fill) | ✅ |
| displayName masqué de Firebase (zéro PII serveur) | ✅ |
| Vérification d'empreinte indépendante par utilisateur | ✅ |
| Messages système de vérification + lien cliquable | ✅ |
| lastDeliveredAt (skip messages déjà traités au redémarrage) | ✅ |
| Delete-after-failure (nettoyage messages en échec Firebase) | ✅ |
| Déduplication atomique dual-listener (ConcurrentHashMap) | ✅ |
| Nettoyage clés de signature à la suppression de compte | ✅ |
📖 Analyse complète —
SECURITY.md· Protocole crypto
| Version | Thème | Statut |
|---|---|---|
| V1 | Core — E2E, contacts, conversations, push, fingerprint, SQLCipher, App Lock, éphémère | ✅ Done |
| V2 | Crypto Upgrade — Full Double Ratchet X25519, Curve25519 natif | ✅ Done |
| V2.1 | Account Lifecycle — BIP-39 backup, restauration, suppression, dead convo | ✅ Done |
| V2.2 | UI Modernization — 5 thèmes, animations, CoordinatorLayout, zero hardcoded colors | ✅ Done |
| V3 | Security Hardening — R8, delete-after-delivery, padding, HMAC UID, PBKDF2, dummy traffic, fichiers E2E | ✅ Done |
| V3.1 | Settings Redesign — Paramètres Signal-like, PIN 6 chiffres, sous-écran Confidentialité, coroutines PIN | ✅ Done |
| V3.2 | Ed25519 Signing — Signature par message, badge ✅/ |
✅ Done |
| V3.3 | Material 3 + Tor + Attachment UX — Migration M3, intégration Tor complète, icônes inline Session, permissions Android 13+, durcissement logs | ✅ Done |
| V3.4 | PQXDH + Security — ML-KEM-768 post-quantique, deep link v2, QR auto-fill nom, displayName masqué Firebase, DeviceSecurityManager StrongBox, vérification empreinte indépendante, messages système, fix désync PQXDH, fix dual-listener, lastDeliveredAt | ✅ Done |
| V3.5 | Planned — Camouflage app + faux écran, Dual PIN, panic button, FLAG_SECURE, messages vocaux E2E, sealed sender, reply/quote | 🔜 |
📖 Détails — Changelog complet
- Fork le repo
- Crée ta branche (
git checkout -b feature/ma-feature) - Commit (
git commit -m 'Ajout de ma feature') - Push (
git push origin feature/ma-feature) - Ouvre une Pull Request
⚠️ Pour toute modification crypto, ouvrir une issue d'abord pour discussion.
| Document | Contenu |
|---|---|
| Architecture | Patterns, layers, flux des demandes, cycle de vie |
| Protocole Crypto | X25519, Double Ratchet, fingerprint, modèle de menace |
| Installation | Prérequis, Firebase, build, dépendances |
| Structure | Arbre complet du projet |
| Changelog | Historique V1 → V3.4 |
| Sécurité | Audit complet, limites connues |
Ce projet est sous licence GPLv3. Consultez les Terms of Service avant toute utilisation.
Fourni à des fins éducatives. Utilisez-le comme base pour comprendre le chiffrement E2E sur mobile.
⚠️ Avertissement : Ce logiciel est un projet personnel et éducatif. L'implémentation cryptographique n'a pas été auditée par un cabinet de sécurité tiers. Aucune garantie de sécurité absolue n'est fournie. Ne l'utilisez pas comme seul moyen de communication sécurisée dans des situations critiques. L'utilisation de ce logiciel est à vos propres risques. Voir TERMS.md.
"Vos messages, vos clés, votre vie privée."