LA SÉCURITÉ N’EST PAS UNE OPTION. C’EST LA BASE.

Architecture de sécuritéAu cœur de VORQYN.

Du mot de passe maître et de la hiérarchie des clés aux commits authentifiés, à la récupération après incident et à la synchronisation chiffrée de bout en bout.

Argon2idHKDF-SHA-256XChaCha20-Poly1305Rust CoreAuthenticated Commits
Sommaire ⌄

01 / VISUAL SECURITY LAB

Explorer l’architecture

Explorez la dérivation des clés, les enregistrements chiffrés, les écritures, la synchronisation et leurs limites de sécurité à travers des schémas interactifs.

01

INTERACTIVE · SECURITY ENGINEERING

Architecture de sécurité

L’interface Flutter gère l’affichage ; le cœur Rust applique les règles cryptographiques, les contrôles de format et les transitions d’état. Les adaptations système et le transport sont séparés.
Explication simple

L’interface Flutter gère l’affichage ; le cœur Rust applique les règles cryptographiques, les contrôles de format et les transitions d’état. Les adaptations système et le transport sont séparés.

Limite de sécurité

Un client compromis peut révéler du texte clair lors d’un usage légitime.

Détails techniques

L’interface Flutter gère l’affichage ; le cœur Rust applique les règles cryptographiques, les contrôles de format et les transitions d’état. Les adaptations système et le transport sont séparés.

Un client compromis peut révéler du texte clair lors d’un usage légitime.

Lire le chapitre ↗
02

INTERACTIVE · SECURITY ENGINEERING

Mot de passe + Secret Factor

Mot de passe maître
Argon2id v1.3
Secret Factor (256 bits)
CSPRNG → 32 bytes
↓
HKDF-SHA-256
Clé de déverrouillage → enveloppe → LPRK
Seul le coffre chiffré est volé. Le Secret Factor manque ; le mot de passe seul ne suffit pas.
Explication simple

Le Secret Factor est généré aléatoirement sur 256 bits, indépendamment du mot de passe. Il renforce certains scénarios de vol du coffre, mais un logiciel malveillant ayant les mêmes droits peut aussi voler le fichier facteur.

Limite de sécurité

Un Factor local ne constitue pas automatiquement une MFA indépendante.

Détails techniques

Le Secret Factor est généré aléatoirement sur 256 bits, indépendamment du mot de passe. Il renforce certains scénarios de vol du coffre, mais un logiciel malveillant ayant les mêmes droits peut aussi voler le fichier facteur.

Un Factor local ne constitue pas automatiquement une MFA indépendante.

Lire le chapitre ↗
03

INTERACTIVE · SECURITY ENGINEERING

Hiérarchie des clés

Mot de passe maître + Secret Factor (256 bits)
Clé de déverrouillage → enveloppe → LPRK
LPRK
Vault Epoch Key
DEK du record
Collection Keys
La clé de déverrouillage ouvre une enveloppe protégeant une clé racine locale LPRK indépendante. Des clés Vault Epoch, DEK de révision et Collection Keys séparent ouverture, chiffrement et partage.
Explication simple

La clé de déverrouillage ouvre une enveloppe protégeant une clé racine locale LPRK indépendante. Des clés Vault Epoch, DEK de révision et Collection Keys séparent ouverture, chiffrement et partage.

Limite de sécurité

Sans clés de récupération, la perte des secrets peut être définitive.

Détails techniques

La clé de déverrouillage ouvre une enveloppe protégeant une clé racine locale LPRK indépendante. Des clés Vault Epoch, DEK de révision et Collection Keys séparent ouverture, chiffrement et partage.

Sans clés de récupération, la perte des secrets peut être définitive.

Lire le chapitre ↗
04

INTERACTIVE · SECURITY ENGINEERING

Chiffrement par enregistrement

Login ADEK A1Revision 1
Login BDEK B1Revision 1
Login CDEK C1Revision 1
Login DDEK D1Revision 1
Les autres records restent inchangés
Explication simple

Chaque modification produit une nouvelle révision chiffrée avec un DEK aléatoire de 256 bits. Les révisions publiées ne sont pas remplacées directement.

Limite de sécurité

Les anciennes révisions peuvent rester selon la politique de conservation.

Détails techniques

