Waarom de meeste webservices geen end-to-end versleuteling gebruiken
Recente onthullingen over overheidssurveillance hebben de vraag doen rijzen: waarom versleutelen cloudservices uw gegevens niet? Wel, ze versleutelen over het algemeen uw gegevens, maar ze hebben de sleutel zodat ze deze op elk gewenst moment kunnen decoderen.
De echte vraag is: waarom worden uw gegevens lokaal niet versleuteld en gedecodeerd door webservices, zodat deze worden opgeslagen in een gecodeerde vorm die niemand kan bespeuren? LastPass doet dit tenslotte met uw wachtwoorddatabase.
Hoe end-to-end encryptie anders zou zijn
Voor alle duidelijkheid: uw gegevens zijn waarschijnlijk gecodeerd. Laten we Dropbox bijvoorbeeld nemen. Wanneer je verbinding maakt met Dropbox, draagt Dropbox alle gegevens over via een gecodeerde verbinding, zodat niemand er tijdens het transport overheen kan snuffelen. Dropbox belooft ook dat ze uw bestanden op hun servers in gecodeerde vorm opslaan.
Codering is echter een vergrendeling en of iets vergrendeld is, is minder belangrijk dan wie de sleutel heeft. Dropbox heeft de coderingssleutel om al uw bestanden op hun servers te bekijken, dus hoewel het klopt dat het gecodeerd is, is het ook waar dat Dropbox volledige toegang heeft tot hen en dat zij kunnen samenwerken met overheidssurveillance of een schurkenmedewerker door uw bestanden kan snuffelen.
Het idee van "end-to-end encryptie" - u zou het ook kunnen aanduiden als "lokale codering en decodering" - is anders. Met end-to-end-codering worden de gegevens alleen op de eindpunten gedecodeerd. Met andere woorden, een e-mail die wordt verzonden met end-to-end-codering, wordt gecodeerd aan de bron, onleesbaar voor serviceproviders zoals Gmail in transit en vervolgens gedecodeerd op het eindpunt. Cruciaal is dat de e-mail alleen wordt gedecodeerd voor de eindgebruiker op hun computer en in een versleutelde, onleesbare vorm blijft staan voor een e-mailservice zoals Gmail, waarvoor de sleutels niet beschikbaar zijn om deze te decoderen. Dit is veel moeilijker.
Downloaden en lokale decodering
Zoals we hierboven vermeldden, gebruikt LastPass lokale codering en decodering via uw webbrowser. Het downloadt een gecodeerde blob met uw wachtwoorden, decodeert het met uw wachtwoord en geeft u toegang tot uw wachtwoorden. Merk op dat LastPass je hele kluis met wachtwoorden en andere gegevens moet downloaden om het te ontcijferen. In het geval van LastPass werkt dit prima - het is een vrij klein bestand.
Het zou echter niet zo gemakkelijk zijn om dit met andere webservices te doen. Als Gmail bijvoorbeeld op dezelfde manier zou werken, zou Gmail een bestand moeten downloaden dat uw volledige e-mailinbox van 5 GB naar uw computer vertegenwoordigt. Mogelijk zou het hiervoor de LocalStorage-specificatie van HTML5 kunnen gebruiken als LocalStorage meer gegevens zou kunnen opslaan. Dit bestand zou dan lokaal gedecodeerd moeten worden om toegang te geven tot uw e-mailinbox, wat een tijdje zou duren.
Het is mogelijk dat Gmail dit anders zou doen, met een apart bestand dat elke nieuwe, gecodeerde e-mail vertegenwoordigt. Maar er is zoveel meer complexiteit aan de orde bij het ontwerpen van een e-mailclient op deze manier.
Dit zou tegenwoordig eigenlijk min of meer onmogelijk zijn - LocalStorage is vaak beperkt tot 5 MB of minder per website in populaire browsers. De specificatie zegt dat gebruikers deze limiet moeten kunnen verhogen als ze willen, maar slechts enkele browsers implementeren dit.
Geen beveiligde webapps
Cloudopslagservices zoals SpiderOak en Wuala verschillen van Dropbox: ze bieden volledige lokale codering en decodering. Installeer het desktop-programma voor SpiderOak of Wuala en ze zullen uw bestanden coderen voordat ze worden geüpload, zodat de service zelf nooit weet wat u opslaat, en jouw coderingssleutel is vereist om toegang te krijgen.
Deze services verschillen echter ook op andere manieren van Dropbox: ze moedigen het gebruik van een webinterface niet aan voor eenvoudige toegang. Dropbox biedt eenvoudig een webapp waarmee je toegang hebt tot je bestanden, omdat deze begrijpt wat die bestanden zijn. SpiderOak en Wuala begrijpen niet wat je opslaat, dus het is veel gemakkelijker voor hen om je gewoon toe te staan om alle versleutelde blobs te downloaden met je desktop-programma en het desktop-programma het harde werk te laten doen.
Deze services moeten u toestaan de gecodeerde bestandsnamen te decoderen en te begrijpen, het gecodeerde bestand downloaden naar uw browser (misschien via LocalStorage), een decoderingsalgoritme gebruiken om het lokaal te decoderen en vervolgens vragen om het op te slaan op uw computer. Vanwege de beperkingen van LocalStorage is dit in de praktijk onmogelijk.
SpiderOak biedt weliswaar een webapp, hoewel ze het gebruik ervan niet aanbevelen, omdat het uw SpiderOak-coderingssleutel in het geheugen op hun servers moet opslaan terwijl u uw bestanden opent. Ze zeggen dat ze het leveren als gevolg van "een overweldigende klantvraag" - zelfs op een service die vooral bekend staat om zijn codering en beveiliging, eisen klanten overweldigend meer handige, onzekere opties.
Geen spamfiltering, zoeken en andere slimme functies
Diensten zoals Gmail zijn speciaal omdat ze extra services bieden in plaats van alleen maar een vakje waarin al uw e-mail staat. Gmail onderzoekt bijvoorbeeld inkomende e-mail en voert een spamfilter uit om te bepalen of het rommel is. Gmail indexeert je e-mail, zodat je er snel doorheen kunt zoeken. Gmail bekijkt de inhoud van een e-mail gedeeltelijk om te bepalen of het belangrijk is en stelt u in staat om filters in te stellen die automatisch acties uitvoeren op basis van de inhoud van een e-mail.
Al deze functies zijn afhankelijk van Gmail - en Google - om uw e-mail te begrijpen en toegang te hebben. Als ze geen toegang hadden, konden ze geen spamfilters uitvoeren, filteren van e-mails mogelijk maken op basis van hun inhoud of u in staat stellen uw postvak IN te doorzoeken. Zoveel van de belangrijkste functies hangen af van de service die toegang heeft tot uw bestanden.
Geen wachtwoordherstel
De meeste online services bieden mechanismen voor wachtwoordherstel. Voor echt veilige lokale codering kan er echter geen wachtwoordherstelmechanisme zijn. U hebt uw coderingssleutel, die uw bestanden decodeert. Als u de toegang tot deze sleutel verliest, kunt u uw bestanden niet decoderen.
Het is onmogelijk om een "wachtwoordherstel" -mechanisme aan te bieden, tenzij de service de inhoud van de gegevens kende. Services kunnen dit nu doen, omdat uw wachtwoord slechts een manier is om te verifiëren met uw account - het is geen verplichte code die uw gegevens toegankelijk maakt. Zelfs als services gemakkelijk naar end-to-end-versleuteling kunnen gaan, zou dit hen in de steek laten - veel gemiddelde gebruikers vergeten hun coderingssleutels, verliezen hun gegevens, klagen en gaan vervolgens naar een niet-versleutelde provider. De service zou worden aangemoedigd om de codering te versoepelen.
SpiderOak probeert zijn gebruikers te helpen door hen een wachtwoordhint voor te stellen die ze hebben verstrekt bij het instellen van het account, maar het wachtwoord kan niet volledig worden gereset. Vergeet uw wachtwoord en uw bestanden zijn verdwenen, ervan uitgaande dat ze niet op een lokale computer zijn opgeslagen.
Ze willen uw gegevens of gerichte advertenties verkopen
We gaan niet anders doen alsof: veel diensten willen ook uw persoonlijke gegevens analyseren en gebruiken om geld te verdienen. Google scant uw e-mails en gebruikt de informatie die zij over u hebben om getargete advertenties weer te geven, maar verkoopt deze persoonlijke gegevens in ieder geval niet aan andere bedrijven. Facebook verkoopt uw persoonlijke gegevens rechtstreeks aan andere bedrijven.
Services hebben toegang nodig tot uw gegevens zodat ze dit kunnen doen, zodat ze worden gestimuleerd om geen krachtige end-to-end-codering te bieden.
Dit zijn verre van de enige redenen waarom lokale codering en decodering van uw persoonlijke gegevens een niet-starter is voor de overgrote meerderheid van cloudservices. We hopen dat het een licht heeft geschetst op de moeilijke problemen die daarmee samenhangen en hebben uitgelegd waarom zoveel van uw gegevens theoretisch leesbaar zijn voor andere mensen. Er kunnen eenvoudiger manieren zijn om bepaalde coderingsfuncties te implementeren, bijvoorbeeld door gebruikers toe te staan een gecodeerde e-mail via Gmail te verzenden, maar verwacht niet dat alles snel wordt gecodeerd en gedecodeerd.
Image Credit: Andy Roberts op Flickr