Architecture de sécurité

Comment Snoq chiffre vos notes

AES-256-CBC avec HMAC-SHA256, dérivation de clé Argon2id, IV aléatoires par note. Aucun mot de passe, clé ou texte en clair ne quitte votre appareil.

AES-256-CBC
HMAC-SHA256
Argon2id
100% Local

Ce qui se passe quand vous tapez une note

Lorsque le chiffrement est activé et que vous enregistrez une note, Snoq chiffre le contenu avec AES-256 avant qu'il ne touche le disque. La clé utilisée pour chiffrer n'est pas votre mot de passe — elle en est dérivée via Argon2id, une fonction de dérivation de clé moderne à forte consommation mémoire, conçue spécifiquement pour rendre les attaques par force brute coûteuses.

Chaque note reçoit son propre vecteur d'initialisation (IV) aléatoire de 16 octets, de sorte que deux notes au contenu identique produisent un texte chiffré totalement différent. Chaque note chiffrée est ensuite authentifiée avec HMAC-SHA256, afin que toute altération — même un seul bit modifié — soit détectée avant toute tentative de déchiffrement.

Ce n'est pas de la théorie. C'est ainsi que chaque note est stockée, maintenant, sur votre appareil. Le reste de cette page décrit exactement comment — avec suffisamment de détails pour qu'un lecteur averti puisse vérifier que l'approche est correcte.

Ce que Snoq ne stocke jamais

Trois éléments sont délibérément absents du disque — et de la mémoire, dès que l'application est verrouillée.

  • Votre mot de passe, sous quelque forme que ce soit. Ni en clair, ni sous forme de hash réversible, nulle part. Snoq ne stocke qu'un vérificateur Argon2id capable de confirmer si une entrée est correcte, mais inutilisable pour récupérer le mot de passe ou les clés de chiffrement.
  • Les clés AES ou HMAC dérivées. Lorsque Snoq se verrouille, les deux tampons de clés en mémoire sont effacés (Array.Clear) et les références mises à null. Rien n'est mis en cache, sérialisé sur disque ou persisté intentionnellement.
  • Le contenu des notes en clair. Lorsque le chiffrement est actif, la base de données locale ne contient que du texte chiffré. Le texte en clair est brièvement en mémoire pendant que vous lisez ou éditez activement une note, puis supprimé.

Primitives cryptographiques

Les algorithmes et paramètres exacts utilisés par Snoq. Tous sont des constructions standardisées et bien éprouvées.

Usage Algorithme Paramètres
Vérification du mot de passe Argon2id 64 Mo de mémoire, 2 threads, 3 itérations, sortie 32 octets
Dérivation de clé Argon2id 64 Mo de mémoire, 2 threads, 3 itérations, sel 32 octets, sortie 64 octets divisée en clés de chiffrement + MAC, mot de passe avec préfixe de domaine
Chiffrement des notes AES-256-CBC IV aléatoire de 16 octets par note
Authentification HMAC-SHA256 Couvre IV + texte chiffré (Encrypt-then-MAC)
Génération du sel RandomNumberGenerator 32 octets depuis le CSPRNG du système

Argon2id est le standard RFC 9106 pour la dérivation de clé basée sur mot de passe et le vainqueur de la Password Hashing Competition.

Structure d'une note chiffrée

Chaque note stockée dans la base de données ressemble à ceci — un blob encodé en Base64 composé de trois parties concaténées.

Ciphertext layout (per note)
IV
16 octets
Aléatoire par note
HMAC
32 octets
Tag SHA-256
Texte chiffré AES-CBC
N octets
JSON Delta Quill chiffré

Encrypt-then-MAC. Le HMAC est calculé sur IV || texte chiffré et vérifié avant toute tentative de déchiffrement. Si le tag ne correspond pas — mauvaise clé, corruption, altération — la note est rejetée sans exposer de texte en clair. Cela empêche les attaques par oracle de padding qui peuvent affecter le mode CBC lorsque l'authentification est absente ou mal implémentée.

Le flux de déverrouillage

