Modèle de menace et objectifs
L’article part du scénario où le disque est perdu ou volé. L’objectif principal est de garantir que les données restent illisibles sans le mot de passe. Le second scénario, la protection contre la falsification physique, est mentionné mais exclu du reste de l’analyse, car il nécessite du matériel spécialisé.
Architecture du chiffrement sous NetBSD
NetBSD utilise le pilote cgd (cryptographic disk) pour créer un dispositif de bloc virtuel. Le disque est d’abord découpé avec disklabel : la partition d (exemple /dev/wd0d) est marquée cgd. Le tableau de partition montre une taille de 23 067 072 blocs, correspondant à environ 11 GB d’espace chiffré.
Le fichier de configuration est généré avec la commande :
# cgdconfig -g -k argon2id -o /etc/cgd/wd0d adiantum 256Le paramètre -k argon2id indique que la clé de 256 bits est dérivée d’un mot de passe grâce à l’algorithme Argon2id, reconnu pour sa résistance aux attaques par dérivation de clé. Le chiffrement effectif utilise adiantum, un algorithme optimisé pour les processeurs sans accélération AES. Cette combinaison permet de sécuriser le disque même sur du matériel dépourvu d’instructions AES.
Après la création du fichier, la clé est chargée avec :
# cgdconfig -V re-enter cgd0 /dev/wd0dLe dispositif cgd0 apparaît alors comme un disque normal, mais chaque lecture/écriture passe par le module cgd, qui applique le chiffrement/déchiffrement en temps réel.
Choix des répertoires à protéger
L’auteur classe les données en deux groupes : les fichiers du système (ex. /bin/sh) et les fichiers modifiés par l’utilisateur. Les binaires du système sont généralement identiques sur toutes les installations NetBSD et peuvent être rendus en lecture seule, ce qui réduit le besoin de les chiffrer. En revanche, les répertoires /home, /var, /root, /usr/pkg, /usr/local et /etc contiennent des données susceptibles d’être sensibles (logs, bases de messagerie, configurations VPN, etc.).
Le texte recommande d’envisager le chiffrement de /home comme point d’entrée, mais souligne que les dumps de crash stockés dans /var/crash peuvent révéler le contenu de la mémoire. Ainsi, une stratégie intermédiaire consiste à chiffrer une partition partagée entre /usr et /var, tout en conservant un petit / non chiffré pour le chargeur et les scripts de démarrage.
Limites et considérations de performance
Le chiffrement complet du disque nécessite un point d’entrée avant le chargement du noyau. NetBSD stocke des métadonnées (selon le texte, le sel et les paramètres Argon2id) sur le disque, ce qui implique que le mot de passe doit être saisi par un logiciel déjà en cours d’exécution. Sans module matériel dédié, le processus de dérivation de clé Argon2id impose un coût CPU notable, surtout sur des machines anciennes. Les processeurs modernes avec AES‑NI bénéficient d’une accélération matérielle, mais le texte indique que adiantum reste performant même sans AES‑NI.
Enfin, le recours à un ramdisk non chiffré (cgdroot) simplifie le démarrage mais complique la récupération en cas de panne, car les outils de secours doivent pouvoir accéder à ce ramdisk. L’approche présentée conserve le processus d’installation standard de NetBSD, ce qui facilite la mise en œuvre pour les administrateurs habitués au système.