abonneren

Zo werkt end-to-end-encryptie met Signal Protocol

end-to-end-encryptie
Het Signal Protocol voor end-to-end-encryptie is sterk in opmars. Onder meer WhatsApp, Facebook Messenger en Skype gebruiken het al voor het versleutelen van gesprekken. Hoe werkt het protocol en waarom is het zo veilig?

Chatdiensten maken meestal gebruik van een centrale server voor de uitwisseling van berichten tussen gebruikers, al zijn er ook enkele die decentraal werken of het Tor-netwerk benutten. Sommige diensten versleutelen alleen de verbinding tussen gebruiker en server, waardoor berichten leesbaar op de server staan. Iedereen die toegang heeft of krijgt kan ze afluisteren, waaronder de diensten zelf. Om dit tegen te gaan, wordt steeds vaker gebruik gemaakt van end-to-end encryptie. Daarbij wordt een bericht versleuteld op te telefoon van de verzender en pas weer ontsleuteld bij de ontvanger.

De eerste apps waarin dit werd toegepast zijn RedPhone voor het versleutelen van telefoongesprekken en TextSecure voor de uitwisseling van tekstberichten, functies die later door het bedrijf Open Whisper Systems werden samengevoegd in de Signal-app. Op dat moment openbaarde het bedrijf ook het vernieuwde Signal-protocol. Dat was een doorontwikkeling van het TextSecure-protocol dat op zijn beurt het otr-protocol (Off-the-Record Messaging) als basis had. Het bevat sterke eigenschappen van dat otr-protocol, zoals forward secrecy en authenticatie. Het wordt als een van de veiligste standaarden voor encryptie gezien en is de afgelopen jaren in veel bekende chat-apps geïntegreerd.

Werking Signal Protocol

WhatsApp is de bekendste chat-app met het Signal-protocol. In een whitepaper legt het bedrijf de beveiliging uit, die grotendeels in lijn is met het Signal-protocol. Ter illustratie nemen we een gesprek tussen Alice en Bob als voorbeeld, twee symbolische namen die vaak in de cryptografie worden gebruikt.

We beginnen bij de installatie van WhatsApp. Alice en Bob hoeven niets te doen om end-to-end encryptie te laten werken, het is standaard actief en voor elk wordt een geheime privésleutel en publieke sleutel gemaakt na de installatie. De privésleutel is geheim en blijft op het toestel, de publieke sleutel mag openbaar zijn en wordt bij de registratie op de server van WhatsApp bewaard. Daar wordt tevens voor elk een setje sleutels voor eenmalig gebruik bewaard, de One-Time Pre Keys.

end-to-end-encryptie

Kenmerkend voor end-to-end encryptie is dat Alice de communicatie kan versleutelen met de publieke sleutel van Bob, terwijl Bob dit (als enige) kan ontsleutelen met zijn eigen privésleutel. De eerste stap hierbij is het opzetten van een sessie, zodra Alice een eerste bericht aan Bob stuurt. Op het toestel van Alice wordt een zogenoemde gedeelde master secret gegenereerd waarvoor de publieke sleutel van Bob en één van zijn eenmalige sleutels wordt gebruikt.

Bob ontvangt nu het verzoek voor het tot stand brengen van de sessie. Op zijn toestel wordt ter controle ook een master secret gegenereerd, maar nu met zijn eigen privésleutel en de informatie uit het verzoek. Na validatie kan de sessie worden opgezet. De tijdelijke sleutel wordt verwijderd.

Versleuteling van berichten

Zodra een sessie is opgezet, kan Alice berichten naar Bob versturen. Hier wordt een extra bescherming toegevoegd. Ieder bericht wordt namelijk ook afzonderlijk versleuteld met een tijdelijke sleutel die per bericht wordt vernieuwd. Na ieder bericht wordt een nieuwe sleutel ‘onderhandeld’ tussen de toestellen van Alice en Bob, een variant van het Diffie-Hellman-protocol. Door de manier waarop ze worden berekend, heeft het geen gevolgen als berichten vertraagd of in een andere volgorde aankomen, of zelfs helemaal niet aankomen.

Bijzonder is ook dat een bericht geen ‘handtekening’ bevat, waardoor niet valt te herleiden welke persoon het bericht heeft verstuurd. Maar de ontvanger heeft binnen het gesprek wél de zekerheid dat het komt van de persoon die zich voor de sessie heeft geautoriseerd. Het grootste voordeel van de opzet is dat het lekken van de sleutel geen gevolgen heeft: het is onmogelijk om daarmee je chathistorie of toekomstige chats te ontcijferen. Ook zorgt de opzet van het Signal-protocol ervoor dat communicatie asynchroon kan werken: Bob hoeft niet online te zijn als Alice een bericht verstuurt.

end-to-end-encryptie

In theorie zou een partij tussen jou en de gesprekspartner als ‘man-in-the-middle’ berichten kunnen onderscheppen. Ook WhatsApp zou die rol kunnen spelen. Daarom biedt de app, om het vertrouwen bij gebruikers te vergroten, een mogelijkheid om de onderlinge sleutel te verifiëren met een qr-beveiligingscode. Ook kun je als je dat wilt een waarschuwing ontvangen als de beveiligingscode van een contact is gewijzigd, al staat die optie standaard uit. Dat gebeurt bijvoorbeeld als die persoon een nieuw toestel in gebruik neemt of na een herinstallatie van de app.

Wat zijn nog de achterdeurtjes? Een van de bekendste is de back-up naar iCloud (iOS) of Google Drive (Android). De berichten daarin zijn niet versleuteld, zodat je afhankelijk bent van de beveiliging die Apple en Google gebruiken voor hun opslag. Ook je telefoon zelf zou doelwit kunnen zijn voor afluisteren, zeker als er bijvoorbeeld al een achterdeurtje is doordat je het toestel hebt geroot en via die weg iets is ingeslopen.

De toekomst

De veiligheid van het Signal-protocol zelf staat voorlopig niet ter discussie. Wel valt op het gebied van privacy nog veel te winnen voor sommige apps die dat protocol gebruiken, met name WhatsApp. Deze app zou relatief veel gegevens over gesprekken verzamelen, ook wel metagegevens genoemd, en wil die graag delen met moederbedrijf Facebook. Dat gaat bijvoorbeeld om contacten waar je mee chat en de momenten waarop je dat doet.

Bovendien is WhatsApp niet volledig open source en dus niet volledig controleerbaar. Ook staat de sterke beveiliging van WhatsApp en vergelijkbare chat-apps ter discussie waardoor afluisteren ook door veiligheidsdiensten zoals de AIVD onmogelijk is. Zij willen de encryptie van chatdiensten het liefst verzwakken zodat ze versleutelde chatberichten toch kunnen lezen. Zo’n vaart zal dit waarschijnlijk niet lopen: een groot deel van de Tweede Kamer is tegen deze wens.

Geschreven door: Gertjan Groen op

Category: Nieuws, Security

Tags: whatsapp. signal, Encryptie, Security