Je had je eigen vraag kunnen beantwoorden door gewoon
het technische document over de encryptie door te lezen, pagina 6.
Om het makkelijker te maken zal ik ook een wat uitgebreidere historie en uitleg erbij geven zoals ik heb begrepen hoe het werkt, daar het technische document nogal abstract is en wellicht niet voor iedereen goed te begrijpen valt.
Here goes:
Het lijkt er dus op dat WA mijn videootje bij hun in de cache heeft staan, en dus vanuit daar direct sturen naar persoon B.
Dat klopt, maar dat is niet zo slecht als je lijkt te denken en prima te verklaren. Dat is het model.
Het is namelijk heel simpel. De encryptie op media werkt iets anders.
Het is een kleine wijziging voor een win-win-win situatie. Dit was noodzakelijk om de web/desktop client mogelijk te maken en om bijlagen encrypted in groepsgesprekken te kunnen versturen en als extra winst bespaard het nog data ook.

Anders als je het echt E2EE met unieke sleutels zou willen, dan zou je naar een groep met 50 man dus 50x die bijlage moeten uploaden. En als je de Web/Desktop client gebruikt, dan moet de computer het eerst uploaden naar je telefoon, die moet het encrypten en het vervolgens weer uploaden naar je gesprekspartner. Dan kost een bijlage van 50MB dus opeens 100MB mobiele data. Dat is onacceptabel, om een heel scala aan redenen. (Niet enkel de mogelijke traagheid, maar er zijn landen waar ze niet zo gezegend zijn met onze vorm van internetbundels.)
Dus moest er een trade-off komen die dit beter mogelijk maakt maar slechts minimaal aan veiligheid inlevert. Zo kan het benodigde dataverkeer sterk beperkt worden (zowel gunstig voor gebruikers alsmede voor WhatsApp zelf, scheelt dataverkeer/load op hun servers en pipes) en is er geen extra stap nodig tussen Web/Desktop Client en het versturen van bijlagen. Dit is ook de reden dat je als je via Web/Desktop client een bijlage verstuurd en je computer uitzet je toch nog de bijlage op je telefoon kan downloaden.
Dat gaat als volgt:
- Je WhatsApp Client (en of dat nou op je telefoon is of de computer maakt niet uit) genereert een zeer sterke encryptiesleutel en encrypt daarmee je bijlage.
- Het encrypted bestand wordt geupload naar de WhatsApp Server, waar deze in een blobstore wordt geplaatst
- Je WhatsApp Client encrypt de sleutel van het encrypted bestand, de hash (zodat je ontvanger geen ander bestand voorgeschoteld kan krijgen dan wat je verstuurd hebt

) en de pointer naar de blobstore met het end-to-end encryptie protocol en stuurt deze naar de ontvanger. (Bij de Web/Desktop client stuurt de Web/Desktop client over het end-to-end encrypted kanaal met je telefoon de sleutel en blobpointer, en je telefoon stuurt dat weer door. De Desktop/Web client beschikt immers niet over de encryptie sleutels van gesprekken.)
- De ontvanger ontvangt jou encrypted bericht, decrypt deze, download de bijlage uit de blobstore op de WhatsApp server (aldanniet zodra je er op tikt), controleert de hash, decrypt de bijlage met de sleutel die je had bijgevoegd in je end-to-end encrypted berichtje en heeft het succesvol ontvangen. Gezien de E2EE kan je ook dus controleren of ik daadwerkelijk de gene ben geweest die het jou heeft gestuurd.
... En zo heb je end-to-end encryptie met een bijlage cache, optie voor groepsgesprekken die niet superveel data vreten en hoeft je mobiel niet dubbele data te vreten als je iets met je computer verstuurd; maar hoeft slechts een heel klein beetje data te verbruiken om de sleutels en blobpointers te versturen.
Als jij nu exact dezelfde bijlage meteen naar iemand anders stuurt, stuur je opnieuw de sleutel en de pointer naar de blobstore. Dit werkt over het algemeen niet al te lang, maar kan oplopen tot 30 dagen als een van de ontvangers zo'n lange tijd niet online komt. Daarna wordt het alsnog gepurged en zul je het opnieuw moeten versturen.
Mocht de ontvanger dus na bijvoorbeeld 35 dagen online komen, dan zal hij/zij een foutmelding krijgen dat het bestand niet meer beschikbaar is. -edit- Correctie, zelfs dat niet; want na 30 dagen wordt ook het oorspronkelijke bericht dat er mee gepaard ging verwijderd, dus de ontvanger ziet helemaal niets meer.

Als de ontvanger wel de pointer en sleutels heeft gekregen maar de bijlage nooit gedownload heeft (eg: autodownload stond uit (voor 4G) en ontvanger is het vergeten) en dat na lange tijd wél alsnog probeert, dan krijgt de ontvanger wel een foutmelding dat het niet meer opgehaald kan worden en zal de verzender moeten vragen het opnieuw te sturen.
De voordelen zijn dus:
- Minder algemeen dataverbruik (zowel voor gebruikers als voor WhatsApp zelf)
- Minder CPU cycles (accubesparing)
- Hogere snelheid als je het vaker verstuurd naar verschillende mensen (zoals je zelf gemerkt hebt

)
- Veeeeeel minder dataverbruik bij het versturen van bijlagen via de Web/Desktop client
- Authenticatie via E2EE en een veilige uitwisseling van de sleutels over het normale end-to-end encrypted kanaal met je ontvangers blijft geheel behouden.
- WhatsApp kan de encrypted blob veilig tijdelijk opslaan zonder dat zij hier toegang toe hebben omdat ze de sleutels niet hebben.
Dus:
Daar gaat je encryptie model dan en val je naar mijn idee mooi door de mand.
Neen.

Het is prima te verklaren en een hele goede oplossing waarmee de veiligheid, encryptie en authenticatie gewoon blijft behouden.

Je trekt je conclusie op een foute aanname, dat is nooit zo handig - zeker niet als de whitepaper die gewoon op hun website beschikbaar is het ook al uitlegt.
Ik hoop dat het zo helemaal helder is uitgelegd in ieder geval.
[Reactie gewijzigd door WhatsappHack op 23 juli 2024 13:15]