Tips en Trucs 2021

Mappen versleutelen met EncFS

Bestanden versleutelen is belangrijk bij het beveiligen van gegevens, zeker als je cloud opslag gebruikt. Maar ook op lokale computers, draagbare media (USB stick, USB schijven), draagbare computers, enz. Bijna alle cloud opslag diensten bieden hun klanten encryptie aan, maar dit is niet voldoende. Ook lokaal moeten de gegevens versleuteld zijn. EncFS (Encrypted File System) zorgt daarvoor. Het is open source en platform onafhankelijk en kan dus gebruikt worden met Linux, Windows en macOS. EncFS maakt daarbij voor de gebruikers een versleuteld bestandssysteem aan.

Hoe werkt EncFS?

EncFS maakt twee gescheiden mappen aan. De ene bevat de versleutelde gegevens, de andere de onversleutelde gegevens. De versleutelde map bevindt zich in de lokale cloudmap (zoals Dropbox of Google Drive), terwijl de niet versleutelde map zich ergens in de persoonlijke map van de gebruiker bevindt, buiten de cloudmap. De niet versleutelde map wordt gekoppeld aan de versleutelde map. Als je een bestand in de onversleutelde map opslaat, plaats EncFS deze versleuteld in de versleutelde map. De versleutelde map synchroniseert met de cloud opslag, waardoor het versleutelde bestand in de cloud opslag terecht komt.

We gaan EncFS gebruiken om een lokale map die met Dropbox synchroniseert te versleutelen. Je kunt echter met een kleine aanpassing lokale mappen, gedeelde netwerkmappen of gekoppelde USB sticks versleutelen. Het principe blijft hetzelfde.

EncFS installeren

De standaard softwarebronnen van openSUSE Leap 15.2 bevatten het EncFS pakket, dat je met de volgende opdracht kunt installeren:

dany@pindabook:~> sudo zypper install encfs
[sudo] wachtwoord voor root: 
Gegevens van opslagruimte laden...
Lezen van geïnstalleerde pakketten...
Pakketafhankelijkheden oplossen...

De volgende 3 NIEUWE pakketten zullen worden geïnstalleerd:
  encfs encfs-lang libtinyxml2-6

Het volgende aanbevolen pakket is automatisch geselecteerd:
  encfs-lang

3 nieuwe te installeren pakketten.
Totale downloadgrootte: 467,7 KiB. Reeds in de cache: 0 B. Na de bewerking zal aanvullend 1,7 MiB worden gebruikt.
Doorgaan? [j/n/v/...? alle opties tonen] (j): 
pakket libtinyxml2-6-6.0.0-lp152.3.3.x86_64 wordt opgehaald                                    (1/3),  36,2 KiB ( 93,7 KiB uitgepakt)
Ophalen: libtinyxml2-6-6.0.0-lp152.3.3.x86_64.rpm ...........................................................................[gereed]
pakket encfs-1.9.5-lp152.1.3.x86_64 wordt opgehaald                                            (2/3), 306,7 KiB (987,3 KiB uitgepakt)
Ophalen: encfs-1.9.5-lp152.1.3.x86_64.rpm ...................................................................................[gereed]
pakket encfs-lang-1.9.5-lp152.1.3.noarch wordt opgehaald                                       (3/3), 124,8 KiB (614,0 KiB uitgepakt)
Ophalen: encfs-lang-1.9.5-lp152.1.3.noarch.rpm .................................................................[gereed (15,5 KiB/s)]

Controleren op conflicten tussen bestanden: .................................................................................[gereed]
(1/3) Installeren van: libtinyxml2-6-6.0.0-lp152.3.3.x86_64 .................................................................[gereed]
(2/3) Installeren van: encfs-1.9.5-lp152.1.3.x86_64 .........................................................................[gereed]
(3/3) Installeren van: encfs-lang-1.9.5-lp152.1.3.noarch ....................................................................[gereed]

EncFS instellen

Wie geen Dropbox gebruikt kan deze tip toch volgen en uitproberen door zelf een Dropbox map aan te maken met:

dany@pindabook:~> mkdir ~/Dropbox

Daarna maken we een EncFS versleuteld volume met de opdracht:

dany@pindabook:~> encfs ~/Dropbox/versleuteld ~/Privé
De map "/home/dany/Dropbox/versleuteld/" bestaat niet. Moet deze aangemaakt worden? (y,N) y
De map "/home/dany/Privé/" bestaat niet. Moet deze aangemaakt worden? (y,N) y
Een nieuw versleuteld volume wordt aangemaakt.

EncFS maakt daarbij twee mappen aan: ~/Dropbox/versleuteld en ~/Privé.

  1. ~/Dropbox/versleuteld: de map waarin de versleutelde bestanden in bewaard worden, die dan naar de cloud opslag gesynchroniseerd worden (hier Dropbox) of gekoppeld is aan een USB stick. Sla hier zelf nooit geen bestanden op, want dan worden ze niet door EncFS versleuteld.
  2. ~/Privé: EncFS koppelt deze map aan de versleutelde map waardoor de versleutelde bestanden toegankelijk worden. M.a.w. Om je bestanden te versleutelen, sla je ze in deze map op. Om versleutelde bestanden te openen, open je ze vanuit deze map.

Na het aanmaken van de twee mappen, gaat de configuratie verder. Kies voor de meest veilige paranoia encryptiemethode door de volgende vraag met p te beantwoorden:

Kies de volgende optie:
 kies "x" voor de expert configuratie mode, 
 kies "p" voor de voorgeconfigureerde paranoia mode.
 Iedere andere keuze of een lege regel kiest de standaard mode.
?> p

De paranoia mode is geselecteerd.

De configuratie is afgelopen. Het bestandssysteem dat wordt aangemaakt 
heeft de volgende eigenschappen:
Bestandssysteem versleutelalgoritme: "ssl/aes", versie 3:0:2
Bestandsnaam codering: "nameio/block", versie 4:0:2
Sleutelgrootte: 256 bits
Blokgrootte: 1024 bytes, inclusief 8 byte MAC header
Elk bestand bevat een 8 byte header met unieke IV data.
Bestandsnamen die gecodeerd zijn met een IV koppelmethode.
Bestand data IV is gekoppeld aan bestandsnaam IV.
File holes passed through to ciphertext.

-------------------------- WAARSCHUWING -------------------------
De externe initialisatie-vector ketting optie is 
aangezet. Deze optie schakelt harde koppelingen op het bestandssysteem uit.
Zonder harde koppelingen, kunnen sommige programma's niet werken.
De programma's 'mutt' en 'procmail' werken zeker niet. Voor
meer informatie kunt u naar de encfs mailing lijst gaan.
Als je een andere configuratie optie wilt kiezen 
druk op CNTL-C nu op te stoppen en opnieuw te beginnen.

Daarna moet je het volume met een sterk wachtwoord beveiligen:

Voer nu een wachtwoord in voor uw bestandsyssteem.
Dit wachtwoord moet u onthouden, omdat dit later absoluut 
niet meer opgevraagd kan worden. Het wachtwoord kan
echter later wel veranderd worden met encfsctl.

Nieuw EncFS wachtwoord: 
EncFS wachtwoord ter controle:

EncFS gebruiken

Na de configuratie is de map ~/Privé reeds aan de versleutelde map ~/Dropbox/versleuteld gekoppeld. En kan je er dus direct mee aan de slag. Alles wat de je opslaat in de map ~/Privé wordt door EncFS versleuteld en in de map ~/Dropbox/versleuteld opgeslagen. In het volgende voorbeeld slaan we een korte tekst op in de map ~/Privé.

dany@pindabook:~> echo "De inhoud van dit bestand is versleuteld" > Privé/Versleuteld.txt

De inhoud van de map ~/Privé is:

dany@pindabook:~> ls -l Privé/
totaal 4
-rw-r--r-- 1 dany users 41  8 jan 10:49 Versleuteld.txt

En het bestand Privé/Versleuteld.txt bevat:

dany@pindabook:~> cat Privé/Versleuteld.txt 
De inhoud van dit bestand is versleuteld

De map ~/Privé werkt dus als een klassieke map, maar is in feite een koppeling naar de map ~/Dropbox/versleuteld waar de bestanden versleuteld bewaard worden. EncFS zorgt op de achtergrond voor het encrypteren en decrypteren van de bestanden.

Als je de inhoud van de versleutelde map opvraagt, krijg je versleutelde bestandsnamen:

