feat(android): end-to-end read path validated on device, add the container diagnostic
GET in 80 ms, decryption in 3893 ms, entries and trash counted, second call answers 304. try-open.js opens a container with Node so a failure can be attributed: a GCM tag that does not verify means wrong password OR altered file, and the app cannot tell which.
This commit is contained in:
@@ -42,6 +42,35 @@ ce qui est acceptable et compréhensible pour l'utilisateur.
|
||||
> jamais toucher le disque autrement que chiffré sous la clé du Keystore, et la
|
||||
> sauvegarde automatique Android doit être désactivée pour l'application.
|
||||
|
||||
## Chaîne validée de bout en bout
|
||||
|
||||
Sur appareil : `GET` authentifié (80 ms) → déchiffrement (3893 ms) → lecture du
|
||||
JSON, entrées vivantes et corbeille comptées séparément. Second appel : **304**,
|
||||
rien de retéléchargé, rien de re-déchiffré.
|
||||
|
||||
**L'ETag n'est retenu que si le déchiffrement a réussi.** Le conserver dès la
|
||||
réception paraît naturel et c'est un piège : après un échec, le prochain appel
|
||||
répond 304 et l'application se retrouve sans données tout en se croyant à jour.
|
||||
L'ETag appartient au **clair détenu**, pas au téléchargement.
|
||||
|
||||
## Diagnostiquer un échec de déchiffrement
|
||||
|
||||
`try-open.js` ouvre un conteneur avec Node, donc avec les primitives du
|
||||
navigateur :
|
||||
|
||||
```bash
|
||||
node try-open.js <fichier> <mot-de-passe>
|
||||
```
|
||||
|
||||
Il sépare deux causes que l'application ne peut pas distinguer — un tag GCM qui
|
||||
ne vérifie pas signifie *mot de passe faux OU fichier altéré*, sans plus. Si
|
||||
Node ouvre le fichier et pas le client, le défaut est dans le client.
|
||||
|
||||
> Le mot de passe de sync n'est **pas** le mot de passe maître. Il n'est affiché
|
||||
> nulle part : `prefs.bin` le garde chiffré par DPAPI, et l'application sait
|
||||
> seulement le définir. En cas d'oubli, le redéfinir puis relancer un sync pour
|
||||
> rechiffrer l'instantané distant.
|
||||
|
||||
## Fichiers
|
||||
|
||||
| | |
|
||||
|
||||
Reference in New Issue
Block a user