Hoe end-to-end-encryptie jouw communicatie veilig houdt
- 02 maart 2017
In april 2016 kondigde WhatsApp aan dat het volledig op het gebruik van end-to-end-encryptie was overgestapt. Daarmee trad WhatsApp in de voetsporen van Signal, dat end-to-end-encryptie al vanaf het begin ondersteunde. Steeds meer chatdiensten stappen over op end-to-end-encryptie. Maar wat is end-to-end-encryptie eigenlijk en waarom kun je er blij mee zijn?
Wat is het probleem?
Bij chatdiensten zoals Signal, WhatsApp en Skype worden berichten, gesprekken en bestanden niet rechtstreeks van de ene telefoon naar de andere verstuurd, maar via een centrale server. Die centrale server is een soort postbode. Als Alice een berichtje naar Bob wil sturen, dan stuurt de telefoon van Alice dat berichtje naar de centrale server, die het vervolgens doorstuurt naar de telefoon van Bob.
Toen de eerste chatdiensten voor het eerst encryptie gingen toepassen, versleutelden ze alleen de verbinding tussen gebruikers en de centrale server. Berichten waren daardoor wel versleuteld als ze onderweg waren van of naar de centrale server, maar op de centrale server zelf waren ze gewoon leesbaar. Iedereen die toegang had (of wist te krijgen) tot die centrale server kon al die berichten dus afluisteren. Dat is natuurlijk niet ideaal.
End-to-end-encryptie als oplossing
Met end-to-end-encryptie wordt dit probleem opgelost. Hierbij worden berichten namelijk versleuteld op de telefoon van de zender en pas weer ontsleuteld op de telefoon van de ontvanger. De centrale server stuurt daardoor enkel nog versleutelde berichten door en kan daarom niet langer meelezen.
Om dit mogelijk te maken, wordt bij end-to-end-encryptie gebruik gemaakt van publieke en geheime sleutels. Die zagen we bij perfect forward secrecy al voorbij komen. Met een publieke sleutel kun je een bericht versleutelen, maar niet ontsleutelen. Dat kan alleen met de bijbehorende geheime sleutel.
End-to-end-encryptie werkt als volgt. Stel, Alice wil een berichtje naar Bob sturen. Het berichtje wordt dan eerst op de telefoon van Alice versleuteld met de publieke sleutel van Bob. Daarna wordt het versleutelde bericht naar de centrale server verstuurd en die stuurt het weer door naar Bobs telefoon. Op Bobs telefoon wordt het bericht pas weer ontsleuteld, met de geheime sleutel die alleen Bob heeft. De centrale server heeft Bobs geheime sleutel natuurlijk niet, en kan het berichtje dan ook niet lezen. Bij end-to-end-encryptie is een berichtje dus van het ene eindpunt tot het andere – oftewel van zender tot ontvanger – versleuteld. Vandaar de term ‘end-to-end’.
Als je Signal of WhatsApp gebruikt, hoef je niks te doen om end-to-end-encryptie te gebruiken. Het is standaard ingeschakeld. Het enige wat je ervan ziet, is een slotje op het scherm, ter bevestiging. Het echte werk gebeurt achter de schermen. Op het moment dat je een chat-app als Signal of WhatsApp voor het eerst op je telefoon installeert, wordt er automatisch een publieke en geheime sleutel voor je aangemaakt. Je publieke sleutel wordt naar de centrale server gestuurd, zodat anderen die kunnen gebruiken om berichten aan jou te kunnen versleutelen. En als jij een berichtje naar iemand anders wil sturen, vraagt de app automatisch de publieke sleutel van de ontvanger op bij de centrale server. Het gaat dus allemaal vanzelf.
Beperkingen van end-to-end-encryptie
End-to-end-encryptie is een belangrijk onderdeel van de beveiliging van je communicatie. Als je het gebruikt, is het verleidelijk je helemaal onbespied te wanen. Toch is er helaas een aantal beperkingen. Het is goed om daar bij stil te staan.
Ten eerste kan end-to-end-encryptie niet voorkomen dat de metadata (ook wel gedragsgegevens) van je communicatie zichtbaar blijft. De inhoud van je berichten is weliswaar versleuteld, maar het is nog steeds mogelijk om op de centrale server te zien met wie je communiceert, wanneer je dat doet en vanaf welk IP-adres. De leverancier van de chatdienst kan die informatie gebruiken om een profiel over je bij te houden, of gedwongen worden die informatie af te staan aan een opsporingsdienst.
Signal slaat gelukkig heel erg weinig gegevens over zijn gebruikers op. In 2016 werd Signal door de Amerikaanse overheid gedagvaard om gegevens over twee Signal-gebruikers te overhandigen. Maar de enige informatie die Signal kon geven, was het tijdstip waarop het account was aangemaakt en het tijdstip waarop dat account voor het laatst was gebruikt. Dit privacyvriendelijke beleid van Signal is helaas eerder uitzondering dan regel. Andere chat-apps, zoals WhatsApp, slaan veel meer metadata van hun gebruikers op.
Ten tweede speelt end-to-end-encryptie alleen een rol zolang het berichtje onderweg is van zender naar ontvanger. Maar wat er daarna met een berichtje gebeurt, is natuurlijk ook belangrijk. Als je bijvoorbeeld je berichten op je telefoon bewaart, en je telefoon wordt gestolen, gehackt of in beslag genomen, dan kunnen je berichten mogelijk alsnog in verkeerde handen vallen.
Zo geeft WhatsApp je de mogelijkheid om een backup van je berichten te bewaren op Google Drive of iCloud van Apple. Dat kan erg handig zijn, maar via deze backups kunnen je berichten ook in verkeerde handen vallen. Je bent voor de beveiliging van deze backups volledig overgeleverd aan Google of Apple. Signal biedt geen mogelijkheid om je berichten in de cloud te backuppen, juist om dit risico uit te sluiten.
De derde beperking van end-to-end-encryptie heeft te maken met de zogeheten authenticiteit van publieke sleutels. Als Alice een berichtje naar Bob wil sturen, heeft ze de publieke sleutel van Bob nodig. Die vraagt haar telefoon op bij de centrale server. Maar hoe kan Alice zeker weten dat die publieke sleutel écht van Bob is, en niet van iemand die zich als Bob voordoet? Als ze dat zeker wil weten, moet ze dat samen met Bob controleren.
De meeste chat-apps, waaronder Signal en WhatsApp, bieden je de mogelijkheid om te controleren of een publieke sleutel de juiste is. Iedere publieke sleutel heeft namelijk een (onvervalsbaar) uniek nummer. Dat unieke nummer wordt vaak een fingerprint, een safety number of een security number genoemd. Om te controleren dat een publieke sleutel echt van Bob is, vergelijk je het safety number van Bobs publieke sleutel op jouw telefoon met het safety number van Bobs publieke sleutel op Bobs eigen telefoon. Als de safety numbers overeenkomen, weet je zeker dat je de publieke sleutel van Bob hebt. Hoe je dat vergelijken precies doet, hangt af van de app die je gebruikt – zie bijvoorbeeld de instructies voor Signal of voor WhatsApp.
Conclusie
End-to-end-encryptie is dus een belangrijke verbetering van de beveiliging van je communicatie. Het zorgt ervoor dat alleen de zender en de ontvanger het bericht kunnen lezen. Maar om valse verwachtingen te voorkomen, is het verstandig je bewust te zijn van de beperkingen.