Skip to content

FialkaApp/Fialka-Android

Repository files navigation

🇫🇷 Français | 🇬🇧 English

🔐 Fialka

Chat chiffré de bout en bout pour Android — gratuit, anonyme, sans serveur


🔐    🧅    📬    🛡️    🔑    📷    📱


Android Kotlin E2E License Terms Privacy


Tor Fialka-Core SQLCipher Room Material3 ZXing Coroutines


  Vos messages sont chiffrés AVANT d'être envoyés.
  Personne ne peut les lire. Pas de serveur central.

  Pas de numéro. Pas d'email. Pas de Google.
  Juste une clé et Tor.


⚡ En bref

🔐 Crypto

  • 1 seed Ed25519 → tout : identité, .onion, X25519, ML-KEM, fingerprint
  • PQXDH : X25519 + ML-KEM-1024 (post-quantique hybride)
  • ML-DSA-44 : signature PQ sur le handshake
  • SPQR : ré-encapsulation PQ périodique (toutes les 10 msgs)
  • AES-256-GCM / ChaCha20-Poly1305 (auto) + Double Ratchet avec PFS + healing
  • Fingerprint emojis 96-bit anti-MITM + QR code scanner
  • BIP-39 backup (24 mots) → restaure toute l'identité
  • Photos one-shot — vue unique, suppression sécurisée 2 phases
  • Seed dans Android Keystore (StrongBox si dispo)
  • Base locale chiffrée SQLCipher
  • Message padding taille fixe (256/1K/4K/16K)
  • Dummy traffic (trafic factice par conversation)
  • Fichiers E2E chiffrés AES-256-GCM (transfert P2P via Tor)
  • Signature Ed25519 anti-falsification par message
  • Zéro Google, zéro Firebase — full P2P via Tor Hidden Services

🎨 UI/UX

  • Material Design 3 — Migration complète des 5 thèmes
  • 5 thèmes : Midnight · Hacker · Phantom · Aurora · Daylight
  • Animations fluides — transitions, bulles, cascade
  • Icônes d'attachement inline — Style Session, animation slide-up
  • Écran Tor Bootstrap — Choix Tor/Normal, progress animé, 5 thèmes
  • Toolbar scrollable + FAB auto-hide
  • Bulles dynamiques colorées par thème
  • App Lock PIN + biométrie
  • Messages éphémères (30s → 1 mois)
  • Photos one-shot vue unique 🔥

✨ Fonctionnalités

🔒 Sécurité & Crypto
Feature Détail
🔐 Chiffrement E2E PQXDH : X25519 + ML-KEM-1024 + AES-256-GCM / ChaCha20-Poly1305 + SPQR
🆔 1 seed → tout Ed25519 seed → Account ID, .onion, X25519, ML-KEM, fingerprint
🔄 Perfect Forward Secrecy Double Ratchet (DH + KDF chains)
🔏 Fingerprint emojis + QR 96-bit, 16 emojis + QR code SHA-256, scanner intégré
🛡️ ML-DSA-44 Signature post-quantique hybride sur le handshake
🌐 Tor P2P Zéro serveur central — .onion directe, IP jamais visible
📬 Fialka Mailbox Mode serveur P2P distinct (nécessite 2 phones) — 4 modes (Personnel, Privé, Public) — store/transit/purge E2E — ZÉRO déchiffrage
🔑 Keystore-backed Seed dans Android Keystore (StrongBox si dispo)
🗄️ SQLCipher Base Room chiffrée AES-256
🧹 Zeroing mémoire Clés intermédiaires remplies de zéros
📏 Message padding Taille fixe (256/1K/4K/16K) anti-analyse de trafic
👻 Dummy traffic Messages factices périodiques (configurable)
📎 Fichiers E2E Chiffrement AES-256-GCM, transfert P2P via Tor
🔒 PBKDF2 PIN 600K itérations + salt
✍️ Signature Ed25519 Chaque message signé, badge ✅/⚠️ anti-falsification
📸 Photos one-shot Vue unique (sender + receiver), suppression sécurisée 2 phases
💬 Messagerie
Feature Détail
📷 QR Code Scan → clé publique + pseudo auto-remplis
📨 Demandes de contact Invitation → notification → accepter/refuser
🔴 Messages non lus Badge compteur + séparateur dans le chat
🔄 Temps réel Messages reçus même app en arrière-plan
🔔 Push notifications UnifiedPush + ntfy.sh, zéro contenu (self-hostable)
⏱️ Messages éphémères 10 durées (30s → 1 mois)
📁 Partage de fichiers E2E Chiffrés AES-256-GCM, transfert P2P via Tor
👻 Trafic factice Messages indistinguables pour masquer l'activité
💀 Détection convo morte Auto-détection + nettoyage + re-invitation
🎨 Interface
Feature Détail
🌙 5 thèmes Midnight · Hacker · Phantom · Aurora · Daylight
Animations Transitions slide/fade, bulles animées, cascade
📜 Toolbar scrollable Se replie au scroll, réapparaît (snap)
🔽 FAB auto-hide Disparaît au scroll vers le bas
🫧 Bulles dynamiques Couleurs adaptées au thème via backgroundTint
🎭 Sélecteur visuel Grille MaterialCardView avec prévisualisation
📎 Icônes inline Attachement style Session (fichier/photo/caméra) animé
🔒 Protection
Feature Détail
🔒 App Lock PIN 6 chiffres + biométrie opt-in
Auto-lock Timeout configurable (5s → 5min)
🔑 Backup BIP-39 24 mots pour sauvegarder la clé d'identité
♻️ Restauration Grille autocomplete 24 mots + restaurer sur nouvel appareil
🗑️ Suppression complète Supprime toutes les données locales
📵 Anonyme Zéro numéro, zéro email, zéro Google, zéro tracking