Chaque modification produit une nouvelle révision chiffrée avec un DEK aléatoire de 256 bits. Les révisions publiées ne sont pas remplacées directement.

Les anciennes révisions peuvent rester selon la politique de conservation.

Lire le chapitre ↗
05

INTERACTIVE · SECURITY ENGINEERING

Écriture atomique et récupération

VALIDATEDEKENCRYPTWRITE TEMPFLUSHPUBLISH RECORDPUBLISH COMMITUPDATE HEAD
L’ancien commit reste valide. L’objet temporaire incomplet n’est pas un état confirmé.
Explication simple

L’écriture suit une séquence : valider, créer une révision et un DEK, chiffrer, écrire temporairement, synchroniser, publier les objets, puis publier le commit et actualiser le head.

Limite de sécurité

Des objets absents ou du matériel défaillant peuvent empêcher la récupération.

Détails techniques

L’écriture suit une séquence : valider, créer une révision et un DEK, chiffrer, écrire temporairement, synchroniser, publier les objets, puis publier le commit et actualiser le head.

Des objets absents ou du matériel défaillant peuvent empêcher la récupération.

Lire le chapitre ↗
06

INTERACTIVE · SECURITY ENGINEERING

Monolithe ou stockage objet

Monolithe naïf (illustration)
100 GB VAULT
Δ RECORD
Stockage objet
BLOBRECRECBLOBRECRECBLOBRECRECBLOBRECREC
Δ RECORD + INDEX + COMMIT
Changer un mot de passe dans un coffre de 100 Go crée normalement de nouveaux objets ciblés plutôt que de réécrire tous les objets. Les octets transférés doivent être mesurés.
Explication simple

Changer un mot de passe dans un coffre de 100 Go crée normalement de nouveaux objets ciblés plutôt que de réécrire tous les objets. Les octets transférés doivent être mesurés.

Limite de sécurité

D’autres architectures utilisent aussi efficacement la synchronisation delta.

Détails techniques

Changer un mot de passe dans un coffre de 100 Go crée normalement de nouveaux objets ciblés plutôt que de réécrire tous les objets. Les octets transférés doivent être mesurés.

D’autres architectures utilisent aussi efficacement la synchronisation delta.

Lire le chapitre ↗
07

INTERACTIVE · SECURITY ENGINEERING

Graphe de commits authentifiés

Commit A
Commit B
Commit C · Device 1
Commit D · Device 2
Merge E
Un fournisseur malveillant peut dissimuler des commits authentiques.
Explication simple

Les commits authentifiés référencent les objets et leurs parents. Des appareils peuvent créer plusieurs branches valides ; l’horodatage seul ne doit pas décider.

Limite de sécurité

Un fournisseur malveillant peut dissimuler des commits authentiques.

Détails techniques

Les commits authentifiés référencent les objets et leurs parents. Des appareils peuvent créer plusieurs branches valides ; l’horodatage seul ne doit pas décider.

Un fournisseur malveillant peut dissimuler des commits authentiques.

Lire le chapitre ↗
08

INTERACTIVE · SECURITY ENGINEERING

Synchronisation de bout en bout

Appareil A
⇆AEAD · CIPHERTEXT
Fournisseur
⇆AEAD · CIPHERTEXT
Appareil B
Modifications locales sans connexion, envoi ultérieur.
Explication simple

Les clients chiffrent avant l’envoi et vérifient après téléchargement. Les nouveaux objets précèdent le commit qui les référence ; le travail hors ligne crée éventuellement des branches.

Limite de sécurité

Le fournisseur peut supprimer, retarder ou rejouer des objets.

Détails techniques

Les clients chiffrent avant l’envoi et vérifient après téléchargement. Les nouveaux objets précèdent le commit qui les référence ; le travail hors ligne crée éventuellement des branches.

Le fournisseur peut supprimer, retarder ou rejouer des objets.

Lire le chapitre ↗
09

INTERACTIVE · SECURITY ENGINEERING

Intégrité ≠ fraîcheur

Commit C1Authentique mais ancienAEAD ✓
←
Commit C2Commit récent confirméAEAD ✓
AEAD authentifie un ancien état, pas sa fraîcheur.
Explication simple

