Gestion des systèmes de fichiers ZFS dans Oracle®Solaris 11.2

Quitter la vue de l'impression

Mis à jour : Décembre 2014
 
 

Chiffrement des systèmes de fichiers ZFS

Le chiffrement se définit comme le processus de codage de données à des fins de confidentialité ; le propriétaire des données nécessite une clé pour pouvoir accéder aux données codées. Les avantages de l'utilisation du chiffrement ZFS sont les suivants :

  • Le chiffrement ZFS est intégré à l'ensemble des commandes ZFS. A l'instar d'autres opérations ZFS, les opérations de chiffrement telles que la modification et le renouvellement de clés sont effectuées en ligne.

  • Vous pouvez utiliser vos pools de stockage existants pour autant qu'ils aient été mis à niveau. Vous avez la possibilité de chiffrer des systèmes de fichiers spécifiques.

  • Les données sont chiffrées à l'aide de la norme AES (Advanced Encryption Standard, Norme de chiffrement avancé) avec des longueurs de clé de 128, 192 et 256 dans les modes de fonctionnement CCM et GCM.

  • Le chiffrement ZFS utilise la structure cryptographique Oracle Solaris, ce qui lui donne automatiquement accès aux éventuelles accélérations matérielles et implémentations logicielles optimisées disponibles des algorithmes de chiffrement.

  • A l'heure actuelle, vous ne pouvez pas chiffrer un système de fichiers root ZFS ou autres composants de système d'exploitation, tels que le répertoire /var, même s'il s'agit d'un système de fichiers distinct.

  • Le chiffrement ZFS peut être transmis aux systèmes de fichiers descendants.

  • Un utilisateur standard peut créer un système de fichiers chiffré et gérer les activités clés si les droits d'accès create, mount, keysource, checksum et encryption lui ont été attribués.

Vous pouvez définir une stratégie de chiffrement lors de la création d'un système de fichiers ZFS, mais cette stratégie ne peut pas être modifiée. Par exemple, la propriété de chiffrement est activée lors de la création du système de fichiers tank/home/darren. La stratégie de chiffrement par défaut consiste à demander une phrase de passe comptant au moins 8 caractères.

# zfs create -o encryption=on tank/home/darren
Enter passphrase for 'tank/home/darren': xxxxxxx
Enter again: xxxxxxxx

Assurez-vous que le chiffrement est activé sur le système de fichiers. Par exemple :

# zfs get encryption tank/home/darren
NAME              PROPERTY    VALUE        SOURCE
tank/home/darren  encryption  on           local

L'algorithme de chiffrement par défaut est aes-128-ccm lorsque la valeur de chiffrement d'un système de fichiers est on.

Une clé d'encapsulation est utilisée pour chiffrer les clés de chiffrement effectives des données. La clé d'encapsulation est transmise de la commande zfs au noyau, comme dans l'exemple ci-dessus au moment de la création du système de fichiers chiffré. Une clé d'encapsulation peut se trouver dans un fichier (au format raw ou hexadécimal) ou être dérivée d'une phrase de passe.

Le format et l'emplacement de la clé d'encapsulation sont spécifiés dans la propriété keysource de la manière suivante :

keysource=format,location
  • Formats possibles :

    • raw : octets bruts de la clé

    • hex : chaîne de clé hexadécimale

    • passphrase : chaîne de caractères générant une clé

  • Emplacements possibles :

    • prompt – vous êtes invité à saisir une clé ou une phrase de passe lorsque le système de fichiers est créé ou monté

    • file:///filename – Emplacement dans le système de fichiers de la clé ou phrase de passe.

    • pkcs11 – URI décrivant l'emplacement d'une clé ou d'une phrase de passe dans un jeton PKCS#11

    • https://location – Emplacement sur le serveur sécurisé de la clé ou phrase de passe. Le transport d'informations de clé non chiffrées à l'aide de cette méthode n'est pas recommandé. Un GET sur l'URL retourne seulement la valeur de clé ou la phrase de passe, en fonction de ce qui a été demandé dans la partie format de la propriété keysource.

      Lors de l'utilisation d'un localisateur https:// pour la keysource, le certificat que ce serveur présente doit être sécurisé par libcurl et OpenSSL. Ajoutez votre propre ancre sécurisée ou certificat autosigné au magasin de certificats dans /etc/openssl/certs. Placez le certificat de format PEM dans le répertoire /etc/certs/CA et exécutez la commande suivante :

      # svcadm refresh ca-certificates

Si le format spécifié par keysource est passphrase, la clé d'encapsulation est dérivée de la passe de phrase. Dans le cas contraire, la valeur de la propriété keysource pointe vers la clé d'encapsulation effective, sous forme d'octets bruts ou au format hexadécimal. Vous pouvez indiquer que la phrase de passe doit être stockée dans un fichier ou dans un flux d'octets bruts que l'utilisateur est invité à saisir, ce qui n'est probablement adapté qu'à l'écriture de scripts.

Lorsque les valeurs de la propriété keysource d'un système de fichiers correspondent à passphrase, la clé d'encapsulation est dérivée de la phrase de passe à l'aide de PKCS#5 PBKD2 et d'un salt généré de façon aléatoire pour chaque système de fichiers. Cela signifie que la même phrase de passe génère une clé d'encapsulation différente lorsqu'elle est utilisée sur des systèmes de fichiers descendants.

Les systèmes de fichiers descendants héritent de la stratégie de chiffrement du système de fichiers parent, et celle-ci ne peut pas être supprimée. Par exemple :

# zfs snapshot tank/home/darren@now
# zfs clone tank/home/darren@now tank/home/darren-new
Enter passphrase for 'tank/home/darren-new': xxxxxxx
Enter again: xxxxxxxx
# zfs set encryption=off tank/home/darren-new
cannot set property for 'tank/home/darren-new': 'encryption' is readonly

Si vous devez copier ou migrer des systèmes de fichiers ZFS chiffrés ou non chiffrés, tenez compte des points suivants :

  • A l'heure actuelle, vous ne pouvez pas envoyer un flux de jeu de données non chiffré et le recevoir en tant que flux chiffré, même si le chiffrement est activé sur le jeu de données du pool de réception.

  • Vous pouvez utiliser les commandes suivantes pour migrer des données non chiffrées vers un pool ou système de données où le chiffrement est activé :

    • cp –r

    • find | cpio

    • tar

    • rsync

  • Un flux de système de fichiers chiffré répliqué peut être reçu sur un système de fichiers chiffré et les données restent chiffrées. Pour plus d'informations, reportez-vous à l'Example 5–4.