dany@pindabook:~> ls -l Dropbox/versleuteld/
totaal 4
-rw-r--r-- 1 dany users 57  8 jan 10:49 dOe3TL90xN8uaIrOF2pBWzoW

Ook de inhoud van de bestanden is versleuteld:

dany@pindabook:~> cat Dropbox/versleuteld/dOe3TL90xN8uaIrOF2pBWzoW
|~���e▒�w�A�(%þ��_�LB�y��Wg_
     :'un��1▒\=�`�

Zolang de map ~/Privé via EncFS gekoppeld is aan de versleutelde map ~/Dropbox/versleuteld heb je via de map ~/Privé onversleutelde toegang tot de versleutelde bestanden. Met de volgende opdracht kan je nagaan of de twee mappen gekoppeld zijn:

dany@pindabook:~> mount | grep Privé
encfs on /home/dany/Privé type fuse.encfs (rw,nosuid,nodev,relatime,user_id=1000,group_id=100,default_permissions)

Let daarbij op de vermelding encfs en /home/dany/Privé (of kortweg ~/Privé).

Ook met de volgende opdracht kan je de koppeling nagaan:

dany@pindabook:~> df -h | grep Privé
encfs               79G      20G   56G  26% /home/dany/Privé

Onderstaande afbeelding toont een overzicht aan de hand van enkele opdrachten:

EncFS

Om de koppeling tussen de twee mappen te verbreken, voer je de volgende opdracht uit:

dany@pindabook:~> fusermount -u Privé

Bekijken we de inhoud van beide mappen:

dany@pindabook:~> ls -l Privé/
totaal 0
dany@pindabook:~> ls -l Dropbox/versleuteld/
totaal 4
-rw-r--r-- 1 dany users 57  8 jan 10:49 dOe3TL90xN8uaIrOF2pBWzoW

Dan merken we dat de map ~/Privé leeg is en enkel de inhoud van de versleutelde map behouden blijft. Je kunt de koppeling terug herstellen met:

dany@pindabook:~> encfs ~/Dropbox/versleuteld ~/Privé
EncFS wachtwoord: 
dany@pindabook:~> ls -l Privé/
totaal 4
-rw-r--r-- 1 dany users 41  8 jan 10:49 Versleuteld.txt

En na het ingeven van het correcte wachtwoord zijn de versleutelde bestanden weer via de map ~/Privé toegankelijk. M.a.w. telkens je met versleutelde bestanden wilt werken, moet je bovenstaande opdracht uitvoeren. Vergeet nadien niet de map terug los te koppelen of de computer uit te schakelen. Een simpele maar doeltreffende beveiliging van jouw gegevens.

Encfs volledig van de computer verwijderen

Voor je EncFS van de computer verwijdert, zorg je er best voor dat je de versleutelde bestanden via de EncFS gekoppelde map (~/Privé) naar een gewone onversleutelde map kopieert. Want zonder EncFS zijn de versleutelde bestanden niet meer toegankelijk.

Koppel eerste indien nodig de twee mappen los van elkaar:

dany@pindabook:~> fusermount -u Privé

Verwijder het EncFS volume (m.a.w. de twee mappen):

dany@pindabook:~> rm -r Privé/ Dropbox/versleuteld/

Indien de geen Dropbox gebruikt, mag je ook de Dropbox map verwijderen:

dany@pindabook:~> rm -r Dropbox/

Met de volgende opdracht verwijder je EncFS en niet meer noodzakelijke afhankelijke pakketten van de computer:

dany@pindabook:~> sudo zypper remove -u encfs
[sudo] wachtwoord voor root: 
Lezen van geïnstalleerde pakketten...
Pakketafhankelijkheden oplossen...

De volgende 3 pakketten zullen worden VERWIJDERD:
  encfs encfs-lang libtinyxml2-6

3 te verwijderen pakketten.
Na de bewerking zal 1,7 MiB worden vrijgemaakt.
Doorgaan? [j/n/v/...? alle opties tonen] (j): 
(1/3) Verwijderen van encfs-lang-1.9.5-lp152.1.3.noarch .....................................................................[gereed]
(2/3) Verwijderen van encfs-1.9.5-lp152.1.3.x86_64 ..........................................................................[gereed]
(3/3) Verwijderen van libtinyxml2-6-6.0.0-lp152.3.3.x86_64 ..................................................................[gereed]