If your argument is "let's not trust Whatsapp", then it helps not to confuse it with discussion about QR codes.
We're bad at it, because we can't tell the difference between a "QR code is a hash of the public key", and a "QR code is something WhatsApp tells us represents this other person."
Why not just use pictures of puppies? Pick the puppy you've seen represent this person before, and be suspicious if the puppy's changed! Try talking to them in person about the puppy icon used for them and make sure they match! That is actually more secure than the QR code, even if it still doesn't protect you from WhatsApp.
The reason we're talking about QR codes is because they seem more secure than puppies; to make someone think that this QR code is actually security measure! While this attack may be "foiled" by E2E cryptosystems, it's important to note the big fucking trapdoor that means WhatsApp isn't actually providing E2E protection.
Conflating this simple fact with the overarching boogeyman of "validating software" does the discussion a disservice.
Good. You appear to understand the problem now.
I already alluded to the solution here:
> If I had access to my own public and private key, I (or someone I know) could conceivably verify that I'm using it by decrypting my messages using another device (e.g. using wireshark).
and here:
> That's why providing the keys (or better: being able to supply my own) is essential.
See, if I have the keypair, then for WhatsApp to subvert my conversation it needs to send the private key to itself -- something it can only do when it's not looking.
This means it would need to let me download the keys before it does any networking. If it absolutely must network before letting me have the keys, then it can allow me to install my own (new) keys. Then, WhatsApp doesn't know when I'm not looking.
If WhatsApp made it possible to catch them being dishonest, then it only takes one person to catch them and their name becomes mud.
Of course, the mere possibility that moxie could be compromised or even make a mistake is clearly too big a leap for HN these days...
> This means it would need to let me download the keys before it does any networking. If it absolutely must network before letting me have the keys, then it can allow me to install my own (new) keys. Then, WhatsApp doesn't know when I'm not looking.
Look up signed Diffie-Hellman. Have fun trying to capture that with Wireshark. You'd need a custom MITM tool. That or you're suggesting the developer gives up forward secrecy and passive attack resistance.
No.
This is completely and totally wrong.
This isn't a court of law on US television: You aren't trustworthy until proven otherwise.