🏗 Architecture

┌──────────────────────────────────────────────────┐
│                    UI Layer                       │
│         Fragments · ViewModels · Adapters         │
├──────────────────────────────────────────────────┤
│               Repository Layer                    │
│      ChatRepository — source de vérité unique     │
├────────────────┬────────────────┬────────────────┤
│    Room DB     │     Crypto     │   Transport     │
│   (SQLCipher)  │  PQXDH + DR    │  Tor P2P .onion │
│                │  + ML-DSA-44   │  + Mailbox      │
├────────────────┴────────────────┴────────────────┤
│              JNI Bridge (FialkaNative)            │
│         Fialka-Core — bibliothèque Rust native    │
│  AES-GCM · ChaCha20 · Ed25519 · X25519 · ML-KEM  │
│  ML-DSA · HKDF · Double Ratchet · Onion          │
└──────────────────────────────────────────────────┘

📖 DétailsArchitecture complète · Protocole crypto · Structure du projet


🛠 Quick Start

⚠️ Prérequis : Android 13+ (API 33) — Fialka requiert Android 13 minimum pour garantir l'accès au StrongBox (hardware security module) et aux APIs Keystore robustes qui protègent la passphrase SQLCipher. Environ 60 % du parc Android actif est compatible. Les appareils sous Android 12 ou inférieur ne pourront pas installer l'application.

# 1. Clone
git clone https://github.com/FialkaApp/Fialka-Android.git
cd Fialka-Android

# 2. Build
./gradlew assembleDebug

📖 Guide completInstallation & Configuration


🔐 Sécurité

Voir toutes les mesures de sécurité (32 items)
Mesure Statut
Identité : 1 seed Ed25519 → tout (Account ID, .onion, X25519, ML-KEM, fingerprint)
Zéro serveur central — P2P intégral via Tor Hidden Services (.onion)
Zéro Google, zéro Firebase — aucune dépendance corporate
Chiffrement E2E (PQXDH : X25519 + ML-KEM-1024 + AES-256-GCM / ChaCha20)
Double Ratchet avec PFS + healing
SPQR : ré-encapsulation ML-KEM-1024 toutes les 10 messages
ML-DSA-44 : signature PQ hybride sur le handshake
Ed25519 : signature classique par message (badge ✅/⚠️)
Fialka Mailbox : livraison offline (4 modes : P2P, perso, privé, public)
UnifiedPush + ntfy.sh (notifications sans Google, self-hostable)
Sealed Sender via Tor (supérieur à Signal — IP jamais visible)
Zeroing mémoire (clés intermédiaires, HKDF, MnemonicManager)
Mutex par conversation (thread-safe)
SQLCipher (base locale chiffrée AES-256)
Message padding taille fixe (256/1K/4K/16K — anti traffic analysis)
Dummy traffic configurable (trafic factice par conversation)
Fichiers E2E (AES-256-GCM, transfert P2P via Tor)
PBKDF2 PIN (600K itérations + salt)
R8/ProGuard obfuscation + log stripping complet
Fingerprint emojis 96-bit anti-MITM + QR code SHA-256 scanner
App Lock (PIN + biométrie)
BIP-39 backup/restore (24 mots) → restaure toute l'identité
allowBackup=false, zéro logs sensibles
StrongBox hardware key storage (si disponible)
DeviceSecurityManager (probe StrongBox + profil sécurité)
FLAG_SECURE (toutes activités sensibles + dialogs)
Protection anti-tapjacking (filterTouchesWhenObscured)
usesCleartextTraffic=false (zéro trafic HTTP)
Deep link hardening (whitelist, limites, anti-injection)
Clipboard EXTRA_IS_SENSITIVE + auto-clear 30s
SecureFileManager (suppression 2 passes : aléatoire + zéros)
Photos one-shot (vue unique, suppression sécurisée 2 phases)
Messages éphémères (30s → 1 mois)
Audit sécurité V3.4.1 — 42+ vulnérabilités corrigées

