Encrypted File System (EFS) : explorons les possibilités du système de chiffrement des fichiers sous Windows

Encrypted File System (EFS) : explorons les possibilités du système de chiffrement des fichiers sous Windows

La sécurité au prix du sang

Avatar de l'auteur
Jean Gebarowski

Publié dans

Logiciel

05/06/2023 11 minutes
22

Encrypted File System (EFS) : explorons les possibilités du système de chiffrement des fichiers sous Windows

Dans notre quête (sans fin) pour la protection de nos petites données personnelles, de nombreuses pistes s’offrent à nous, plus ou moins connues, efficaces et pratiques. Vous n’avez peut-être pas entendu parler d’Encrypted File System, ou EFS, alors qu’il permet de chiffrer correctement des fichiers sous Windows.

Une histoire d’EFS

Hélas, cette fonctionnalité est bien cachée, qui plus est uniquement pour les versions professionnelles, et elle ne répond qu’à une partie du problème de la protection de vos données, en raison de certaines limitations.

Elle dépend aussi d’une gestion rigoureuse de certificats, ce qui n’est jamais une mince affaire. Cela nous offre néanmoins l’occasion de comprendre quelques mécanismes de protection par chiffrement.

Avantages d’EFS

Il existe plusieurs façons de gérer le chiffrement de ses données. Avec un outil comme VeraCrypt, vous pouvez mettre en œuvre plusieurs approches :

Il reste encore une autre manière de gérer le chiffrement : par fichier ou par dossier (ou arborescence). C’est ce que permet EFS : chiffrer un fichier ou une arborescence de fichiers, mais pas un volume ou une partition, à l’inverse de ce que propose BitLocker.

Il y a plusieurs avantages à cela : pouvoir gérer finement le chiffrement et utiliser le mécanisme de gestion des droits utilisateurs sur les fichiers toujours chiffrés. Autre avantage en entreprise, on peut centraliser a minima les clés de récupération, et tout peut être piloté via une stratégie Windows.

Des limitations dès le départ

Plusieurs éléments sont à prendre en compte si on veut utiliser cette solution :

  • Il faut impérativement l’utiliser sur un système de fichiers NTFS ;
  • en corollaire, si vous voulez copier des fichiers chiffrés via EFS sur un support non NTFS (par exemple en FAT), les fichiers seront copiés... déchiffrés (avec un message d’avertissement) ;
  • certains fichiers ne seront pas chiffrés, comme les fichiers compressés (.zip) ou les fichiers ayant l’attribut « Système ».

Un principe essentiel : le certificat

Pour le chiffrement des données, EFS utilise un certificat qui est associé à l’utilisateur concerné. Sur votre ordinateur local, il n’y en a en général qu’un seul : vous. Dans un environnement multi-utilisateur, un certificat est associé à l’utilisateur ayant le droit de voir les données en clair. Rappelez-vous toutefois qu’EFS n’utilise qu’un seul certificat à la fois, pour un utilisateur donné (hors certificat de récupération, voir plus bas).

Vous ne pouvez donc pas chiffrer une partie de vos fichiers avec un certificat, puis une autre partie avec un autre certificat : il faudra alors à chaque fois charger le certificat correspondant, un seul étant actif à un moment donné.

Si vous avez besoin d’utiliser un nouveau certificat (s’il est compromis, ou lors de la première utilisation), il est possible de chiffrer ou rechiffrer toutes vos données avec ce nouveau certificat, soit par la ligne de commande, soit par le menu « Gérer les certificats de chiffrement » (voir plus bas).

Sinon, basiquement, on active EFS de cette façon :

EFS

Dans les propriétés du dossier (ou du fichier), il faut aller dans “Avancé”

EFSEFS

Ensuite “Chiffrer...”, puis on clique sur “Appliquer les modifications”

EFS

Une notification vous propose de sauvegarder votre clé de chiffrement

