Tests chiffrement des datasets

Rosin0416

Patron
Joined
Apr 11, 2016
Messages
214
Bonjour,

Je viens d'effectuer une série de tests sur le sujet du chiffrement des datasets sur Truenas 13.
Je sais que le système de chiffrement d'anciennement freenas et nouvellement Truenas est un peu différent, mais je n'en connais pas bien les différences.

Voici mon retour d'expérience :
  • A tous moment, il est possible de passer d’une clé de chiffrement à une « phrase de passe ». Pour cela, il faut se rendre dans Stockage > Volumes > Cliquer sur les 3 points verticaux en face du pool souhaité > Paragraphe « Actions de chiffrement » > Cliquer sur « Options de chiffrement »​
  • Dans le cas du chiffrement avec une « phrase de passe », lors d’un redémarrage du serveur, il sera nécessaire de se rendre sur l’interface administrateur pour déverrouiller manuellement les datasets. Ceux avec une clé de chiffrement sont automatiquement déchiffrés par le système au démarrage.​
  • Quand un dataset parent est chiffré via une clé, les enfants / arrières petits enfants peuvent être chiffrés soit par une clé, soit par une « phrase de passe ». En revanche, lorsqu’un dataset parents est chiffré via une « phrase de passe », les datasets enfants n’auront pas d’autres choix que d’être chiffrés via une « phrase de passe » où chaque dataset enfant / arrière petit enfant peut avoir sa propre « phrase de passe ».​
  • Il est possible de ne pas chiffrer le dataset racine du pool et de chiffrer un ou plusieurs dataset enfant / arrière petit enfant​
  • A l’inverse, il est possible de chiffrer entièrement le dataset racine du pool et de ne pas chiffrer un ou plusieurs dataset enfant / arrière petit enfant​
  • Chaque dataset enfant peut avoir sa clé de chiffrement / « phrase de passe » indépendamment.​

