v0.2.6-rel.001

This commit is contained in:
2026-08-22 14:16:31 +02:00
parent 79fee574d9
commit 3c9c1d1349
32 changed files with 428 additions and 279 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/IDEAS.md -->
<!-- version: 23 -->
<!-- version: 24 -->
# Idées à explorer
@@ -204,9 +204,9 @@ Chaque format doit être étudié côté sécurité, round-trip, secret/public,
### `.kspwallet` V2 binaire et formats futurs
**Status :** V2 retenu et matérialisé en `0.2.6-pre.015` / facteurs futurs à explorer
**Status :** Transférée vers une décision/règle pour V2 stable en `0.2.6` / facteurs futurs à explorer
Le JSON V1 actuel reste le format historique stable et lisible. Base64 seul napporte aucune sécurité et resterait un texte trivialement décodable avec environ un tiers de surcharge. La décision initialement envisagée pour `0.2.7` a été ramenée dans `0.2.6` : `pre.015` définit un **wire binaire V2 KSP** avec magic/framing explicite, entiers big-endian, identifiants numériques stables, longueurs bornées et lecture/écriture canonique stricte. V1 reste supporté sans réinterprétation ; la façade de lecture multi-version, la création/persistence V2, les APIs `_v1/_v2` et la politique `DEFAULT_WALLET_FORMAT = V2` sont matérialisées en `pre.016`, puis la migration explicite OWNER-authentifiée V1 -> V2 est matérialisée en `pre.017`. Le V2 ne modifie pas à lui seul les garanties cryptographiques de VIEW/OWNER, keypair ou import/export.
Le JSON V1 reste le format historique stable et lisible. Base64 seul napporte aucune sécurité et resterait un texte trivialement décodable avec environ un tiers de surcharge. La décision initialement envisagée pour `0.2.7` a été ramenée dans `0.2.6` : `pre.015` définit un **wire binaire V2 KSP** avec magic/framing explicite, entiers big-endian, identifiants numériques stables, longueurs bornées et lecture/écriture canonique stricte. V1 reste supporté sans réinterprétation ; la façade de lecture multi-version, la création/persistence V2, les APIs `_v1/_v2` et la politique `DEFAULT_WALLET_FORMAT = V2` sont matérialisées en `pre.016`, puis la migration explicite OWNER-authentifiée V1 -> V2 est matérialisée en `pre.017`. Le V2 ne modifie pas à lui seul les garanties cryptographiques de VIEW/OWNER, keypair ou import/export.
V2 est désormais réservé au wire binaire KSP sans second facteur. Un futur V3 pourra introduire dautres modèles dautorisation, notamment password + facteur supplémentaire. `ksp-wallet-lib` restera propriétaire du format, des challenges et de la vérification, mais toute interaction réelle (OTP, enrollment/recovery, hardware/WebAuthn, validation distante) exigera une évolution de Wallet Desk ou du client concerné. Un seed TOTP stocké uniquement dans le même fichier que le wallet ne doit pas être présenté automatiquement comme un second facteur indépendant contre un attaquant possédant ce fichier.