Un AEAD valide ne prouve pas que le coffre est récent. Un ancrage de fraîcheur indépendant est nécessaire pour détecter de manière fiable certains retours arrière complets.

Limite de sécurité

Un retour arrière complet nécessite un ancrage indépendant fiable.

Détails techniques

Un AEAD valide ne prouve pas que le coffre est récent. Un ancrage de fraîcheur indépendant est nécessaire pour détecter de manière fiable certains retours arrière complets.

Un retour arrière complet nécessite un ancrage indépendant fiable.

Lire le chapitre ↗
10

INTERACTIVE · SECURITY ENGINEERING

Droits Business & Enterprise

ROLE
PRIVATE
FINANCE
DEVELOPMENT
Owner
✓
✓
✓
Finance User
—
✓
—
Developer
—
—
✓
Les clés des Collections, et non les seuls rôles serveur, limitent l’accès
Explication simple

Les rôles Owner, Admin, Editor et Viewer ne remplacent pas les permissions cryptographiques. Les Collections disposent de clés séparées ; les textes déjà connus ne peuvent être retirés.

Limite de sécurité

Un texte clair déjà connu ne peut pas être retiré rétroactivement.

Détails techniques

Les rôles Owner, Admin, Editor et Viewer ne remplacent pas les permissions cryptographiques. Les Collections disposent de clés séparées ; les textes déjà connus ne peuvent être retirés.

Un texte clair déjà connu ne peut pas être retiré rétroactivement.

Lire le chapitre ↗
11

INTERACTIVE · SECURITY ENGINEERING

Modèle de menace

Choisir un scénario

Coffre chiffré volé

Détails techniques

Argon2id, AEAD et Factor séparé

Limite de sécurité

Protection du Factor et qualité du mot de passe

Explication simple

Le modèle couvre vol, manipulation, panne, disque plein, serveur compromis, rollback et appareil infecté. Chaque protection conserve une limite explicite.

Limite de sécurité

Aucune protection isolée ne couvre toutes les menaces.

Détails techniques

Le modèle couvre vol, manipulation, panne, disque plein, serveur compromis, rollback et appareil infecté. Chaque protection conserve une limite explicite.

Aucune protection isolée ne couvre toutes les menaces.

Lire le chapitre ↗
12

INTERACTIVE · SECURITY ENGINEERING

Audit et preuves

01   Architecture02   Implementation03   Automated tests04   Platform validation05   Independent audit
L’architecture définit des règles de sécurité vérifiables et des frontières de confiance précises.
Explication simple

Les audits exigent des contrats vérifiables : formats, KDF, AAD, nonce, commits, erreurs, persistance, signatures et builds effectivement livrés.

Limite de sécurité

Les invariants de sécurité sont reliés aux contrats techniques, au code, aux tests et à la validation des plateformes.

Détails techniques

Les audits exigent des contrats vérifiables : formats, KDF, AAD, nonce, commits, erreurs, persistance, signatures et builds effectivement livrés.

Les invariants de sécurité sont reliés aux contrats techniques, au code, aux tests et à la validation des plateformes.

Lire le chapitre ↗

02 / TECHNICAL REFERENCE · V1.2

Référence technique

La référence technique présente les mécanismes cryptographiques, formats, hypothèses de menace, erreurs et choix d’architecture. Cette édition contient des synthèses techniques et des liens vers la référence allemande complète.

01La sécurité est fondamentale+

La sécurité couvre tout le cycle de vie des secrets : création, consultation, modification, synchronisation, restauration et suppression. Les pannes font partie du modèle, pas seulement les attaques.

Spécification originale (allemand) ↗

02Six principes de sécurité+

Confidentialité, intégrité, cohérence, récupération, disponibilité et souveraineté sont distinctes. Des données authentiques peuvent être anciennes et des données cohérentes peuvent devenir indisponibles.

Spécification originale (allemand) ↗

03Architecture du système+

L’interface Flutter gère l’affichage ; le cœur Rust applique les règles cryptographiques, les contrôles de format et les transitions d’état. Les adaptations système et le transport sont séparés.

Spécification originale (allemand) ↗

04Primitives cryptographiques+

Argon2id v1.3 (128 MiB, 3 itérations, 4 voies, sortie 256 bits), HKDF-SHA-256 et XChaCha20-Poly1305 (clé 256 bits, nonce 192 bits, tag 128 bits) remplissent des tâches distinctes.