Un certificat de chiffrement sera créé s’il n’en existe pas auparavant. Pour voir le détail de ce certificat, on peut aller dans le gestionnaire de certificats via la commande certmgr.msc (ou sinon « Gérer les certificats utilisateurs ».

On obtient alors l’écran suivant : 

EFS

S’il existe un certificat de récupération, vous les verrez aussi, mais il n’est pas créé par défaut. On peut vérifier aussi l’empreinte numérique du certificat de chiffrement en cours d’utilisation via la commande cipher.exe /y.

Autre façon d’y accéder : directement dans une rubrique « Gérer les certificats de chiffrement ». On peut s’en servir pour créer un nouveau certificat et remplacer celui utilisé précédemment, ou rechiffrer une partie de ses données.

EFSEFS

À cette étape, vous pouvez sélectionner le certificat déjà présent, ou en créer un nouveau de toute pièce. Si vous en créez un nouveau (suite à la perte ou la compromission du précédent), vous pouvez rechiffrer toutes vos données avec ce nouveau certificat à la fin de la procédure.

En suivant les différentes étapes, vous finirez par arriver à un écran vous proposant de sauvegarder votre certificat, ce qui est une bonne idée.

La clé que vous avez sélectionnée pourra ensuite chiffrer (ou rechiffrer si vous en avez besoin) les fichiers sur l’arborescence voulue. En cas d’utilisation d’un nouveau certificat, pensez bien à rechiffrer toutes les données concernées !

EFSEFS

Le certificat, dit de récupération des données, doit être réservé à l’administrateur du domaine ou à un utilisateur de confiance. Cette clé permet de créer un outil de récupération soit par domaine (dans le cas de l’utilisation d’Active Directory) soit en local.

L’usage principal : la protection contre le vol

Remettons-nous dans le contexte : vos fichiers sont stockés chiffrés, donc illisibles au repos (quand vous ne les utilisez pas). Une fois que vous êtes connecté à votre session Windows avec un utilisateur possédant (et utilisant) le bon certificat, vous voyez les données en clair de façon transparente.

C’est à la fois un avantage et un inconvénient. Du point de vue ergonomie, c’est top, mais d’un point de vue sécurité, il y a un hic : quand votre session est ouverte, vous ne voyez pas la version telle qu’elle est présente sur le disque. Cela fait une différence si vous voulez transférer vos fichiers ou les synchroniser quelque part : le transfert ou la synchronisation se fera sur la version en clair du fichier !

Impossible donc de protéger par ce mécanisme vos fichiers dans le cloud, ce n’est pas fait pour cela, sauf si vous l’envoyez vers un stockage supportant EFS, bien sûr. Mais bien souvent, dans le cloud, on ne maîtrise pas le système de fichiers, notamment pour les services offrant du stockage de fichiers.

Dans l’explorateur Windows

Quand on regarde dans son explorateur un fichier chiffré via EFS, il apparaît en clair quand vous disposez du certificat. Un cadenas vous permet de savoir que le fichier est protégé via EFS. 

EFS
Ici, on a le certificat. Tout se passe comme si le fichier était en clair.

Maintenant, si vous voulez y jeter un œil sans ce sésame, vous voyez ceci :

EFS

Sachez enfin que les fichiers sont stockés chiffrés avec une extension spécifique, non visible sous Windows en temps normal.

EFS

Un fichier $EFS est apparu, ainsi qu’une extension .PFILE sur les fichiers chiffrés

La ligne de commande

Il est également possible de réaliser de nombreuses opérations en ligne de commande (via un simple terminal, sans forcément passer par PowerShell), grâce à l’outil cipher.exe. On peut ainsi chiffrer, déchiffrer, générer un certificat, ajouter ou supprimer un utilisateur, etc.

cypher EFS

Pour créer un certificat de chiffrement, il suffit de taper :

cipher.exe /k

Un certificat sera créé avec les options par défaut et automatiquement importé dans le magasin de certificats utilisateurs. Pour créer manuellement un certificat de récupération, qui pourra être associé à tous vos fichiers, et qu’il faudra transmettre au “maître des clés” :

cipher.exe /r:nom_pour_fichier_clé

Il faudra ici importer votre certificat (en double-cliquant sur le fichier, par exemple). Vous aurez un .CER et un .PFX. Cela nous servira juste en dessous.

EFS

Agent de récupération local ou sauvegarde des clés ?

Pour un utilisateur unique, le plus simple est de sauvegarder ses certificats ou la clé de récupération. Il est aussi possible de créer un agent de restauration, quand il y a plusieurs utilisateurs ou quand on est dans un domaine Windows et qu’on souhaite qu’un administrateur puisse débloquer des situations dans lesquelles un certificat serait perdu.

Retournons d’abord sur un fichier crypté chiffré, sur ses propriétés avancées :

EFS

Par défaut, on peut voir le certificat de chiffrement utilisé, mais il n’y a rien dans la partie « récupération ».

EFS


Microsoft Learn nous indique alors la marche à suivre. Pour notre exemple, on va créer un agent de récupération local (l’autre option est un agent de récupération par domaine) : Protection des données avec le système EFS (Encrypting File System).

En ligne de commande ou via “exécuter”, lancez mmc. Il faut ensuite “Ajouter/Supprimer un composant logiciel enfichable” et ajouter “Éditeur d'objets de stratégie de groupe”.

EFS

Suivez l’arborescence indiquée et ajoutez l’agent de récupération. Il vous demandera un certificat, reprenez celui que vous avez créé en ligne de commande (le fichier .CER).

Qu’est-ce que j’ai fait ?

Rappelez-vous que par défaut, il n’y a que le certificat de chiffrement, et rien pour la récupération. Par cette manipulation, on a créé une stratégie Windows obligeant à incorporer le certificat de récupération aux fichiers qui seront chiffrés par EFS.

En conséquence, tous les fichiers créés AVANT cette manipulation ne disposeront pas du dispositif de récupération. Par contre, après la création de la stratégie, le certificat apparaît automatiquement dans les propriétés des fichiers. 

Ainsi, même en cas de changement de certificat ou de toute autre manipulation, il sera toujours possible de déchiffrer les fichiers via ce certificat de récupération. Voici par exemple ce qui se passe si on change de clé de chiffrement au niveau de l’utilisateur : au niveau du fichier, celui-ci est bien modifié, mais le certificat de récupération reste inchangé.

EFSEFS

Un petit bonus

On peut faciliter l’accès à cette option, via l’éditeur de registre, en ajoutant cette valeur :

EFS

Cela vous rajoutera une ligne “chiffrer” ou “déchiffrer” dans le menu contextuel de Windows (clic droit).

EFS

Et sous WSL (Windows Subsystem for Linux) ?

L’accès au système de fichiers Windows se fait... comme sous Windows. WSL sait lire EFS, ou plus précisément, il faut se rappeler que WSL est un sous-système de Windows, il hérite donc de ce qu’il y a « au-dessus ».

À partir du moment où vous exécutez WSL dans l’environnement d’un utilisateur ayant accès aux fichiers chiffrés par EFS, alors WSL peut les lire. Et dans le sens contraire, c’est pareil : sans accès via Windows, pas d’accès dans WSL, que vous soyez root ou n’importe quel utilisateur créé dans WSL.

EFS

Si, dans Windows, vous avez accès aux fichiers, alors c’est pareil dans WSL

EFS

Et si vous n’y avez pas accès sous Windows, alors l’accès sera refusé aussi sous WSL

Pourquoi l'utiliser ?

Comme très souvent avec les solutions de sécurité, le contexte d’utilisation peut être très restreint. Efficace dans un cas d’usage précis, cela peut devenir un cauchemar à gérer ou être inefficace dans un autre.

Pour résumer, on peut dire qu’EFS a le mérite d’exister et qu’il va simplifier la tâche d’outils servant à sécuriser vos fichiers, mais qu’une gestion manuelle par l’utilisateur n’est pas des plus pratiques, car il faut savoir gérer les certificats et toutes les subtilités de ce système de fichiers.

Notre quête de l’outil de chiffrement parfait ne va donc pas s’arrêter là...

22

Écrit par Jean Gebarowski

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Une histoire d’EFS

Avantages d’EFS

Des limitations dès le départ

Un principe essentiel : le certificat

L’usage principal : la protection contre le vol

Dans l’explorateur Windows

La ligne de commande

Agent de récupération local ou sauvegarde des clés ?

Qu’est-ce que j’ai fait ?

Un petit bonus

Et sous WSL (Windows Subsystem for Linux) ?

Pourquoi l'utiliser ?

Le brief de ce matin n'est pas encore là

Partez acheter vos croissants
Et faites chauffer votre bouilloire,
Le brief arrive dans un instant,
Tout frais du matin, gardez espoir.

Commentaires (22)


“L’usage principal : la protection contre le vol”
My 2 cents : dans ce cas, autant utiliser Bitlocker, surtout depuis qu’il est dispo pour toutes les version non pro de Win.


Pour les versions non pro , c’est en lecture seul uniquement pour bitlocker donc faut toujours la version pro.


J’avoue que je vois pas en quoi c’est un plus contre le vol par rapport à Bitlocker.



Si la session est ouverte ? Mais si elle est ouverte, les fichiers chiffrés par EFS sont lisibles non ?



Si j’ai suivi ce qui a été écrit, c’est juste que si une appli synchronise des données, elles seront en clair sur l’espace de stockage cloud (bitlocker ayant déchiffrer à l’ouverture de session), alors qu’avec EFS non. Bon, cela reste très marginal tout de même, car qui irait stocker dans un cloud grand public des données ultra confidentielles ?



(reply:2135965:Inpacteur d’occasion)




Ah mince, j’étais persuadé que Microsoft avait ouvert la fonction aux éditions familles. Merci pur la correction.
“c’est en lecture seul uniquement pour bitlocker” Désolé, je ne comprends pas.


Tu peux encrypter un disque USB par exemple, du coup les home peuvent quand meme monter la partition.


SuperMot

Tu peux encrypter un disque USB par exemple, du coup les home peuvent quand meme monter la partition.


Chiffrer*, encrypter n’existe pas.


Dans la page des titres, cette petite troncature qui fait plaisir :



Encrypted File System (EFS) : explorons les possibilités du système de chiffrement des fichiers sous Windows
La sécurité au prix du sang
Dans notre quête (sans fin) pour la protection de nos petites données personnelles, de nombreuses pistes s’offrent à nous, plus ou moins con... (3 commentaires - Lire)


Personnellement, j’avais commencé à mettre le nez dedans il y a un bon moment, et j’ai trouvé cela bien trop restrictif… J’ai pas l’impression en lisant que c’est mieux maintenant.



:mdr:



Pourquoi grand public et ultra confidentielles ? Juste stocker dans le Cloud des données. Ca peu être un besoin pour beaucoup quand même.


“Une histoire d’EFS” héhé technique, et pas dans le sous-titre !



certains fichiers ne seront pas chiffrés, comme les fichiers compressés (.zip) ou les fichiers ayant l’attribut « Système ».




Les “fichiers compressés” qui ne sont pas chiffrés c’est ceux compressés à la volée par NTFS.



Autrement dit, les deux cases à cocher ci-dessous sont mutuellement exclusives:



Les fichiers .zip, .rar ou *.whatever sont chiffrables.




La sécurité au prix du sang




ISWYDT



(quote:2135965:Inpacteur d’occasion)
Pour les versions non pro , c’est en lecture seul uniquement pour bitlocker donc faut toujours la version pro.




Ce n’est pas vrai : pour les version non pro, on peut tout faire au niveau des fichiers. Le soucis, c’est qu’on ne peut pas créer de partition chiffrée



C’est à la fois un avantage et un inconvénient. Du point de vue ergonomie, c’est top, mais d’un point de vue sécurité, il y a un hic : quand votre session est ouverte, vous ne voyez pas la version telle qu’elle est présente sur le disque. Cela fait une différence si vous voulez transférer vos fichiers ou les synchroniser quelque part : le transfert ou la synchronisation se fera sur la version en clair du fichier !




C’est dommage car l’outil devrait transférer sur le stockage Cloud la version chiffrée et permettre de le lire en montant le filesystem distant. En considérant par défaut que le stockage distant n’est pas sûr.



Un peu comme ce que propose rclone avec son chiffrement à la volée des données et son mode “mount” qui monte le FS distant. Le client EFS pourrait se mettre en proxy entre le système et le stockage Cloud de la même façon quand ce sont des données qu’il gère.


EFS est une fonctionnalité offerte par NTFS donc ce n’est possible que sur un système de fichier NTFS.
Ce n’est d’ailleurs pas disponible sur ReFS.




darkjack a dit:


autant utiliser Bitlocker




EFS est assez vieux (il est dispo sur Win2K). BitLocker n’existait pas à ce moment.


RedShader

EFS est une fonctionnalité offerte par NTFS donc ce n’est possible que sur un système de fichier NTFS.
Ce n’est d’ailleurs pas disponible sur ReFS.




darkjack a dit:


autant utiliser Bitlocker




EFS est assez vieux (il est dispo sur Win2K). BitLocker n’existait pas à ce moment.


Ah ok, j’avais pas compris en ce sens. Merci :)