📖 Analyse complèteSECURITY.md · Protocole crypto


🗺 Roadmap

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é ✅ Done
V3.2 Ed25519 Signing — Signature par message, badge ✅/⚠️, nettoyage clés ✅ Done
V3.3 Material 3 + Tor + Attachment UX — Migration M3, intégration Tor complète, icônes inline ✅ Done
V3.4 PQXDH + Security — ML-KEM-1024 post-quantique, deep link v2, QR auto-fill, DeviceSecurityManager StrongBox ✅ Done
V3.4.1 One-Shot + Security Audit — Photos éphémères, grille BIP-39, QR fingerprint, audit sécurité (42+ fixes) ✅ Done
V3.5 SPQR + ChaCha20 — Triple Ratchet PQ (ML-KEM toutes les 10 msgs), ChaCha20-Poly1305 alternatif ✅ Done
V4.0 Kill Firebase — P2P .onion + Mailbox store-and-forward, invite QR, deep links ✅ Done
V4.0.1 Keystore direct (FialkaSecurePrefs), SQLCipher 4.14.1, transport fiabilité (retry 15s, fallback Mailbox, fetch adaptatif) ✅ Done
V4.0.2 Fialka-Core Rust JNI — pont JNI 30 fonctions, suppression BouncyCastle, crypto 100% Rust native, submodule git ✅ Done
V4.1 UX — App disguise (icône + faux écran), Dual PIN + Panic Button, messages vocaux E2E (Opus), reply/quote 🔜
V4.2 Sealed Sender réel (VXEdDSA), multi-device Sesame, audit externe (Cure53 / Trail of Bits) 🔜
V5.0 Long terme — FN-DSA Falcon-512 signatures PQ par message, réseau Mailbox décentralisé, Bluetooth/WiFi fallback 🔮

📖 DétailsChangelog complet


🤝 Contribuer

  1. Fork le repo
  2. Crée ta branche (git checkout -b feature/ma-feature)
  3. Commit (git commit -m 'Ajout de ma feature')
  4. Push (git push origin feature/ma-feature)
  5. Ouvre une Pull Request

⚠️ Pour toute modification crypto, ouvrir une issue d'abord pour discussion.


📖 Documentation

Document Contenu
Architecture Patterns, layers, flux des demandes, cycle de vie
Protocole Crypto X25519, Double Ratchet, fingerprint, modèle de menace
Installation Prérequis, build, dépendances
Structure Arbre complet du projet
Changelog Historique V1 → V4.0.1
Sécurité Audit complet, limites connues


🙏 Remerciements — Bibliothèques & Dépendances

🔐 Cryptographie

Bibliothèque Version Rôle
Fialka-Core (Rust) submodule Toute la crypto native : AES-256-GCM, ChaCha20-Poly1305, Ed25519, X25519, ML-KEM-1024, ML-DSA-44, HKDF, Double Ratchet, .onion
Android Keystore (AOSP) Seed Ed25519 en hardware (StrongBox)
Security Crypto 1.1.0-alpha06 EncryptedSharedPreferences, MasterKey
Biometric 1.1.0 Authentification biométrique

🧅 Réseau & Anonymat

Bibliothèque Version Rôle
tor-android — Guardian Project 0.4.9.5 Binaire Tor embarqué, Hidden Services v3
jtorctl — Guardian Project 0.4.5.7 Contrôle du daemon Tor (Java)
socks-socket — Briar Project 0.1 Connexions SOCKS5 via Tor
lyrebird-android — Briar Project 0.6.2 Transports obfs4/Snowflake (anti-censure)
moat-api — Briar Project 0.4 Bootstrap des bridges Tor

🗄️ Base de données

Bibliothèque Version Rôle
Room 2.8.4 ORM SQLite (persistence locale)
SQLCipher — Zetetic 4.14.1 Chiffrement AES-256 de la base Room
KSP — Google Génération de code Room à la compilation

📱 Android SDK & Interface

