De meesten van ons gebruiken een mix van werkstations, laptops, mobiele telefoons en tablets. Daarbij willen we overal en altijd bij onze bestanden kunnen, of het nu gaat om de foto’s van het laatste uitje naar het strand of een memo voor de komende vergadering. Synchronisatie van bestanden over al die verschillende apparaten wordt steeds belangrijker en de commerciële oplossingen daarvoor bieden steeds meer gebruiksgemak. Het gebruik daarvan introduceert ook uitdagingen op het gebied van veiligheid en privacy. Wij kijken naar twee verschillende oplossingen daarvoor.

Voor het synchroniseren van bestanden over meerdere apparaten wordt meestal gebruik gemaakt van een centraal opslagpunt. De twee meest voorkomende modellen hiervoor zijn een centraal opslagpunt in je eigen netwerk dat je zelf beheert en een door derden beheerd centraal opslagpunt in de cloud. Beide modellen hebben zo hun voor- en nadelen.

 

In de cloud

Het gebruik van cloud storage is handig, vooral om te zorgen dat je bestanden op verschillende apparaten gesynchroniseerd blijven. Vaak bieden cloud storage providers meerdere Gigabyte aan ruimte en als je daar niet genoeg aan hebt, dan kan je die ruimte meestal tegen een aanvaardbaar tarief uitbreiden. Over het algemeen bieden zij een dienst met een hoge beschikbaarheid en goede, gebruiksvriendelijke applicaties voor de meest gebruikte besturingssystemen. Bekende cloud storage providers zijn Dropbox en Google Drive. Het nadeel van cloud storage is dat je geen controle hebt over de bestanden die je daar plaatst en afhankelijk bent van de beveiliging van de betreffende provider. Wanneer een kwaadwillende toegang heeft gehad tot de opslag, is het maar de vraag of ook jouw bestanden hierbij betrokken waren, wat daar mee gedaan wordt en of en wanneer je daar achter komt.

Daarnaast is de cloud storage provider gebonden aan wettelijke regels, waardoor verschillende overheidspartijen gegevens over het gebruik en ook de bestanden zelf kunnen opvragen. Door gebruik te maken van encryptie blijf je de baas over je eigen bestanden. Hiervoor is Cryptomator gemaakt.

 

Cryptomator 

Cryptomator is ontwikkeld door de studenten Sebastian Stenzel en Tobias Hagemann, met als doel veilig gebruik te kunnen maken van cloud storage. Belangrijke uitgangspunten waren privacy bescherming door encryptie, betrouwbaarheid, goed te combineren met cloud synchronisatie en gebruiksgemak. Zij vinden dat juist bij toepassingen waar veiligheid belangrijk is, open source de enige mogelijkheid is, vooral omdat dit de beste garantie biedt tegen het ontstaan van back-doors. In een open source product is niet alleen de kans dat een back-door gevonden het grootst, ook zal in een open source omgeving het ontdekken van een back-door het snelst breed bekend gemaakt worden.

Cryptomator versleutelt ieder bestand afzonderlijk, waarbij ook de bestandnamen en directorynamen worden versleuteld. Hierbij wordt gebruik gemaakt van verschillende functies van de AES-256 encryptie standaard. De versleuteling gebeurt met een 256-bits sleutel. Deze sleutels worden met behulp van een wachtwoord beschermd, waarbij gebruik gemaakt wordt van het scrypt encryptie-protocol, om brute-forcen zoveel mogelijk te ontmoedigen. Dit geheel vormt een sterke vorm van encryptie, waardoor je met een gerust hart de vault kunt synchroniseren met een cloud storage provider.

 

Cloud-onafhankelijk

Cryptomator richt zich in principe uitsluitend op het encryptiedeel en is daardoor onafhankelijk van de keuze van je cloud storage provider. Voor mobiele apparaten gaat dit niet helemaal op, omdat wegens de integratie daar per cloud provider aparte functies noodzakelijk zijn. Cryptomator maakt een lokale webdav-dienst aan, die gebruikt wordt voor het transparant versleutelen en ontsleutelen van de bestanden. Op het moment dat je een bestand toevoegt, wordt deze on-the-fly versleuteld en daarna in de vault opgeslagen. Wanneer daarna de applicatie van de cloud storage provider een synchronisatie uitvoert, betreft dit de versleutelde versie. In Cryptomator kun je meerdere vaults aanmaken, waarbij je voor iedere vault apart een wachtwoord op geeft. Je kunt een dergelijke vault met anderen delen door deze via de cloud storage provider met anderen te sharen en hen het betreffende wachtwoord te geven.

 