EFS est surtout pratique sur un réseau (pour des arborescence DFS) car les clés peuvent être par utilisateur et surtout plusieurs utilisateurs peuvent accéder à un même fichier chiffré (un peu comme GPG en multi utilisateurs). Il faut le cumuler avec l’audit des accès afin d’être capable de savoir qui et quand un fichier a été lu (donc potentiellement volé).


Merci pour ce complément d’explication!


Question un peu conne, mais le certificat est stocké qqpart dans Windows donc en cas de vol de PC, le gurs a les données chiffrées, et le certificat pour déchiffrer ?



J’ai un peu de mal à comprendre l’intérêt, j’espère qu’il y’a une passphrase sur le certificat, parce que c’est j’ai l’impression l’unique sécurité !


C’est à toi de gérer le certificat. Windows te propose de le sauvegarder et tu choisie l’emplacement.



darkjack a dit:


“L’usage principal : la protection contre le vol” My 2 cents : dans ce cas, autant utiliser Bitlocker, surtout depuis qu’il est dispo pour toutes les version non pro de Win.





  1. EFS fonctionne au niveau fichier

  2. Passé un temps, y’avait un paramètre qui empêchait de copier un fichier chiffré sur un support non chiffré. C’était assez pratique contre la fuite d’informations.



fofo9012 a dit:


