7
$\begingroup$

As those of you who use WhatsApp Messenger probably know, with their recent update chats and calls are now encrypted. Here's what WhatsApp claims:

Messages you send to this chat and calls are now secured with end-to-end encryption, which means WhatsApp and third parties can't read or listen to them.

Now let's put aside how WhatsApp is honest but what they claim is a technological feature. Is it really not possible for them to read or listen to our messages? If that's a lie, then don't they risk that some guys like you might say "Hey, what the hell are you talking about? Why do you lie?". So my question is, if they are the ones who encrypt this, then why can't they also decrypt it?

$\endgroup$
  • 4
    $\begingroup$ It is possible to achieve end-to-end encryption. The real issue here is exactly the assumption that the (implementation by the) company is to be trusted, not just in terms of honesty but also in terms of competence. That said, I cannot judge the specific case due to lack of information. $\endgroup$ – Aleph Apr 28 '16 at 12:59
  • 3
    $\begingroup$ Agreed. If they did it honestly and correctly then end-to-end security is achievable, however they may be faking it with man-in-the-middle eavesdropping. This would be slightly foolish in that an independent team could check whether the public keys of two contacts match up (however the data may be obfuscated to make it hard to find out) but it would also be very naive to expect Whatsapp to not be data-mining all user-generated content. Also, even if the contents are encrypted, the metadata isn't and still carries significant information about you and your contacts; don't lose sight of that. $\endgroup$ – Thomas Apr 28 '16 at 13:10
  • 1
    $\begingroup$ well, in a controlled network, i.e "WLAN", you could check by your own if the message is being encrypted, using some basic network knowledge and wireshark. $\endgroup$ – VP. Apr 28 '16 at 17:52
  • 1
    $\begingroup$ The concern isn't whether or not the data is encrypted. The concern is whether or not it's encrypted in a way that doesn't give WhatsApp or agents with, e.g., subpoena power over WhatsApp access to your messages. $\endgroup$ – Stephen Touset Apr 28 '16 at 20:34
  • $\begingroup$ You can't really trust any end to end that you don't fully control the source code of. Reading the terms and conditions of facebook secret messages and whats app makes me suspect too. (like the process if one user reports the other breaking Ts&Cs in a secret message) $\endgroup$ – daniel May 24 '17 at 8:39
9
$\begingroup$

So my question is, if they are the ones who encrypt this, then why can't they also decrypt it?

Because it’s not them encrypting your message, it’s the App on your device… which is why it’s called End-To-End encryption.

According to the security whitepaper (PDF), WhatsApp uses the Noise Protocol Framework which is based on the Signal protocol (formerly known as “Axolotl”). The Signal protocol has been designed by Open Whisper Systems (names like “Zooko” might ring a bell) and uses strong and well-vetted cryptographic approaches like ECDH using Curve25519. Besides that, WhatsApp additionally encrypts all communications between client and server via – so called – Noise Pipes (see Noise Protocol Framework for more information on that).

Skipping the details to keep it short, it seems as if WhatsApp did its homework and chose a well-vetted approach to provide encryption et al.

But there’s that little thing with WhatsApp that indeed represents a bit of a problem when looking at it from an InfoSec and/or cryptographic point of view: WhatsApp was, is, and remains closed source up until today. Practically, this means that you can’t really review the actual sourcecode and classify WhatsApp security based on that. So, you can’t really tell how much security it practically might (or might not) offer.

If you’ve ever looked at (or used) Signal as a messaging app, you’ll notice WhatsApp and Signal work in similar ways (read: usage-flow is very alike) which hints at the fact that WhatsApp has indeed implemented what it is saying. Yet, in contrast to Signal (which is open source) you can’t tell if WhatsApp has indeed implemented things correctly and without (let’s just call it) bugs in the code, which might or might not provide room for attack vectors.