Multiplatform

Cryptomator is te downloaden voor Linux, Mac OS X en Windows. Daarnaast bestaat een iOS app voor mobiele Apple devices. Een app voor Android is op het moment van schrijven nog niet beschikbaar, daar wordt nog aan gewerkt. De desktop versies van Cryptomator werken allemaal op dezelfde manier. Via een venster met de grafische bestandsmanager wordt een vault ontsloten, waarna je daar bestanden naar toe kunt slepen dan wel vanuit dit venster kunt openen.

De iOS app biedt naast het gebruik van het wachtwoord ook de mogelijkheid om via Touch ID de vault te openen. De app biedt verder bijvoorbeeld de mogelijkheid om foto’s direct vanuit de camera versleuteld in één van je dropbox-vaults te synchroniseren.

 

Dropbox

In dit artikel kijken wij naar de combinatie van Cryptomator op je Ubuntu dekstop, in combinatie met Dropbox als cloud storage provider. We beginnen met het installeren van de software. Via de Ubuntu Software applicatie installeer je Dropbox. Hierna krijg je scherm “dropbox start required”, wanneer je hier op ‘next’ klikt, wordt de eerste keer Dropbox gedownload en geïnstalleerd.

Nadat het installatie voltooid is, wordt een venster geopend om met een bestaand account in te loggen in Dropbox of een nieuw account aan te maken. Kies hiervan een optie en log in op Dropbox.

Nu gaan we Cryptomator installeren. Je downloadt hiervoor een pakket van de website, cryptomator.org. Wij kozen voor de 64-bits versie voor Debian. Dit package installeer je met dpkg. Je krijgt nu een scherm waarin je één of meer vaults kunt aanmaken. Maak een vault aan in het privé-gedeelte in je Dropbox-gebied. Kies een naam voor de vault en voer een paswoord in. Hierna kies je voor het ontsluiten van je vault. Wanneer je dat doet, wordt een nieuw venster geopend naar deze vault. Na de synchronisatie vind je in Dropbox de versleutelde bestanden met versleutelde bestandsnamen.

 

Sparkleshare

Een andere benadering is het synchroniseren via centrale opslag onder je eigen beheer. Een veel gebruikte oplossing hiervoor is Owncloud. Over Owncloud is al meerdere keren in Linux Magazine geschreven. Een ander mooi open source product is Sparkleshare. Enkele jaren terug hebben wij in Linux Magazine hier al eens aandacht aan besteed. Inmiddels is Sparkleshare opgenomen bij de standaard Ubuntu applicaties en daardoor eenvoudig te installeren.

Sparkleshare maakt onder de motorkap gebruik van Git. Dit betekent dat je automatisch een gedegen versiebeheer krijgt op de bestanden die je synchroniseert. Verder biedt ook Sparkleshare de mogelijkheid tot transparante versleuteling op het werkstation.

De Sparkleshare desktop applicatie is te downloaden voor Linux, Mac OS X en Windows. Sparkleshare gebruikt Git voor de centrale opslag, je kunt daarbij zelf op je netwerk een Git-server naar keuze inrichten. Dat kan bijvoorbeeld Gitolite zijn, maar ook gewoon met Git zelf.

Het voordeel van een centrale server is dat je die 100% zelf onder controle hebt. Je hebt geen vreemde pottenkijkers die bij je bestanden kunnen. Het verkeer is via ssh versleuteld en zal in de meeste gevallen ook nog binnen je eigen netwerk blijven. Het nadeel is dat je zelf dat beheer moet doen, zelf voor de hardware moet zorgen, eventueel voorzien van een RAID oplossing, zelf de back-ups moet regelen, zelf voor de beveiliging zorg moet dragen, enzovoorts.

