EPIC — Application mobile Android zero-knowledge (PD-194)¶
Intention¶
Développer une application mobile Android sécurisée, performante et ergonomique, permettant aux utilisateurs de capturer, chiffrer, consulter et sceller des documents probatoires directement depuis leur appareil Android, sans jamais exposer le contenu en clair ni compromettre la valeur juridique des preuves.
Cette EPIC garantit une parité fonctionnelle et cryptographique complète avec iOS, tout en tenant compte des spécificités de l'écosystème Android.
Problème de fond¶
Android présente une grande diversité de terminaux, de versions système et de niveaux de sécurité matérielle, ce qui pose des défis spécifiques :
- hétérogénéité des implémentations matérielles (TEE, biométrie) ;
- risques accrus liés aux devices rootés ou compromis ;
- gestion sécurisée du stockage local et des clés cryptographiques ;
- nécessité de performances correctes malgré le chiffrement côté client ;
- cohérence UX avec iOS tout en respectant les conventions Android.
Sans une application Android zero-knowledge by design, la surface d'attaque globale de ProbatioVault serait inacceptable.
Solution de principe¶
L'EPIC MOBILE-ANDROID met en œuvre une application React Native Android sécurisée, reposant sur les principes suivants :
- Chiffrement systématique côté client avant toute transmission ;
- Dérivation de clés locale conforme au modèle cryptographique ProbatioVault ;
- Stockage des secrets exclusivement via Android Keystore ;
- Authentification forte (SRP-6a, MFA, biométrie) ;
- Auto-lock configurable avec purge du cache et de la mémoire ;
- Upload en streaming avec suivi de progression ;
- Viewer sécurisé pour documents (PDF, images) ;
- Notifications push pour événements critiques ;
- Onboarding guidé et cohérent avec la version iOS.
L'application Android est un client cryptographique souverain, au même titre que l'application iOS.
Invariants¶
- Aucune clé ou donnée sensible n'est stockée en clair sur le device.
- Les clés utilisateur ne quittent jamais l'environnement sécurisé Android.
- Le chiffrement est effectué avant tout upload.
- L'inactivité entraîne un verrouillage et une purge locale.
- Les mécanismes biométriques renforcent l'accès mais ne remplacent pas le chiffrement.
- Le comportement fonctionnel reste aligné avec iOS.
User Stories associées¶
- PD-108 — Setup projet React Native Android avec TypeScript
- PD-109 — Implémenter chiffrement client-side Android
- PD-110 — Configurer Android Keystore pour clés
- PD-111 — Créer écran login Android (similaire iOS)
- PD-112 — Créer écran liste documents Android
- PD-113 — Implémenter upload document Android
- PD-114 — Créer viewer documents Android
- PD-116 — Implémenter push notifications Android
- PD-117 — Créer écran settings Android
- PD-118 — Implémenter biometric authentication Android
- PD-173 — Implémenter auto-lock configurable avec effacement cache
- PD-175 — Créer onboarding interactif 5 étapes
Impacts transverses¶
-
Architecture Maintien de la cohérence cross-platform et gestion des spécificités Android (Keystore, permissions).
-
Sécurité Protection contre compromission device, stockage sécurisé des clés, défense en profondeur.
-
UX Parité fonctionnelle avec iOS, respect des patterns Android et fluidité d'usage.
-
Backend / API Dépendance directe aux APIs Auth et Docs-API, contraintes de compatibilité et de performance.
-
Juridique Capture de preuves directement à la source, indépendamment de la plateforme mobile utilisée.
-
Exploitation Gestion des versions Android, fragmentation device / OS et support utilisateur.
Références¶
- Architecture Executive ProbatioVault — v4.x
- Cahier d'Architecture Technique Mobile
- Spécifications Mobile Zero-Knowledge
- Normes : OWASP MASVS, Android Security Best Practices
- Décisions d'architecture (ADR) liées au mobile Android