All in all, your question uses the correct term: “claim”. That’s all it is and all you can trust in. A “claim” isn’t called “proof” for a good reason… in this case, you can not verify WhatsApp security claims by looking at WhatsApp sourcecode – as that’s unavailable to the public. All you have is their words (aka publications like the security whitepaper) and the fact that close-source WhatsApp somewhat feels like the open-source Signal app. In the realms of cryptography, small errors can (and will) break your neck – which is why I personally prefer to keep using Signal instead of switching to WhatsApp. OTOH, I’m weird… and there’s no real reason to suspect WhatsApp would even think about risking their business by publishing claims they can’t hold. Yet, they don’t provide much reason to trust them either. As Tylo commented correctly: it could all just be propaganda (aka marketing). In the end, it is a company with commercial interests and a close-source product… that somewhat renders “trust” into a “personal opinion” thing.

TL;DR

So, if your question boils down to “Is WhatsApp secure?” I would tend to say “According to their whitepaper, it should be”. If your question boils down to: “Can you prove it?” I’ld have to disappoint with a “No, as proof expects the ability to verify, which we can’t.” And if you want to know the details of “how WhatsApp handles End-To-End encryption and authentication”, check the security whitepaper and the Noise Protocol Framework links at the top of my answer. That should answer all those little cryptographic nit-bits (which are a bit too broad to mention here).

