EPIC — Application mobile iOS zero-knowledge (PD-195)¶
User Stories¶
| ID | Titre | Spec |
|---|---|---|
| PD-174 | PD-174 — Auto-lock configurable avec effacement du... | 📋 |
| PD-176 | 📄 SPÉCIFICATION CANONIQUE CONTRACTUELLE | 📋 |
| PD-96 | PD-96 — Initialisation du projet mobile iOS (React... | 📋 |
| PD-97 | PD-97 — Implémenter le chiffrement client-side zer... | 📋 |
| PD-98 | PD-98 — Stockage sécurisé de K_master dans le Keyc... | 📋 |
Intention¶
Développer une application mobile iOS sécurisée, fluide et centrée utilisateur, permettant de capturer, chiffrer, consulter et sceller des documents probatoires directement depuis un terminal personnel, sans jamais compromettre la confidentialité ni la valeur juridique des preuves.
Cette EPIC matérialise ProbatioVault dans la poche de l'utilisateur.
Problème de fond¶
Le mobile est à la fois le point de capture le plus naturel (screenshot, photo, document reçu) et le point le plus exposé :
- device potentiellement perdu, volé ou compromis ;
- contraintes fortes d'ergonomie et de performance ;
- stockage local limité et non persistant ;
- nécessité de chiffrement côté client avant tout envoi ;
- coexistence de plusieurs facteurs d'authentification (MFA, biométrie).
Sans une application mobile conçue zero-knowledge by design, le backend et la cryptographie ne suffisent pas à garantir la sécurité globale.
Solution de principe¶
L'EPIC MOBILE-iOS met en œuvre une application React Native iOS sécurisée, reposant sur les principes suivants :
- Chiffrement systématique côté client avant upload (Argon2id) ;
- Stockage des secrets exclusivement dans le Keychain iOS ;
- Authentification forte via SRP-6a, MFA et biométrie ;
- Auto-lock configurable avec purge mémoire et cache ;
- Upload en streaming avec suivi de progression ;
- Viewer sécurisé pour documents (PDF, images) ;
- Capture de preuves natives (screenshots scellés) ;
- Notifications push pour événements critiques ;
- UX guidée (onboarding progressif, états explicites).
L'application mobile n'est jamais un simple client : elle est un acteur cryptographique à part entière.
Invariants¶
- Aucune donnée sensible n'est stockée en clair sur le device.
- Les clés utilisateur ne quittent jamais le terminal.
- Toute capture est chiffrée avant transmission.
- L'inactivité entraîne un verrouillage et une purge mémoire.
- Les mécanismes biométriques ne remplacent jamais le chiffrement.
- L'application doit rester fonctionnelle sur device compromis partiellement (grâce au zero-knowledge).
User Stories associées¶
- PD-96 — Setup projet React Native iOS avec TypeScript
- PD-98 — Configurer Keychain pour stockage clés
- PD-97 — Implémenter chiffrement client-side avec Argon2id
- PD-99 — Créer écran login avec SRP-6a
- PD-176 — Créer onboarding interactif 5 étapes
- PD-100 — Créer écran liste documents avec lazy loading
- PD-101 — Implémenter upload document avec progress
- PD-102 — Créer viewer documents (PDF, images)
- PD-103 — Implémenter capture screenshot avec scellement
- PD-105 — Implémenter push notifications
- PD-106 — Créer écran settings avec gestion MFA
- PD-107 — Implémenter biometric authentication
- PD-174 — Implémenter auto-lock configurable avec effacement cache
Impacts transverses¶
-
Architecture Introduction d'un client cryptographique autonome et gestion du cycle de vie des clés côté mobile.
-
Sécurité Réduction drastique du risque device, chiffrement local, biométrie, auto-lock.
-
UX Équilibre sécurité / simplicité, parcours guidé et feedback utilisateur clair.
-
Backend / API Dépendance forte à la stabilité des endpoints Auth et Docs-API.
-
Juridique Capture de preuves directement à la source, réduction des contestations sur l'origine des documents.
-
Exploitation Gestion des versions mobiles, compatibilité iOS, incidents liés aux devices.
Références¶
- Architecture Executive ProbatioVault — v4.x
- Cahier d'Architecture Technique Mobile
- Spécifications Mobile Zero-Knowledge
- Normes : OWASP MASVS, bonnes pratiques iOS Security
- Décisions d'architecture (ADR) liées au mobile