Il y a un truc qui me chiffonne, si mes souvenirs sont bons. Sur Freenas, on avait aussi la possibilité de mettre une "phrase de passe", mais celle-ci protégeait la clé de chiffrement. Donc, il y avait la clé qui chiffrait le pool et la "phrase de passe" qui verouillait l'accès à la clé de chiffrement. Il fallait à ce moment là se rendre sur l'interface administrateur pour rentrer la phrase de passe.
Dans le cas de Truenas, lorsqu'on met une "phrase de passe", il n'y a pas la possibilité de télécharger la clé de chiffrement. Du coup, la phrase de passe sert-elle à chiffrer le pool (ce dont je m'étonne car pas sécure) ou bien comme dans Freenas à déverrouiller l'accès à la clé de chiffrement ?


Question annexe :
_ mieux vaut-il chiffrer tout le pool et éventuellement désactiver le chiffrement sur certains datasets enfant lorsque les données ne sont pas sensibles ?
ou
_ mieux vaut-il ne pas chiffrer le pool et éventuellement chiffrer le ou les datasets qui stockerais des données sensibles ?
ou
_ tout chiffrer sans se poser de question ?

Cordialement
 

Pitfrr

Wizard
Joined
Feb 10, 2014
Messages
1,523
Bonjour,

J'ai pas trop d'expérience avec le chiffrement sous TrueNAS donc je vais pas trop m'avancer.

Toutefois une option à rajouter dans les questions annexes:
- Ne rien chiffrer!! :-D

En effet, le consensus sur le forums serait plutôt de déconseiller le chiffrement. Ou alors il faut vraiment bien savoir ce que l'on fait et être sûr de ses sauvegardes car le risque de perte de clé et de rendre les données inutilisables est grand.


Une autre option à considérer:
- Le chiffrement d'un container seulement à défaut de tout un dataset (par exemple avec VeraCrypt)
 

Rosin0416

Patron
Joined
Apr 11, 2016
Messages
214
Bonjour,
Toutefois une option à rajouter dans les questions annexes:
- Ne rien chiffrer!! :-D

En effet, le consensus sur le forums serait plutôt de déconseiller le chiffrement. Ou alors il faut vraiment bien savoir ce que l'on fait et être sûr de ses sauvegardes car le risque de perte de clé et de rendre les données inutilisables est grand.

Oui après chacun prend ses responsabilités. Mais quand on a une stratégie de sauvegarde et qu'on a pris des précautions pour mettre en lieu sûr l'essentiel, ça limite le risque.
Maintenant je pense que savoir comment ça fonctionne en amont aide lorqu'on est

Toi qui est toujours sur l'ancien système de chiffrement, la phrase de passe c'est bien un dévérouillage de la clé de chiffrement (voir mon premier post) ?

J'ai trouvé ce post qui explique pas mal de chose sur le chiffrement avec truenas :
https://www.truenas.com/community/t...hrase-zfs-encryption-and-how-they-work.96199/

Cordialement.
 

Pitfrr

Wizard
Joined
Feb 10, 2014
Messages
1,523
Toi qui est toujours sur l'ancien système de chiffrement, la phrase de passe c'est bien un dévérouillage de la clé de chiffrement (voir mon premier post) ?
Oui en effet... Alors pas sûr que ce que je dise soit juste à 100% car j'avais regardé ca mais ca remonte un peu... :smile:)
Mais si je me souviens bien, la phrase de passe permet de déverrouiller la clé de chiffrement propre à chaque disque.
En gros c'est à deux niveaux, une clé qui contrôle des "sous-clés" si on peut dire ainsi.

Merci pour le post, j'vais aller me plonger dedans... :smile:
 

Rosin0416

Patron
Joined
Apr 11, 2016
Messages
214
C'est bien ce dont je me souviens. Et il me semble qu'il y avait même une clé de récupération au cas où on avait perdu la phrase de passe.
 

Pitfrr

Wizard
Joined
Feb 10, 2014
Messages
1,523
oui effectivement, j'ai oublié de mentionner la clé de récupération... :smile:
 

Rosin0416

Patron
Joined
Apr 11, 2016
Messages
214
Salut pitfrr,

Je déterre un peu le sujet, je vais bientôt passer en production sur mon nas. Je me pose beaucoup de question sur comment j'organise le chiffrage de mon pool :
  • chiffrer tout le pool
  • chiffrer le pool racine et sortir du chiffrement certains dataset (d'ailleurs, je ne comprends pas bien comment ils arrivent à faire cela)
  • ne pas chiffrer le pool racine et chiffrer uniquement les datasets enfants qui contiennent des données "sensibles"
  • ne rien chiffrer
et tu as rajouté tu as rajouté :
Une autre option à considérer:
- Le chiffrement d'un container seulement à défaut de tout un dataset (par exemple avec VeraCrypt)

Comment vois-tu les choses ?
Par exemple, prenons un partage SMB, il va falloir tout d'abord s'authentifier sur le partage, puis ensuite monter le volume VeraCrypt et le déchiffrer pour accéder aux données. Cela veut dire qu'on aura un volume chiffré contenu dans un partage non chiffré.
Tu pensais à quelque chose de plus simple/automatique ?

Cordialement
 

Pitfrr

Wizard
Joined
Feb 10, 2014
Messages
1,523
Alors avant de commencer, je prends des pincettes: je ne maîtrise pas le chiffrement avec TrueNAS... (seulement avec FreeNAS) Je vais donc me baser sur ce que je suppose comprendre du chiffrement sur TrueNAS mais c'est peut être pas tout à fait exact.

De manière générale, le conseil à rappeler c'est que si on n'a pas un besoin impératif de chiffrer alors on chiffre pas! :-D
Les raisons pour cela: c'est trop "dangereux" car si on perd la clé ou si on n'a pas de sauvegardes correctes, bien c'est mort!
Donc je vais alors partir du principe que y'a un impératif de chiffrement.

Avec TrueNAS, si y'a l'option de chiffrer par dataset, c'est, je pense, l'option pour laquelle j'opterai car plus flexible et plus sûr (en cas de catastrophe on ne perd que le dataset chiffré, bon d'accord les données dessus sont sûrement assez importante mais bon... c'est mieux que de perdre tout le volume! :tongue:).
Là où je connais moins avec TrueNAS c'est le décryptage. Est-il "automatique" (c'est à dire que la clé se trouve sur le périphérique de démarrage et donc déverrouillé au démarrage) ou faut-il une étape après le démarrage du NAS...
Dans le cas de FreeNAS, le déverrouillage est une étape manuelle a effectuer après démarrage du NAS. Pour ma part, cela me convient car de manière générale, le NAS est redémarré que quelques fois par an donc c'est pas trop embêtant.

Ensuit l'autre option que j'aime bien (et que j'utilise) est le volume Veracrypt.
Effectivement, c'est un container accédé depuis un partage SMB. L'authentification sur le partage SMB, se fait automatiquement (avec le user depuis poste le client). Il y a seulement le container à monter avec Veracrypt. Je ne sais pas à ce niveau là s'il y a moyen de l'automatiser mais personnellement je préfère le monter manuellement: je suis sûr de ce que je fais (ou presque... :tongue:) et je n'ai pas à enregistrer le mot de passe quelque part pour un script de montage qui le sera peut-être de manière moins sécurisée qui plus est.
Oui, le chiffrement apporte certaines contraintes inévitables, je pense.

Tu pensais à quelque chose de plus simple/automatique ?
Non mais je peux penser à quelque chose de plus compliqué! :-D
Pour éviter d'avoir à monter le container Veracrypt au niveau du client, il pourrait être envisageable d'avoir une jail dans laquelle on installe Veracrypt et dans laquelle le dataset où se trouve le container est accessible. Ensuite monter ce container Veracrypt dans la jail et le partager ensuite via SMB...
On peut aussi penser à automatiser tout ça (avec les mêmes inconvénients liés à l'automatisation mais au moins ça reste sur le serveur...).



Bon sinon, je te conseille, avant de passer en prod, de tester tout cela avec des données bidon pour voir qu'est-ce qui te convient le mieux.
Comme ça tu pourras te faire une idée.

Et puis surtout: sauvegardes, sauvegardes, sauvegardes.... (et vérifier qu'elles soient bien correctes!!)
Car avec le chiffrement, vaut mieux prévoir ceinture ET bretelles! :smile:
 

Rosin0416

Patron
Joined
Apr 11, 2016
Messages
214
salut,
Alors avant de commencer, je prends des pincettes: je ne maîtrise pas le chiffrement avec TrueNAS... (seulement avec FreeNAS) Je vais donc me baser sur ce que je suppose comprendre du chiffrement sur TrueNAS mais c'est peut être pas tout à fait exact.
J'avoue ne pas avoir bien saisie les différences entre les deux. Sans trop m'avancer également, il semblerait que Truenas n'utilise plus les clé geli, mais le chiffrement natif de zfs. Je ne me rappelle plus où j'avais lu cela.

---------------
edit :
Source de ce qui suit : https://www.truenas.com/community/threads/where-are-the-encryption-keys-stored.92479/post-703396
---------------

Il faut bien considérer l'objectif du chiffrement :
_ si chiffrement uniquement par clé : la protection est opérationnelle lorsqu'on retire le disque dur du serveur (retour garantie, vol du disque dur, pour destruction). Les clés de chiffrement sont sauvegardées sur le volume de démarrage, si on vole le serveur tout entier, le voleur pourra démarrer le serveur et les données seront "accessibles". (Le mot de passe root pourra facilement être changé, si la case "afficher la console sans demande de mot de passe" reste cochée (cochée par défaut).
_ si chiffrement avec phrase de passe : la protection est opérationnelle en cas de vol du serveur entier. Même si le voleur arrive à démarrer le serveur, il lui faudra déverrouiller manuellement le pool ou les datasets.

Là où je connais moins avec TrueNAS c'est le décryptage. Est-il "automatique" (c'est à dire que la clé se trouve sur le périphérique de démarrage et donc déverrouillé au démarrage) ou faut-il une étape après le démarrage du NAS...
Quand j'allume le nas, s'il n'y a pas de phrase de passe, les volumes chiffrés sont automatiquement déchiffrés.
Dans le cas de FreeNAS, le déverrouillage est une étape manuelle a effectuer après démarrage du NAS. Pour ma part, cela me convient car de manière générale, le NAS est redémarré que quelques fois par an donc c'est pas trop embêtant.
Dans mon souvenir (freenas 9.3), les données étaient aussi déchiffrées automatiquement au démarrage sans intervention manuelle (dans le cas de volume chiffrés avec une clé, donc sans phrase de passe)

Non mais je peux penser à quelque chose de plus compliqué! :-D
lol. C'est toujours plus facile de faire compliquer.

Bon sinon, je te conseille, avant de passer en prod, de tester tout cela avec des données bidon pour voir qu'est-ce qui te convient le mieux.
Comme ça tu pourras te faire une idée.
J'ai déjà fait pas mal de tests. C'est en relisant nos échanges que j'ai tiqué sur l'option Veracrypt. C'est quand même compliqué à mettre en place.

D'ailleurs, à ce sujet, sais-tu si on peut monter/démonter une clé usb quand le système est en fonctionnement ?
Il faut que je mette le système en prod maintenant, mais je voudrais réaliser des tests sur les jails, mais je en veux pas les installer sur le pool de données.
Je me suis dis que ça serait plus facile en insérant une clé usb qui me servirait pour faire un pool de test quand j'en ai besoin.
 
Last edited:

Pitfrr

Wizard
Joined
Feb 10, 2014
Messages
1,523
Il faut bien considérer l'objectif du chiffrement :
Ok, merci d'avoir précisé car j'ai une autre perspective là dessus. :smile:
(je ne vais pas développer cela ici car cela a peu d'intérêt mais c'est juste pour dire que j'abordais/voyais les choses sous un autre angle ce qui orientait mes réponses en conséquence)

C'est quand même compliqué à mettre en place.
Oui, je suis d'accord avec toi. Je pense que ça dépend de ton cas d'utilisation. Pour ma part, j'ai un container Veracryp que je monte de temps en temps donc entrer la phrase de passe à chaque fois n'est pas trop contraignant (compromis entre contrainte liée au déchiffrage et sécurité des données).

sais-tu si on peut monter/démonter une clé usb
Non... je ne me suis pas intéressé à ce cas là.
Mais juste une remarque: tu parles de faire des tests sur ton système en production...
Une bonne pratique est d'éviter de toucher au système en production pour tester justement. Oui, c'est tentant... Oui, dans un cadre domestique tu vas me dire que y'a pas beaucoup d'utilisateurs et si le système n'est pas disponible pendant quelques jours c'est pas grave... tout à fait d'accord mais quand même, c'est pas forcément une excuse. :-D
Perso, je serai même plus à l'aise pour faire ça sur un PC quelconque (avec virtual box par exemple)... ou sur un autre PC dédié pour ce genre de tests.
De plus, même pour une utilisation domestique, il faut t'occuper des sauvegardes et, évidemment selon la manière dont elles sont réalisées, il est possible que justement tu utilises un autre système pour cela. Et ce système peut justement te servir de test et de sauvegarde.

De manière générale, le montage des clés ne me semble pas être un problème car une fois insérée elle devrait être reconnue automatiquement par le système. Par contre, le montage lui-même j'ai un doute mais je pense que oui quand même.
Le démontage passera sûrement par une commande dans le terminal.
Ensuite il faut passer le point de montage comme stockage dans la jail je suppose. Par contre, je ne sais pas si à chaque fois que la clé est insérée, elle aura le même point de montage...

Si tu veux faire des tests, plutôt que d'utiliser une clé USB, n'as-tu pas la possibilité d'installer un disque dur quelconque supplémentaire et de l'utiliser pour les jails? (ta carte mère semble avoir suffisamment de port SATA on dirait)
Ou, un disque externe en USB...
Tout sauf une clé USB en fait! :-D Parce que c'est vraiment pas conseiller... bon p'tet que ça marchera très bien hein... mais c'est absolument pas génial.
 

Rosin0416

Patron
Joined
Apr 11, 2016
Messages
214
Bonjour,

Il faut bien considérer l'objectif du chiffrement :
Ok, merci d'avoir précisé car j'ai une autre perspective là dessus. :smile:
(je ne vais pas développer cela ici car cela a peu d'intérêt mais c'est juste pour dire que j'abordais/voyais les choses sous un autre angle ce qui orientait mes réponses en conséquence)
Dommage un autre point de vue ou autres cas d'application est toujours intéressant.

Si tu veux faire des tests, plutôt que d'utiliser une clé USB, n'as-tu pas la possibilité d'installer un disque dur quelconque supplémentaire et de l'utiliser pour les jails? (ta carte mère semble avoir suffisamment de port SATA on dirait)
Ou, un disque externe en USB...
Tout sauf une clé USB en fait! :-D Parce que c'est vraiment pas conseiller... bon p'tet que ça marchera très bien hein... mais c'est absolument pas génial.
Oui mais ça nécessite d'arrêter le serveur, de brancher le disque durs, ... et faire l'inverse quand j'ai fini mes tests.
C'est pour cela que la clé usb est très pratique.
 
Top