$\endgroup$
  • 2
    $\begingroup$ "...would even think about risking their business by publishing claims they can’t hold." Unfortunately, that is pretty much common practice concerning security features of any closed source software. If it can't be verified by the public, that's pretty much ideal for marketing. And if it turns out to be vulnerable, you just say "they must have hacked it. we did nothing wrong". $\endgroup$ – tylo May 2 '16 at 12:56
  • 1
    $\begingroup$ @tylo True. (tnx) Updated my answer by adding: Yet, they don’t provide much reason to trust them either. As Tylo commented correctly: it could all just be propaganda (aka marketing). In the end, it is a company with commercial interests and a close-source product… that somewhat renders “trust” into a “personal opinion” thing. $\endgroup$ – e-sushi May 2 '16 at 14:19
  • $\begingroup$ Just one small thing: Whatsapp also provides the updates for the app, and can eventually force you to upgrade the app (not maintaining backward compatibility for example). By doing so, nothing really stops them from sending you a malicious version that will either copy the keys or send them the decrypted messages (nothing other than their good name of course). $\endgroup$ – DiG May 3 '16 at 7:50
  • $\begingroup$ 1. While it is (presumably) true that WhatsApp don't have access to message contents they don't really need it. What is most valuable for surveillance is metadata and WhatsApp still has all of it. 2. Noise protocol is not based on Signal, they are complimentary. Noise is transport level client-server encryption (like SSL/TLS) and Signal is E2E encryption for messages. 3. While WhatsApp is closed source we still can reverse engineer protocol and verify that everything is indeed encrypted as described in whitepaper (although we can't check for any bugs/backdoors that way). $\endgroup$ – Poma Nov 21 '16 at 11:12
3
$\begingroup$

I haven't looked at watsapp specifically, this is a general answer on the practicalities of this.

It's possible to have end to end encryption where the private key never leaves the client. If the provider doesn't have the private key then they can't decrypt the traffic.

There are two problems though.

  1. Can alice and bob trust the client to do what it says it will do. The client could contain a backdoor to change the behaviour under specific circumstances. Alternatively it could contain a self-update mechanism through which doctored versions of the client could be sent to specific users.

  2. How does alice's client know bobs public key and vice-versa? If the client trusts the provider to tell them the keys the provider could pretend to be alice when talking to bob and pretend to be bob when talking to alice. If they don't trust the network then alice and bob need to take some responsibility for key management. You could have a warning when a key changed but many users log in from multiple locations, so a key change isn't nessacerally indicative of fowl play.

$\endgroup$
1
$\begingroup$

In a sense, I don't think it matters.

It's probably realistic for average users who aren't under direct investigation by a government for high-level drug-, terrorism-, or leak-related offenses.

If you have reason to suspect you may fall under one of those categories, it's in your best interest not to trust that WhatsApp isn't capable or can't be compelled to trick your client into encrypting to a key controlled by a governmental attacker. Use something open-source that gives you complete visibility and control over the keys your messages are encrypted with.

$\endgroup$
  • $\begingroup$ It's not that I'm concerned. I just wanted to know if what they claim is indeed technologically true. $\endgroup$ – Mikayil Abdullayev Apr 29 '16 at 5:00
  • 2
    $\begingroup$ This answer seems to suggest that surveillance could only be triggered by some sort of offense. That's incorrect: a lot of, if not most, surveillance is conducted for commercial purposes. The definition of "offense" can also be very broad, e.g. depending on which part of the world you live in. $\endgroup$ – Aleph Apr 29 '16 at 13:42
  • $\begingroup$ My assertion is that, given what we know about the situation, it's reasonable to assume that WhatsApp's technical implementation prevents large-scale, firehose-style surveillance. Additionally, it's reasonable to assume that the cost function for conducting surveillance on an individual user is comparatively high (especially given that it poses non-trivial risk of being discovered. Given those assumptions, I think it's a natural conclusion that you'd have to be a high-profile target in order to be overly concerned. $\endgroup$ – Stephen Touset Apr 29 '16 at 20:56
  • $\begingroup$ I agree with the assumption, that probably they didn't screw up entirely. However, I disagree with the other assumptions: If they want to, they can switch to an encryption mode, which is entirely transparent to them alone, and most likely the users wouldn't be able to notice it. It all comes down to what kind of cryptographic keys and random numbers are used. For example they could just use a few specific keys - where "few" means "little enough to make full search possible". And if the App would somehow indicate some ID of that key, surveillance cost and detection risk would be zero. $\endgroup$ – tylo May 2 '16 at 12:47
  • $\begingroup$ Or alternatively, they could even do normal key gen. And afterwards send not only the public key (which they need on the server, to make it available to other users), but also the private key to the server. Then it also depends if there is some kind of key exchange for session keys, etc. Basically, without verifying the source code, there is no way to tell if their claims hold or not. $\endgroup$ – tylo May 2 '16 at 13:02
1
$\begingroup$

The EFF Secure Messaging Score Card uses a checkmark system to rate different communications products. WhatsApp gets only 6 of 7 checkmarks. It gets an X in the "Is the code open to independent review?" category.

$\endgroup$
  • 2
    $\begingroup$ Which begs the question, how do they verify it has all the other properties? $\endgroup$ – mikeazo Apr 29 '16 at 17:14
1
$\begingroup$

Since the client is not open source, you cannot verify their statement. That is, it could very well be encrypted but in a way that would allow either WhatsApp or another third party to break the security.

To verify that it does encrypt data, you could use tools like WireShark to see whether text messages are sent in plain or encoded/encrypted.

Bottom line: never trust closed-source crypto, which is exactly what Facebook is doing with WhatsApp.

Edit: I forgot to add that the encryption library they use is indeed open-source (see here), but you still can't verify that it is well implemented.

$\endgroup$
  • 1
    $\begingroup$ IIRC it was already independently verified that WhatsApp uses the claimed protocols. This doesn't say anything though about what else it may be doing with some of the data... $\endgroup$ – SEJPM Apr 29 '16 at 13:51
  • 1
    $\begingroup$ Using claimed protocol doesn't guarantee that it is secure. They can for example generate keys in a way that complies with protocol but have reduced security/randomness. $\endgroup$ – Poma Nov 21 '16 at 11:17
1
$\begingroup$

The protocol and the encryption used is considered secure. And that is the extent of the cryptographic answer. However I am unaware of independent code review which would prove it does what it claims to do and has no serious implementation flaws. Also though WhatsApp encrypts end to end the messages are stored in the clear on end device. Many such devices are backed up automatically in the clear to google/apple (you can configure this).

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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