64

Today I woke up and checked my Whatsapp and got the message that communications are encrypted end-to-end from now on.

However, how can I know whether Whatsapp can be trusted?

I did not generate my private/public keys, nor can I change them. Isn't this always a security flaw?

Could it be that the private keys were intercepted as they were being sent to users?

Could it be that Whatsapp kept the private keys, just in case the FBI gets really mad about not being able to access some account and demand cooperation?

  • 64
    How could you know whether Whatsapp could be trusted before? – M'vy Apr 6 '16 at 12:27
  • 6
    The private keys are supposedly generated on the user end and only the public keys are sent out to WhatsApp. And FYI: E2E encryption won't stop the FBI as they can just try to pull off what failed with Apple with WhatsApp (i.e. a malicious targeted software update). – SEJPM Apr 6 '16 at 12:30
  • 3
    Plus they have law that forces messaging service to keep records and hand the over on court order IIRC. – M'vy Apr 6 '16 at 12:31
  • 3
    @M'vy, but this is merely cipher text if WhatsApp isn't lying... – SEJPM Apr 6 '16 at 12:37
  • 12
    This is Facebook that we're talking about. Would they really respect user privacy? – Lolums Apr 6 '16 at 22:25
55

"I did not generate my private/public keys"

You didn't, but your device did.

"nor can I change them"

I wouldn't be surprised if they add that ability in future (as it'd just be a case of being allowed to authenticate with your existing key and then request that it be replaced: providing only a new public key at that point)

Could it be that the private keys were intercepted as they were being sent to users?"

The keys are generated client-side, or so they say...

"Could it be that Whatsapp kept the private keys, just in case the FBI gets really mad about not being able to access some account and demand cooperation?"

We'll see....

Their paper gives a decent description of what's going on and includes a link to the (open source) protocol library that they use.

However, as with any system, you ultimately have to trust that they're on your side and not the bad guy's (whoever that may be) because if they control the code and the updates to it, then they still have the power to release modifications targeting specific users etc if required... However, much like the Apple vs FBI case, it's really not in the tech companies' best interest to be seen to give in to such demands.

  • "if they control the code and updates to it, then they still have the power to release modifications targeting specific users" technically this wouldn't be a problem if password key derivation was used (which is much better than storing the key on device alone). – PyRulez Apr 6 '16 at 16:37
  • 20
    @PyRulez It would still a problem. A silent update that patches LoginActivity.java and adds 2 lines of codes to take your password from the input field and send it to WhatsApp servers. Another way is to patch the message decryption logic and append code that sends the message to WhatsApp servers. Even another way to do it is to duplicate the message the encrypt the other copy with WhatsApp-provided key. The possibilities are endless. In the end, no matter what technologies and cryptomagic they use, you have to decide whether you trust WhatsApp or not. Personally, I still use WhatsApp. – Adi Apr 6 '16 at 16:43
  • @Adi yes, but it would add an extra layer (the F.B.I. couldn't come after the fact and get your data unless they get you to tell them the password). Really, you really have no way to be sure of the safety of closed source apps anyways. – PyRulez Apr 6 '16 at 16:47
  • 2
    It's great that they're using the Signal library (it has a good pedigree) but WhatsApp has traditionally been so insecure, I find it hard to believe they're using it in a secure manner. – Basic Apr 6 '16 at 16:55
  • 4
    @timh indeed - the clue is in the name... If you have access to an end of the "end to end", then that's a very different scenario... xkcd.com/538 – Nathan Apr 7 '16 at 19:41
14

It is correct that you did not generate the keys, WhatsApp did. So you have to trust WhatsApp on this, and on not keeping any copy of the private key. At most you can verify that you are exchanging messages with whom you think you are by comparing the 'fingerprints' of the keys (again trusting WhatsApp on this as they tell you this information).

In short, you have to trust WhatsApp to follow the security protocol for each step as described here. WhatsApp source code is not available, therefore, if you use it, you must be aware that you are trusting WhatsApp on everything you do, whether the communication channel is said to be encrypted end-to-end or not.

  • If you're going to 'trust' WhatsApp, why would they have to bother in doing so much at the first place? Why not simply ask the people to 'trust' them and then take the risk of trusting them? – Muhammad bin Yusrat Oct 20 '16 at 9:05
  • There is a different in saying "WhatsApp won't read your chats" and saying "WhatsApp cannot read your chats" obviously second statement is what WhatsApp is making. – Muhammad bin Yusrat Oct 20 '16 at 9:06
  • @MuhammadbinYusrat There is no way to verify neither of your two claims until WhatsApp opens up its source code. Your second statement obviously implies the first but the question is mostly about verifying the protocols in place (and how and where the keys are generated and stored). – Guille Nov 3 '16 at 14:41
  • I haven't made any claims. – Muhammad bin Yusrat Nov 3 '16 at 14:52
  • @MuhammadbinYusrat You did so when you implied knowledge on WhatsApp may or may not be doing, unless you cite the sources, these statements are of your own. And as said, neither of them, without proof on your side (or reference), can be accepted. – Guille Nov 7 '16 at 14:37

protected by Community Sep 10 '16 at 16:33

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.