Argon2id v1.3 · 128 MiB / 3 / 4 · HKDF-SHA-256 · XChaCha20-Poly1305

Spécification originale (allemand) ↗

05Mot de passe maître et Secret Factor+

Le Secret Factor est généré aléatoirement sur 256 bits, indépendamment du mot de passe. Il renforce certains scénarios de vol du coffre, mais un logiciel malveillant ayant les mêmes droits peut aussi voler le fichier facteur.

VQYFACT1 · 32-byte CSPRNG secret · HKDF-SHA-256

Spécification originale (allemand) ↗

06Hiérarchie des clés+

La clé de déverrouillage ouvre une enveloppe protégeant une clé racine locale LPRK indépendante. Des clés Vault Epoch, DEK de révision et Collection Keys séparent ouverture, chiffrement et partage.

Unlock → Envelope → LPRK → VEK → DEK

Spécification originale (allemand) ↗

07Données associées authentifiées+

Les données associées authentifiées (AAD) lient le chiffré à son coffre, objet, révision, version et type. Elles empêchent certaines substitutions ; l’AAD lui-même n’est pas automatiquement secret.

AAD: vault_id | object_id | revision_id | epoch | version

Spécification originale (allemand) ↗

08Un coffre logique, plusieurs objets chiffrés+

Le coffre logique contient des enregistrements chiffrés, des blobs, des commits et des pointeurs head. Le head est reconstructible et n’est pas l’unique source d’authenticité.

meta/ · commits/ · records/ · blobs/ · heads/

Spécification originale (allemand) ↗

09Enregistrements immuables et révisions+

Chaque modification produit une nouvelle révision chiffrée avec un DEK aléatoire de 256 bits. Les révisions publiées ne sont pas remplacées directement.

Spécification originale (allemand) ↗

10Graphe de commits authentifié+

Les commits authentifiés référencent les objets et leurs parents. Des appareils peuvent créer plusieurs branches valides ; l’horodatage seul ne doit pas décider.

commit ID · vault ID · parent IDs · record refs

Spécification originale (allemand) ↗

11Transaction d’écriture complète+

L’écriture suit une séquence : valider, créer une révision et un DEK, chiffrer, écrire temporairement, synchroniser, publier les objets, puis publier le commit et actualiser le head.

VALIDATE → ENCRYPT → WRITE → FLUSH → PUBLISH RECORD → PUBLISH COMMIT → HEAD

Spécification originale (allemand) ↗

12Coupure de courant et récupération+

Après un incident, les objets et commits sont vérifiés. Un état unique et complet peut être restauré ; plusieurs sommets valides exigent une gestion explicite des conflits.

Spécification originale (allemand) ↗

13Disque plein+

Un disque peut se remplir pendant l’écriture. Toute opération et tout flush sont vérifiés ; un commit ne doit pas confirmer des objets incomplets.

Spécification originale (allemand) ↗

14Sécurité du système de fichiers+

Les garanties NTFS, Linux, macOS et mobiles diffèrent. Les liens symboliques, les courses TOCTOU et le matériel défectueux limitent la robustesse réelle.

Spécification originale (allemand) ↗

15Pièces jointes et blocs chiffrés+

Les fichiers volumineux sont divisés en chunks chiffrés, par exemple 4 MiB de données par chunk. Leur identité et leur ordre sont authentifiés ; le hash porte sur le ciphertext.

4 MiB chunk profile · SHA-256(ciphertext)

Spécification originale (allemand) ↗

16Le coffre de 100 Go+

Changer un mot de passe dans un coffre de 100 Go crée normalement de nouveaux objets ciblés plutôt que de réécrire tous les objets. Les octets transférés doivent être mesurés.

Spécification originale (allemand) ↗

17Manifestes, index et évolutivité+

Les manifestes authentifiés et les index hiérarchiques répartissent les références. La racine doit rester cryptographiquement liée aux objets finaux.

Spécification originale (allemand) ↗

18Synchronisation chiffrée de bout en bout+

Les clients chiffrent avant l’envoi et vérifient après téléchargement. Les nouveaux objets précèdent le commit qui les référence ; le travail hors ligne crée éventuellement des branches.

