21

I've been told that WhatsApp implemented "end-to-end" encryption. In the grand scheme of things, what does this actually mean versus, say, another service which does use HTTPS, such as this website (StackExchange) or some other non-end-to-end encrypted site? Is there some point where even HTTPS/TLS will expose data that doesn't occur in an end-to-end encrypted app like WhatsApp?

37

Let's define end-to-end as where the message is encrypted by the sender and decrypted by the receiver. Nobody in the middle, not even the chat provider, has the ability to decrypt it.

Compare this to a simple chat over HTTPS. The message is encrypted by the sender, just based on the fact that TLS is used. Now, while the intended recipient is another user, the TLS connection is initiated with a server (think Facebook). TLS terminates at the server, and whoever controls the server has the ability to view the messages since they are not encrypted. Then, the message may be passed on encrypted over TLS again to the recipient.

The key difference is that the provider is able to view the messages in the second case.

  • And what if in some theoretical situation, the receiver is just the server and no further point? Then would it be end-to-end? Because the client is one end and the server the other one. – O'Niel Apr 12 '17 at 23:48
  • 8
    Yes, by definition that would be end to end, since the encryption is terminating... at the end. – multithr3at3d Apr 12 '17 at 23:55
  • Wow. Is there any trick to determining which services offer end-to-end versus what you just said where it's just HTTPS to them and then HTTPS out to the other person? I know with email, some services offer encryption of the email message itself and a key which is given to the recipient, so that would be end-to-end over HTTPS as well, right? – the_endian Apr 13 '17 at 0:00
  • 7
    There's not really a trick, unless the provider tells you so. Even then, you just have to trust them, unless the service is completely open source or if you are using your own keys. I'd say the only verifiable end-to-end email encryption would be S/MIME. – multithr3at3d Apr 13 '17 at 0:02
  • 1
    @korockinout13 Gotcha. The other option would be a manual encryption (using a proper algorithm ofc) where you literally message the encrypted message in the text, so that even if the organization didn't wrap it at their place, they would only see encrypted message... If I'm not mistaken! – the_endian Apr 13 '17 at 0:12
10

End-to-end encryption (think: enduser-to-enduser encryption) is a concept where communication is encrypted directly between the users of a system, whereas many systems just provide encryption between each individual user and the service provider. That is, with E2EE only the sender and receiver of a message can access the message content. Neither the service provider nor any party involved in delivering the message would see it in clear text at any time.

What's the difference between end-to-end and regular TLS encryption?

E2EE does not describe a particular technology or dictate certain protocols, it only describes the way a system is designed. TLS on the other hand is a specific cryptographic protocol that could be used for an E2EE implementation (although many E2EE chat programs use advanced algorithms that are better suited for instant messaging than TLS, such as the Signal protocol). Note that technically speaking, any secure communication tunnel provides encryption between two ends, but the term end-to-end encryption is usually applied to messaging services or, more generally, the secure communication between users of a service but not between a user and the service provider itself.

So, if you send a regular Facebook message, it's not end-to-end encrypted between you and your conversation partner because Facebook's servers store your messages in plain text. Therefore, the message content would be accessible to Facebook administrators or law enforcement upon request. However, your connection to Facebook is technically an end-to-end encrypted connection between you and Facebook because you're using HTTPS.

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.