Flux de données principal
Chemin d'un fichier
Voie contenu (fichiers)
- Lecture du fichier sur l'appareil
- Chiffrement AES-256-GCM avec clé dérivée localement
- Upload du blob via URL signée (TTL court)
- Stockage sur Backblaze B2, région EU ou US selon conformité
- Index chiffré dans Firestore (nom, taille, emplacement blob)
Voie identité (compte)
- Connexion via Firebase Auth (e-mail, OAuth, passkey)
- Émission d'un jeton signé (UID)
- Métadonnées profil dans Firestore
- Aucun contenu de fichier ne transite par Firebase Auth
Stack technique
| Composant | Rôle | Données | Sécurité |
|---|---|---|---|
| App Flutter | Client | Chiffrement / déchiffrement local | Clés en Secure Storage |
| Firebase Auth | Identité | E-mail, OAuth, hash MDP | Jetons signés, règles strictes |
| Firestore | Métadonnées | Profil, index chiffrés | Rules par UID |
| Cloud Functions | Logique serveur | Passkeys, webhooks, quotas | Auth obligatoire |
| Backblaze B2 | Stockage objet | Blobs chiffrés uniquement | Clés API restreintes |
| Cloudflare | CDN / DNS | Trafic site et CDN fichiers | DDoS, DNSSEC |
| RevenueCat | Abonnements | Statut premium | Webhooks signés |