Sous FreeBSD, le chiffrement de l'espace de pagination est
simple à mettre en place et est possible depuis FreeBSD
5.3-RELEASE. En fonction de la version de FreeBSD utilisée,
différentes options sont disponibles et la configuration
peut légèrement varier. Depuis FreeBSD 6.0-RELEASE,
les systèmes de chiffrage gbde(8) ou geli(8)
peuvent être utilisé à cet effet. Avec les
versions antérieures, seul gbde(8) est disponible.
Les deux systèmes utilisent la procédure rc.d nommée
encswap
.
La section précédente, Chiffrer les partitions d'un disque, contient une courte explication sur les différents systèmes de chiffrage.
Comme pour le chiffrage des partitions d'un disque, chiffrer l'espace de pagination a pour but la protection des informations sensibles. Imaginez une application qui, par exemple, traite des mots de passe. Tant que ces mots de passe résident en mémoire tout va pour le mieux. Cependant, si le système d'exploitation commence à transférer des pages mémoires vers l'espace de pagination en vue de libérer de la mémoire pour d'autres applications, les mots de passe peuvent être écrits en clair sur les plateaux du disque et seront faciles à récupérer par une personne malveillante. Chiffrer l'espace de pagination peut être une solution contre ce scénario.
Pour le reste de cette section,
ad0s1b
sera la partition
réservée à l'espace de
pagination.
Jusqu'ici l'espace de pagination n'a jamais été chiffré. Il est fort possible qu'il y ait déjà des mots de passe ou toute autre donnée sensible de présents en clair sur les plateaux du disque. Afin d'y remédier, les données de la partition de pagination doivent être écrasées avec des données aléatoires:
#
dd if=/dev/random of=/dev/ad0s1b bs=1m
Si FreeBSD 6.0-RELEASE ou une version plus récente est
utilisée, le suffixe .bde
doit
être ajouté au nom de périphérique
sur la ligne du fichier /etc/fstab
correspondant à cet espace de pagination:
# Device Mountpoint FStype Options Dump Pass# /dev/ad0s1b.bde none swap sw 0 0
Pour les systèmes antérieurs à FreeBSD
6.0-RELEASE, la ligne suivante doit également
être ajoutée à
/etc/rc.conf
:
gbde_swap_enable="YES"
La procédure pour le chiffrage de l'espace de
pagination avec geli(8) est similaire à celle pour
l'utilisation de gbde(8). Le suffixe
.eli
doit être ajouté au nom
de périphérique sur la ligne du fichier
/etc/fstab
correspondant à cet
espace de pagination:
# Device Mountpoint FStype Options Dump Pass# /dev/ad0s1b.eli none swap sw 0 0
Par défaut, geli(8) utilise l'algorithme AES avec une longueur de clé de 256bits.
Les valeurs par défaut peuvent être
modifiées en utilisant l'option
geli_swap_flags
dans le fichier
/etc/rc.conf
. La ligne suivante demande
à la procédure rc.d encswap
de créer des partitions de pagination en utilisant
l'algorithme Blowfish avec une clé de 128 bits de
longueur, une taille de secteur de 4 kilo-octets et avec
l'option « detach on last close » (détacher
après démontage de la partition)
activée:
geli_swap_flags="-a blowfish -l 128 -s 4096 -d"
Veuillez vous référer à la
description de la commande onetime
dans la
page de manuel geli(8) pour une liste des options
possibles.
Une fois que le système a été
redémarré, le fonctionnement correct de l'espace
de pagination peut être vérifié en
utilisant la commande swapinfo
.
Si gbde(8) est utilisé:
%
swapinfo
Device 1K-blocks Used Avail Capacity /dev/ad0s1b.bde 542720 0 542720 0%
Si geli(8) est utilisé:
%
swapinfo
Device 1K-blocks Used Avail Capacity /dev/ad0s1b.eli 542720 0 542720 0%
Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Pour toutes questions à propos de FreeBSD, lisez la
documentation avant de contacter
<questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez
<doc@FreeBSD.org>.