Ce qui se passe lorsque vous entrez votre mot de passe pour ouvrir vos notes.

  1. 1
    Vérification rapide. La boîte de dialogue exécute Argon2id contre le vérificateur de mot de passe stocké. S'il ne correspond pas, la tentative est rejetée immédiatement — rien d'autre ne se passe.
  2. 2
    Dériver les clés. Argon2id s'exécute à nouveau — cette fois avec un préfixe de domaine (snoq-enc:) — pour produire 64 octets de matériau de clé, divisés en une clé AES de 32 octets et une clé HMAC de 32 octets.
  3. 3
    Vérifier le canari. Un petit blob connu — chiffré avec les vraies clés lors de la définition initiale du mot de passe — est déchiffré avec les clés fraîchement dérivées et comparé en temps constant à la valeur attendue. Cela prouve que les clés dérivées correspondent à celles utilisées pour chiffrer vos notes.
  4. 4
    Le canari échoue ? Les clés fraîchement dérivées sont effacées et le déverrouillage est refusé. Une session déverrouillée existante reste intacte.
  5. 5
    Le canari réussit ? Les clés sont conservées en mémoire (sous forme de tableaux d'octets, nulle part ailleurs) et les notes deviennent lisibles. À partir de ce moment, chaque lecture déchiffre à la demande ; chaque écriture chiffre à la demande.

Pourquoi deux passes Argon2id ?

Le vérificateur et les clés de chiffrement sont dérivés avec des entrées différentes (le chemin de chiffrement préfixe le mot de passe avec snoq-enc: avant le hachage). C'est ce qu'on appelle la séparation de domaine : bien que les deux chemins utilisent le même mot de passe et le même sel, leurs sorties sont totalement indépendantes. Un attaquant qui obtiendrait le vérificateur n'aurait toujours rien d'utile pour déchiffrer les notes.

Changer votre mot de passe en toute sécurité

Re-chiffrer tout un coffre est une opération risquée — si elle échoue à mi-chemin, certaines notes seraient stockées avec l'ancienne clé et d'autres avec la nouvelle. Snoq évite cela grâce à un modèle de validation puis de commit.

1

Valider en mémoire

Chaque note chiffrée est déchiffrée avec les anciennes clés et re-chiffrée avec les nouvelles — entièrement en mémoire. Si l'ancien mot de passe est incorrect, la vérification HMAC échoue dès la première note, une exception est levée et rien n'est écrit sur le disque.

2

Commiter sur disque

Seulement si toutes les notes ont été re-chiffrées avec succès, Snoq parcourt la liste validée et écrit les notes mises à jour dans la base de données. Une erreur en cours d'opération laisse le coffre d'origine entièrement intact.

FAQ Sécurité

Il n'existe aucun mécanisme de récupération — et c'est voulu. Votre mot de passe est la seule entrée à partir de laquelle les clés de chiffrement peuvent être dérivées. Snoq ne le stocke jamais, ne le transmet jamais et n'a aucune porte dérobée. Si le mot de passe est perdu, les notes ne peuvent pas être déchiffrées. Veuillez conserver votre mot de passe dans un endroit sûr, par exemple un gestionnaire de mots de passe.

Snoq utilise AES-256-CBC combiné avec HMAC-SHA256 dans une construction Encrypt-then-MAC. Correctement implémenté — IV aléatoire par message, HMAC sur IV+texte chiffré, vérification en temps constant avant tout déchiffrement — cela fournit un chiffrement authentifié équivalent sur le plan de la sécurité à AES-GCM, avec un support bibliothèque multiplateforme plus large. La propriété importante est l'authentification, et Snoq authentifie chaque note.

Non. Les clés dérivées ne vivent qu'en mémoire, sous forme de tableaux d'octets au sein du service de chiffrement. Lorsque Snoq se verrouille (manuellement, via le raccourci clavier de verrouillage de l'interface, ou automatiquement), la clé AES et la clé HMAC sont toutes deux effacées avec Array.Clear et leurs références mises à null. Nous ne pouvons pas promettre que le système d'exploitation ne pagera jamais la mémoire sous pression extrême — aucune application en espace utilisateur ne peut le faire — mais Snoq ne persiste jamais intentionnellement les clés.

Non. Le vérificateur et les clés de chiffrement sont produits par deux passes Argon2id distinctes avec des entrées différentes (le chemin de chiffrement préfixe le mot de passe avec un préfixe de séparation de domaine). Bien que les deux utilisent le même sel, leurs sorties sont totalement indépendantes. Un attaquant qui copierait le vérificateur depuis votre fichier de paramètres n'aurait rien d'utile pour le déchiffrement — il devrait encore forcer le mot de passe par brute-force.

Snoq exporte votre coffre sous forme d'archive ZIP chiffrée. L'export conserve le chiffrement, de sorte qu'une sauvegarde sur une clé USB ou un disque cloud reste sécurisée. Pour la restauration, votre mot de passe est requis pour déchiffrer — le même modèle de sécurité que le coffre local.

Non. Il n'y a pas de synchronisation cloud, pas de télémétrie, pas de rapport de crash, pas de système de compte. Snoq vérifie ses propres mises à jour, mais le contenu des notes, les mots de passe et les habitudes d'utilisation ne quittent jamais votre ordinateur. Vous pouvez le vérifier avec n'importe quel moniteur réseau.

Prêt à l'essayer ?

Snoq est gratuit, installé en quelques secondes et ne demande jamais de compte.

Télécharger Snoq pour Windows