Zo beveiligen WhatsApp en Signal jouw berichten

Je zult het vast gelezen hebben in je WhatsApp-venster: ‘Voor berichten die u van en naar deze chat verzendt, wordt vanaf nu gebruik gemaakt van end-to-end encryptie.’

Sinds april gebruikt het grootste chatnetwerk ter wereld (1 miljard gebruikers) de beveiligingstechnologie Signal. Ook Facebook Messenger en Google Allo kozen voor deze technologie.

Maar hoe werkt het precies? Omdat het antwoord redelijk abstract is, beginnen we met een simpele analogie. Om veilig te kunnen communiceren moeten we namelijk een code met elkaar kunnen afspreken zonder die aan elkaar te hoeven vertellen.

Deze visualisatie werkt op mobiel het best in landschapsmodus.
Alice
Bob

Neem twee personen, Alice en Bob. Ze hebben allebei een leeg glas voor zich staan.

Eerst kiezen ze samen een limonadesmaak uit, bijvoorbeeld aardbeien.

Vervolgens kiezen ze allebei ook een eigen smaak uit, die ze geheim houden voor de ander. Alice kiest citroen, Bob gaat voor peer.

Dan doen ze allebei eerst een laagje aardbeiensmaak in het glas en daarna, zonder dat ze het van elkaar zien, ook hun eigen geheime smaak.

Dan ruilen ze van glas. Alice weet niet welke geheime smaak er in het glas van Bob zit en Bob weet dat andersom ook niet van Alice. (We gaan er in deze analogie voor het gemak vanuit dat het niet mogelijk is om te achterhalen welke losse smaken er in de mix zitten.)

Tot slot voegen Alice en Bob ieder hun eigen geheime smaak toe aan het glas dat ze van elkaar hebben gekregen. Het resultaat: in beide glazen zit nu dezelfde mix, maar geen van beiden kan herleiden wat de geheime smaak van de ander is. We noemen deze uiteindelijke mix de eindsmaak. Deze eindsmaak kan als code worden gebruikt om veilig te communiceren.

Vorige Volgende

De versleuteling van berichten in chatapps maakt gebruik van hetzelfde principe. Maar, waar het in het voorbeeld om limonade ging, gaat het bij encryptie om codes met wiskundige eigenschappen.

WhatsApp
Alice
Bob Bob

Wanneer je je aanmeldt bij WhatsApp, genereert de app voor jou een uniek wiskundig hangslot en een bijbehorende unieke wiskundige sleutel die op dat slot past.

Het hangslot wordt naar de publieke database van WhatsApp gestuurd. De sleutel wordt bewaard op je telefoon.

Vul hiernaast je naam in en meld je aan.

Alice

Okee, je hebt je aangemeld en voegt Alice toe als contactpersoon. Vervolgens maakt de app verbinding met de publieke database en wordt het unieke hangslot van Alice op jouw telefoon gedownload.

Als jij vervolgens een berichtje aan je contactpersoon stuurt, versleutel je dat bericht met haar hangslot. Zij kan dat uiteraard openen, want zij heeft de sleutel.

Deze manier van beveiliging is een standaard encryptiemethode, asymmetrische encryptie. Het probleem met deze techniek is dat als één van beide sleutels gestolen wordt, álle berichten gelezen kunnen worden.

Daarom maken onder meer WhatsApp en Signal gebruik van het Signalprotocol, dat een extra laag toevoegt aan deze encryptiemethode.

Hoe werkt dat? Daarvoor moeten we terug naar de limonade. Alice en Bob doorlopen de limonademethode om een identieke unieke code te genereren - de eindsmaak - die we in de volgende stappen gaan gebruiken.

Code genereren en verzenden

Na het genereren van deze unieke code wordt via een wiskundig principe nog een laatste keer gecontroleerd of de code die jij ontvangt wel echt van Alice afkomstig is. Is dat het geval, dan is de encryptie compleet.

WhatsApp geeft dit moment aan met een melding die je waarschijnlijk weleens voorbij hebt zien komen.

Tik nu een berichtje aan Alice.

Top. Zodra je een berichtje hebt getikt en verzonden, gaat er een tweede stap van start. Op basis van de unieke code die we net hebben aangemaakt - de eindsmaak - wordt een volledig nieuwe, oneindig lange sleutel gegenereerd.

Het slimme aan deze tweede sleutel is dat hij werkt als een tie-wrap: je kunt maar een kant op bewegen, in dit geval alleen verder naar beneden.

Verder

Voor ieder berichtje dat jij aan Alice stuurt, en zolang Alice geen berichtje terugstuurt, schuif je een stukje naar beneden op deze nieuwe sleutel. Bij iedere stap hoort een uniek cijferslot dat gebruikt kan worden om het bericht te versleutelen.

Voor ieder nieuw bericht wordt het stukje sleutel dat voor het voorgaande bericht is gebruikt, vernietigd.

Verder

Bij Alice verloopt dit proces op precies dezelfde manier. Zij beschikt daardoor over dezelfde code als jij. Op deze manier kunnen jullie elkaar versleutelde berichten sturen volgens het Signalprotocol.

Verder

Het bericht kan nu worden versleuteld en verstuurd.

Hello
9 4 2

Reageert Alice op je bericht? Dan begint het hele proces opnieuw vanaf de limonademethode.

Mocht het nou gebeuren dat een bericht dat op deze manier versleuteld is toch gekraakt wordt, dan kunnen alleen de berichten die daarna volgen gelezen worden totdat de andere persoon reageert. Daarmee is deze methode dus veel veiliger dan alleen asymmetrische encryptie.

Verder
9 4 2
9 4 2