Bij Cryptomator werk je met één of meer vaults. Een vault is een soort folderstructuur waar je een hiërarchie van subdirectories in aanmaakt. Voor iedere groep aan elkaar gerelateerde bestanden maak je een vault aan. Sparkeshare werkt overeenkomstig, alleen heet zo’n groep bij Sparkleshare een project in plaats van een vault. Omdat Sparkleshare onder de motorkap Git gebruikt, is het delen van project met de andere leden van het team eenvoudig te realiseren.

 

Installeren

Sparkleshare installeren is een fluitje van een cent. Je opent de Ubuntu Software applicatie, zoekt op Sparkleshare en klikt op “Install”. Kort daarna is de applicatie geïnstalleerd. Je start die door te klikken op het icoontje, een oranje map met daarin een vijfpuntige ster. Je vult je naam en email in en je krijgt vervolgens een lange string met kopieermogelijkheden te zien. Je sluit het venster en Sparkleshare is nu gestart. In de bovenbalk heb je nu rechtsboven, naast de icoontjes voor wifi, audiovolume en dergelijke, een klein sparkleshare icoontje gekregen. Hiermee doe je de rest.

Wel moet je eerst bepalen waar je de centrale opslag voor de bestanden wilt hebben. Hiervoor heb je een centrale git-server nodig. Dit hoeft geen zware computer te zijn en omdat je die meestal wel graag 24×7 in de lucht wilt hebben, is een energiezuinige Raspberry Pi of een Beaglebone Black hiervoor zeker geen slecht idee.

Heb je nog geen Git-server, dan biedt Sparkleshare met het Dazzle-script een eenvoudige manier om deze snel in de lucht te krijgen. Het enige dat je daarvoor nodig hebt, is een Linux systeem. Je downloadt het script en slaat het als /usr/bin/dazzle op. Hoe je dit moet doen, staat op de website (sparkleshare.org). Hierna doe je ‘dazzle setup’. Het script controleert of alle benodigde software op de server aanwezig is en installeert de ontbrekende onderdelen. Nadat dit gebeurd is, zet het een omgeving op in /home/storage.

 

Achtergrond synchronisatie

Met ‘dazzle link’ autoriseer je gebruikers. Dit gebeurt aan de hand van de publieke sleutel die de gebruiker in de Sparkleshare desktop applicatie kan opvragen, via het icoontje in bovenbalk in de Ubuntu desktop. Hierna kun je via ‘dazzle create’ een nieuw project aanmaken. Vervolgens kan de gebruiker via zijn menu vanuit het icoontje in de bovenbalk de synchronisatie van het project opstarten. Dit maakt een folder aan in de Sparkleshare folder in het homegebied van de gebruiker. Alle bestanden die hier worden geplaatst, al dan niet met sub-directories, worden nu op de achtergrond automatisch gesynchroniseerd met de server. In plaats van ‘dazzle create’ had je ook ‘dazzle create-encrypted’ kunnen doen, in dat geval worden op het werkstation van de gebruiker de bestanden eerst versleuteld, voordat ze gesynchroniseerd worden.

Wanneer je vanuit andere systemen ook de sleutel via ‘dazzle link’ op de server toevoegt, dan kunnen die ook het betreffende project synchroniseren. Omdat Sparkeshare Git als synchronisatie mechanisme gebruikt, kun je het niet alleen met je eigen git-server gebruiken, maar is het ook mogelijk met repositories op publieke Git-servers te synchroniseren.

 

Veilig synchroniseren

Het gebruik van een veilige en stabiele open source desktop biedt veel voordelen. Het automatisch synchroniseren van bestanden op de achtergrond is daarop een mooie aanvulling. Op deze manier zorg je dat belangrijke bestanden in ieder geval nog op een tweede locatie staan en voorkom je dat verschillende versies van hetzelfde bestand op verschillende systemen staan, waarvan je vaak niet weet welke de meest recente is.

Bestandssynchronisatie wordt een stuk veiliger wanneer je voor open source synchronisatie-tools kiest. Kies je voor het gemak van een cloud oplossing, dan helpt een goede open source oplossing je om automatisch en transparant de bestanden voor je te beschermen met versleuteling. Geef je er de voorkeur aan om de zaken geheel onder eigen beheer te houden, dan zet je daarvoor met Sparkleshare in een kwartiertje een betrouwbare, stabiele oplossing op.