Wordt die private key gegenereered bij de installatie van de software-app op je telefoon ?
Dan zou je dus ook een private key moeten kunnen laten genereren voor een app zonder telefoonaansluiting.
Nee, om de veiligheid sterk te vergroten worden de keys per chat aangemaakt. Je hebt dus tig private sleutels als je een shitload aan gesprekken hebt.

Ik veronderstel dat het kopieren van die key die de whatsapp applicatie op je telefoon dan wel windows-computer zou hebben gegenereerd op beschermingsmechanismen zou stoten wanneer deze naar een ander device wordt overgebracht ?
Ja en nee.
De sleutels kan je natuurlijk overpompen via de WA servers of P2P; maar dat is beveiligingstechnisch iets minder prettig, tenzij er ook E2EE (End-To-End Encryptie) wordt toegepast tussen de computer en het toestel. (Anders kan WhatsApp de sleutels onderscheppen tijdens de exchange snap je? Dat willen ze dus absoluut niet.)
Voor zover ik weet is de verbinding tussen je toestel en computer wel end-to-end encrypted. Ik weet niet zeker waarom op dit moment de sleutels niet op meerdere devices mogen staan; ik gok omdat het een verzwakking is en de controle op MITM (Man In The Middle) aanvallen ondermijnd in de huidige opzet omdat je dan theoretisch een controle kan hebben met iemand die vervolgens een compleet andere device in 't midden erbij blijkt te hebben.
(Dat kan in principe sowieso (met aardig wat moeite, want er zit ook nog een TLS laag overheen) als de sleutels gestolen worden; maar dan heb je het toestel nodig. Als je toegang hebt tot het toestel boeit het eigenlijk al weinig meer of je die sleutel wel of niet hebt.) En dan is er nog malware.
Hoe gaat whatsapp om met het veranderen naar een nieuwe telefoon ?
Ik neem aan dat het toch mogelijk zal zijn over te stappen op een nieuw toestel en dan heb je dus ook het probleem dat je die private key niet op dat nieuwe toestel hebt ?
Klopt, als iemand WhatsApp opnieuw installeert (of dat nou op huidige of nieuwe toestel is) dan worden er nieuwe sleutels per chat gegenereerd. Als je "Beveiligingsmeldingen" hebt ingeschakeld onder instellingen krijg je dan ook meteen een waarschuwing dat "<contact> beveiligingscode is gewijzigd"; en dan moet je (al doet niemand dat natuurlijk

) opnieuw de beveiligingscodes met elkaar vergelijken om te checken of je wel E2EE bent en praat met wie je denkt te praten.
Berichten die je eerder hebt ontvangen worden bij herinstallatie/nieuw toestel natuurlijk gewoon vanuit de back-up hersteld; dus die boeien niet zo.
Het enige probleem is dat berichten die nog niet afgeleverd zijn op je toestel. Voor die berichten wordt een foutmelding naar de verzendende client gestuurd als de sleutels blijken af te wijken, zodat de verzender het bericht opnieuw kan versleutelen adhv de nieuwe public key en het bericht zodoende opnieuw encrypt kan versturen.
Het bericht moet op de server staan en de client mag geen "afgeleverd" bevestiging hebben gekregen; anders vindt de re-transmit niet plaats. (Dit om te voorkomen dat een hacker bijv met een rogue accesspoint zou proberen om te verzoeken een hele chat te re-transmitten.

)
Hier zit overigens meteen een theoretische (en kleine) zwakte in WhatsApp, omdat zowel de client als server niet wachten op de controle van de beveligingscode nadat de sleutels gewijzigd zijn; maar meteen begint met de re-transmit voor nog niet eerder afgeleverde berichten. Dat is een bewuste security trade-off vanwege gebruiksvriendelijkheid, en is minimaal omdat er toevallig onverzonden berichten nog op de server moeten staan en ook enkel die berichten opnieuw encrypt worden. De impact is minimaal tot geheel nul, en er moeten wat dingen gebeuren voordat dat uberhaupt succesvol misbruikt kan worden. (En dan nog is de impact zo minimaal dat het meer moeite is dan dat 't wat oplevert.)
Heb het daar echter toevallig recent wel over gehad met WhatsApp, en er wordt gekeken of er een optie ingezet kan worden die deze re-transmit tegenhoudt totdat de sleutel is gecontroleerd **mits de gebruiker dit zo heeft ingesteld**. (Een extra optie onder beveiligingsinstellingen dus.)
En dat laatste gewoon puur omdat het nog best vaak voorkomt dat WhatsApp opnieuw geïnstalleerd wordt/mensen van telefoon wisselen; en je dus niet als standaard gedrag wil dat je dan steeds verplicht de code moet scannen; daar snapt het merendeel van de gebruikers waarschijnlijk geen fuck van, maar is wel boeiend voor de mensen die echt leunen op E2EE of gewoon paranoide zijn.
Enfin, die sleutels worden door het toestel gemaakt en op het toestel gehouden.
Ik weet niet precies wat de achterliggende gedachte is bij het niet uitwisselen van sleutels met je computer, daar heb ik dus enkel een theorie over... Zeker weten wat de reden is doe ik niet.
Hoop dat dat het uitlegt/iig toegelicht heeft.
[Reactie gewijzigd door WhatsappHack op 12 mei 2016 14:01]