Question un peu conne, mais le certificat est stocké qqpart dans Windows donc en cas de vol de PC, le gurs a les données chiffrées, et le certificat pour déchiffrer ?



J’ai un peu de mal à comprendre l’intérêt, j’espère qu’il y’a une passphrase sur le certificat, parce que c’est j’ai l’impression l’unique sécurité !




Si j’ai bien souvenir, il y a plusieurs possibilités:




  • demande d’identification (en espace sécurisé) à chaque déchiffrement

  • demande d’identification (en espace sécurisé) au premier accès pour le temps de la session



De plus attention ce n’est pas le certificat utilisateur, qui déchiffre le fichier, celui-ci ne permet que d’atteindre la clé de chiffrement du fichier, sachant que si celui-ci est sur le réseau, c’est l’hôte (ou l’AD, je ne sais plus), qui possède cette clé.



Je dis peut-être des bêtises, cela fait un moment que je n’ai pas pratiqué le système.



manus a dit:


De plus attention ce n’est pas le certificat utilisateur, qui déchiffre le fichier, celui-ci ne permet que d’atteindre la clé de chiffrement du fichier, sachant que si celui-ci est sur le réseau, c’est l’hôte (ou l’AD, je ne sais plus), qui possède cette clé.




Ça je pense que ce n’est pas possible, sinon le déchiffrement ne fonctionnerait pas sur les portables en déplacement.
Effectivement si le certificat est sur le réseau ou dans un TPM c’est sécure dès que le PC est éteint.




RedShader a dit:


C’est à toi de gérer le certificat. Windows te propose de le sauvegarder et tu choisie l’emplacement.




Ce n’est pas la sauvegarde du certificat qui m’inquiète, mais le fait que si tu peux accéder à tes données hors ligne, cela signifie que le certificat et sa clé privée sont stockés sur le même disque dur (non chiffré) que les données à déchiffrer.
Pour avoir déjà poutré un mot de passe windows oublié c’est assez rapide depuis un autre PC quelques secondes tout au plus (le fichier SAM est basé sur MD5 obsolète depuis 1996, presque 30 ans !) une fois le mot de passe windows récupéré, tu bootes le portable et ouvre la session de l’utilisateur…
Avec un équivalent bitlocker tu ne peux rien faire… les fichiers windows faiblement sécurisés ne sont pas du tout accessibles.


Remarques pertinentes. Si le certificat est présent sur le disque, et je ne doute pas que ça soit l’immense majorité des cas, alors c’est vraiment une sécurité illusoire. Bitlocker reste quand même plus adapté de nos jours (en même temps, EFS est vieux).