Bibliothèque Version Rôle
AndroidX Core KTX 1.15.0 Extensions Kotlin Android
AppCompat 1.7.0 Compatibilité descendante
Fragment / Activity KTX 1.8.6 / 1.10.1 Cycle de vie et navigation
Navigation 2.8.9 Navigation Fragment + Deep Links
Lifecycle 2.8.7 ViewModel, LiveData, coroutines
RecyclerView 1.4.0 Listes de messages
ConstraintLayout 2.2.1 Layouts complexes
Material Design 3 — Google 1.12.0 Composants M3, 5 thèmes
Splash Screen 1.0.1 Écran de démarrage

📷 QR Code & Async

Bibliothèque Version Rôle
ZXing Android Embedded — JourneyApps 4.3.0 Génération + scan QR codes
Kotlinx Coroutines — JetBrains 1.10.2 Async non-bloquant, structured concurrency
Kotlin — JetBrains 2.3.0 Langage principal

📋 Standards & Protocoles Cryptographiques

Standard Référence Utilisation dans Fialka
ML-KEM-1024 NIST FIPS 203 Key Encapsulation Mechanism post-quantique (hybride PQXDH)
ML-DSA-44 NIST FIPS 204 Signature numérique post-quantique (handshake)
Ed25519 RFC 8032 Signature classique par message + seed d'identité
X25519 RFC 7748 Échange de clés Diffie-Hellman sur courbe elliptique
PQXDH Signal Specification Protocol d'accord de clés post-quantique hybride
Double Ratchet Signal Specification Perfect Forward Secrecy + auto-healing
ChaCha20-Poly1305 RFC 8439 Chiffrement symétrique authentifié (alternative AES)
AES-256-GCM NIST SP 800-38D Chiffrement symétrique authentifié (principal)
HKDF RFC 5869 Dérivation de clés cryptographiques
PBKDF2 RFC 8018 Dérivation de clé depuis le PIN (600 000 itérations)
BIP-39 Bitcoin Core Mnémonique 24 mots pour la sauvegarde d'identité

Ce projet est sous licence GPLv3. Consultez les Conditions d'utilisation et la Politique de confidentialité avant toute utilisation.


⚠️ Avertissement : Fialka est un outil. Les développeurs n'opèrent aucune infrastructure, ne stockent aucune donnée utilisateur, et ne peuvent accéder à aucun message. 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. L'utilisation de ce logiciel est à vos propres risques et sous votre entière responsabilité. Voir TERMS.md.


📜 Notice d’exportation cryptographique

Cette distribution inclut des logiciels cryptographiques. Le pays dans lequel vous résidez peut imposer des restrictions à l’importation, la possession, l’utilisation et/ou la réexportation vers un autre pays de logiciels de chiffrement. AVANT d’utiliser tout logiciel de chiffrement, veuillez vérifier les lois, règlements et politiques de votre pays concernant l’importation, la possession ou l’utilisation de tels logiciels, et leur réexportation, afin de déterminer si cela est autorisé. Voir https://www.wassenaar.org/ pour plus d’informations.

Le Département du Commerce des États-Unis, Bureau of Industry and Security (BIS), a classé ce logiciel sous le numéro de contrôle des exportations (ECCN) 5D002.C.1, qui englobe les logiciels de sécurité de l’information utilisant ou mettant en œuvre des fonctions cryptographiques avec des algorithmes asymétriques. La forme et les modalités de distribution de cette licence rendent ce logiciel éligible à l’exportation au titre de l’exception de licence ENC « Technology Software Unrestricted (TSU) » (voir les règlements d’administration des exportations du BIS, section 740.13) pour le code objet et le code source.

Union européenne — Règlement (UE) 2021/821 (biens à double usage) : Ce logiciel relève de la catégorie 5, Partie 2 (« Sécurité de l'information ») de l'Annexe I du Règlement (UE) 2021/821. En tant que logiciel à source ouverte librement accessible au public (licence GPLv3, disponible sur GitHub), il bénéficie de l'exemption prévue par la Note Logiciel Générale (NLG) ainsi que par la Note sur la Cryptographie (Note 3), qui excluent du champ des contrôles à l'exportation les logiciels « accessibles au public ». Aucune autorisation d'exportation spécifique n'est requise au sein de l'Union européenne pour ce logiciel.

France — LCEN 2004 (Art. 30, Loi n° 2004-575 du 21 juin 2004) : En France, l'utilisation des moyens de cryptologie est libre depuis la loi pour la Confiance dans l'Économie Numérique (LCEN) du 21 juin 2004, désormais codifiée dans le Code des postes et des communications électroniques. Aucune déclaration préalable ni autorisation n'est requise pour utiliser ce logiciel sur le territoire français.

© 2024-2026 FialkaApp Contributors. Licensed under GPLv3.




"Vos messages, vos clés, votre vie privée."


Contributors