Spécification originale (allemand) ↗

19SFTP, WebDAV et stockage objet+

SFTP, WebDAV/HTTPS et stockage objet n’offrent pas les mêmes garanties de création conditionnelle, renommage ou listing. Chaque adaptateur respecte les propriétés réelles du fournisseur.

SFTP · WebDAV/HTTPS · S3-like

Spécification originale (allemand) ↗

20Conflits entre appareils+

Deux appareils peuvent modifier la même entrée hors ligne. Les branches sont conservées puis fusionnées explicitement plutôt qu’écrasées selon la dernière horloge.

Spécification originale (allemand) ↗

21Protection contre le retour arrière+

Un AEAD valide ne prouve pas que le coffre est récent. Un ancrage de fraîcheur indépendant est nécessaire pour détecter de manière fiable certains retours arrière complets.

Spécification originale (allemand) ↗

22Autorisations Business et Enterprise+

Les rôles Owner, Admin, Editor et Viewer ne remplacent pas les permissions cryptographiques. Les Collections disposent de clés séparées ; les textes déjà connus ne peuvent être retirés.

Owner · Admin · Editor · Viewer

Spécification originale (allemand) ↗

23Rotation des clés+

Changer le mot de passe maître peut nécessiter seulement un nouveau wrapping de l’enveloppe. Une clé de données compromise peut exiger un rechiffrement réel.

Spécification originale (allemand) ↗

24Sauvegarde et reprise après sinistre+

Une sauvegarde complète contient métadonnées, enveloppes, commits, records, chunks et informations de récupération. Le restore doit vérifier l’authenticité et l’intégralité.

Spécification originale (allemand) ↗

25Suppression et tombstones+

La suppression produit des tombstones authentifiés. Des révisions peuvent rester dans les sauvegardes ; une destruction physique universelle sur SSD ou cloud n’est pas garantie.

Spécification originale (allemand) ↗

26Clés privées et réauthentification+

Exporter une clé privée SSH exige une réauthentification vérifiée dans le cœur Rust, pas un simple dialogue. En cas d’échec, l’export reste interdit.

Spécification originale (allemand) ↗

27Protection à l’exécution+

Le verrouillage réduit la durée de vie des secrets contrôlés ; la zeroization ne garantit pas l’effacement de toutes les copies dans Dart, le presse-papiers, la mémoire ou les dumps.

Spécification originale (allemand) ↗

28Confidentialité et zero knowledge+

Le fournisseur de stockage ne reçoit pas les clés de déchiffrement du coffre, mais les tailles, nombres d’objets, horaires et métadonnées réseau peuvent rester visibles.

Spécification originale (allemand) ↗

29Chaîne d’approvisionnement logicielle+

Les dépendances, fonctionnalités activées, advisories, configurations et vrais binaires de production sont dans le périmètre de revue.

Spécification originale (allemand) ↗

30Modèle de menace+

Le modèle couvre vol, manipulation, panne, disque plein, serveur compromis, rollback et appareil infecté. Chaque protection conserve une limite explicite.

Spécification originale (allemand) ↗

31Audits et preuves+

Les audits exigent des contrats vérifiables : formats, KDF, AAD, nonce, commits, erreurs, persistance, signatures et builds effectivement livrés.

Architecture → Implementation → Tests → Platform → Independent review

Spécification originale (allemand) ↗

32Limites explicites+

Il n’existe aucune promesse de sécurité absolue sur poste compromis, de restauration sans clés ou d’effacement garanti partout. Les tests ne sont pas des certifications.

Spécification originale (allemand) ↗

33Questions fréquentes+

Les réponses distinguent vol du coffre, perte du facteur, usage hors ligne, limites du cloud et différence entre authenticité et fraîcheur.

Spécification originale (allemand) ↗

34La sécurité par l’architecture+

Argon2id, Secret Factor, HKDF, AEAD, DEK séparés, AAD et commits authentifiés forment des couches de protection complémentaires sur tout le cycle de vie.

Spécification originale (allemand) ↗

Ingénierie de sécurité

La sécurité est un choix d’architecture.

Une cryptographie transparente, des frontières de confiance explicites et des flux vérifiables structurent VORQYN, du mot de passe maître au commit authentifié.

Retour à l’accueil ↗