EncFS fournit un système de fichiers chiffré dans l'espace utilisateur. Il s'exécute sans aucune autorisation spéciale et utilise la bibliothèque FUSE et le module du noyau Linux pour fournir l'interface du système de fichiers. Il s'agit d'un système de fichiers pass-through, et non d'un périphérique de bloc chiffré, ce qui signifie qu'il est créé au-dessus d'un système de fichiers existant. Ce tutoriel montre comment vous pouvez utiliser EncFS sur Ubuntu 15.10 (Wiley Werewolf) pour chiffrer vos données.
1 Remarque préliminaire
J'utilise le nom d'utilisateur falko sur mon système Ubuntu 15.10 dans ce tutoriel. Un audit de sécurité a révélé certains problèmes dans la mise en œuvre actuelle d'encfs. Veuillez consulter l'avertissement de sécurité ci-dessous pour déterminer si la manière dont vous souhaitez utiliser encfs est affectée par ces problèmes. Une alternative à encfs est ecryptfs (https://launchpad.net/ecryptfs) que je couvrirai dans un autre tutoriel.
Informations de sécurité Encfs
"Selon un audit de sécurité réalisé par Taylor Hornby (Defuse Security), l'implémentation actuelle d'Encfs est vulnérable ou potentiellement vulnérable à plusieurs types d'attaques. Par exemple, un attaquant disposant d'un accès en lecture/écriture aux données chiffrées pourrait réduire le déchiffrement complexité pour les données cryptées par la suite sans que cela ne soit remarqué par un utilisateur légitime, ou pourrait utiliser l'analyse temporelle pour déduire des informations. Jusqu'à ce que ces problèmes soient résolus, encfs ne doit pas être considéré comme un refuge pour les données sensibles dans les scénarios où de telles attaques sont possibles."
2 Installation d'EncFS
EncFS peut être installé comme suit (nous avons besoin des privilèges root, nous utilisons donc sudo) :
sudo apt-get install encfs
Vous devriez maintenant jeter un œil à la page de manuel EncFS pour vous familiariser avec ses options :
man encfs
3 Utiliser EncFS
Je vais maintenant créer les répertoires chiffrés et déchiffrés dans mon répertoire personnel :
mkdir -p ~/encrypted
mkdir -p ~/decrypted
Le répertoire déchiffré sert de point de montage pour le répertoire chiffré. Pour monter ~/encrypted sur ~/decrypted, exécutez simplement :
encfs ~/encrypted ~/decrypted
Si vous exécutez cette commande pour la première fois, l'installation d'EncFS est lancée et vous devez définir un mot de passe pour le volume chiffré :
[email protected]:~$ encfs ~/encrypted ~/decrypted
Creating new encrypted volume.
Please choose from one of the following options:
enter "x" for expert configuration mode,
enter "p" for pre-configured paranoia mode,
anything else, or an empty line will select standard mode.
?> <-- p
Paranoia configuration selected.
Configuration finished. The filesystem to be created has
the following properties:
Filesystem cipher: "ssl/aes", version 3:0:2
Filename encoding: "nameio/block", version 4:0:2
Key Size: 256 bits
Block Size: 1024 bytes, including 8 byte MAC header
Each file contains 8 byte header with unique IV data.
Filenames encoded using IV chaining mode.
File data IV is chained to filename IV.
File holes passed through to ciphertext.
-------------------------- WARNING --------------------------
The external initialization-vector chaining option has been
enabled. This option disables the use of hard links on the
filesystem. Without hard links, some programs may not work.
The programs 'mutt' and 'procmail' are known to fail. For
more information, please see the encfs mailing list.
If you would like to choose another configuration setting,
please press CTRL-C now to abort and start over.
Now you will need to enter a password for your filesystem.
You will need to remember this password, as there is absolutely
no recovery mechanism. However, the password can be changed
later using encfsctl.
New Encfs Password: <-- Enter a secure password here
Verify Encfs Password: <-- Enter the secure password a second time
Assurez-vous de vous souvenir du mot de passe car il n'y a aucun moyen de récupérer vos données cryptées si vous oubliez le mot de passe !
Vous devriez maintenant trouver le volume EncFS dans les sorties de
mount
[email protected]:~$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=1006420k,nr_inodes=251605,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=204480k,mode=755)
/dev/mapper/server1--vg-root on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset,clone_children)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=21,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/dev/sda1 on /boot type ext2 (rw,relatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=204480k,mode=700,uid=1000,gid=1000)
encfs on /home/falko/decrypted type fuse.encfs (rw,nosuid,nodev,relatime,user_id=1001,group_id=1001)
et
df -h
[email protected]:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 983M 0 983M 0% /dev
tmpfs 200M 4.9M 195M 3% /run
/dev/dm-0 28G 1.7G 25G 7% /
tmpfs 999M 0 999M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 999M 0 999M 0% /sys/fs/cgroup
/dev/sda1 236M 51M 173M 23% /boot
tmpfs 200M 0 200M 0% /run/user/1000
encfs 28G 1.7G 25G 7% /home/falko/decrypted
Pour enregistrer vos données sous forme cryptée, placez vos données dans le répertoire décrypté, comme vous le feriez avec un répertoire normal :
cd ~/decrypted
echo "hello foo" > foo
echo "hello bar" > bar
ln -s foo foo2
Si vous vérifiez le contenu du répertoire, vous verrez que vous pouvez le voir sous forme non chiffrée...
ls -l
[email protected]top:~/decrypted$ ls -l
total 8
-rw-rw-r-- 1 falko falko 10 Nov 10 14:57 bar
-rw-rw-r-- 1 falko falko 10 Nov 10 14:57 foo
lrwxrwxrwx 1 falko falko 3 Nov 10 14:57 foo2 -> foo
... alors que dans le répertoire chiffré, il est chiffré :
cd ~/encrypted
ls -l
[email protected]:~/encrypted$ ls -l
total 8
lrwxrwxrwx 1 falko falko 24 Nov 10 14:57 gIKlbEtIpTfiGOCy,wKFpMFd -> nZgFI3s62v5LtaHOu-V4lUSy
-rw-rw-r-- 1 falko falko 26 Nov 10 14:57 mEqwt,ssEJhGYpN8HfJMoVxk
-rw-rw-r-- 1 falko falko 26 Nov 10 14:57 nZgFI3s62v5LtaHOu-V4lUSy
Pour démonter le volume chiffré, exécutez :
cd
fusermount -u ~/decrypted
Vérifier les sorties de...
mount
... et...
df -h
... et vous verrez que le volume EncFS n'est plus listé.
Pour le remonter, exécutez
encfs ~/encrypted ~/decrypted
Il vous sera demandé le mot de passe que vous avez défini précédemment :
[email protected] :~$ encfs ~/encrypted ~/decrypted
Mot de passe EncFS :<-- votremotdepassesecret
Si vous spécifiez le mot de passe correct, cela montera le répertoire ~/encrypted sur ~/decrypted à partir duquel vous pourrez accéder à vos données cryptées sous forme non cryptée. Si vous oubliez le mot de passe, vos données cryptées sont perdues !
Si vous voulez changer le mot de passe, vous pouvez le faire avec le
encfsctl passwd ~/encrypted
commande.
[email protected] :~$ encfsctl passwd ~/encrypted
Entrez le mot de passe Encfs actuel
Mot de passe EncFS :<-- votremotdepassesecret
Entrez le nouveau mot de passe Encfs
Nouveau mot de passe Encfs :<-- newsecretpassword
Vérifiez le mot de passe Encfs :<-- newsecretpassword
Clé de volume mise à jour avec succès.
4 liens
- EncFS :http://www.arg0.net/encfs
- Ubuntu :http://www.ubuntu.com/