WhatsApp Encryption Security Flaws Could Allow Snoops to Slide into Group Chats
wired.com
wired.com
If someone hacks the WhatsApp server, they can obviously alter the group membership. If they add themselves to the group:
1. The attacker will not see any past messages to the group; those were e2e encrypted with keys the attacker doesn't have.
2. All group members will see that the attacker has joined. There is no way to suppress this message.
Given the alternatives, I think that's a pretty reasonable design decision, and I think this headline pretty substantially mischaracterizes the situation. I think it would be better if the server didn't have metadata visibility into group membership, but that's a largely unsolved problem, and it's unrelated to confidentiality of group messages.
In contrast, Telegram does no encryption at all for group messages, even though it advertises itself as an encrypted messenger, and even though Telegram users think that group chats are somehow secure. An attacker who compromises the Telegram server can, undetected, recover every message that was sent in the past and receive all messages transmitted in the future without anyone receiving any notification at all.
There's no way to publish an academic paper about that, though, because there's no "attack" to describe, because there's no encryption to begin with. Without a paper there will be no talks at conferences, which means there will be no inflammatory headlines like this one.
To me, this article reads as a better example of the problems with the security industry and the way security research is done today, because I think the lesson to anyone watching is clear: don't build security into your products, because that makes you a target for researchers, even if you make the right decisions, and regardless of whether their research is practically important or not. It's much more effective to be Telegram: just leave cryptography out of everything, except for your marketing.
Then why does the Telegram faq state that there's "server-client encryption" for group chats? [0] "Secret Chats" supposedly even uses e2e encryption [1]
Note: Never used Telegram (Signal does the job for me, thank you!), I'm no coder, but your comment makes me wonder if I'm missing something here?
Now I feel kinda stupid for asking the question, guess that whole "There is no encryption" and Telegram faq saying "We have encryption!" threw me off, what's encrypted where is obviously the most important aspect.
In contrast to that Signal and WhatsApp don't nearly get mentioned as often, at least in regards to "encryption enables terrorists!" FUD.
[0] https://www.hsdl.org/c/extremism-and-encryption-terrorists-o...
[1] http://www.smh.com.au/technology/technology-news/telegram-th...
I have a few questions:
- How does group messaging in Signal work?
- Does the server also hold group metadata?
- If there is a difference, why is there a difference?
I'm going to be honest, moxie. I'm a big fan of your work, and I basically agree with everything you've stated here as someone who works in the security industry. I don't particularly like Telegram, and I encourage use of Signal where possible. Just last week I was defending Signal on HN[1].
However, I think you shouldn't be bringing up Telegram here. The article does not mention Telegram by name, and I think that bringing it up here, as one of the developers of the Signal Protocol, distracts from your point. Holy war threads between Signal and Telegram bubble up on occasion on Hacker News, and people are basically aware of who you are. As an outside observer, bringing up Telegram in the way you did comes across as preternaturally defensive whataboutism.
I think you could have expressed your points about the security industry's disincentives (which are legitimate observations, in my opinion) without using Telegram as an example. But bringing up Telegram instantly shifts the focus away from Whatsapp, Signal and latent problems in the security industry; instead, it becomes the usual Signal vs Telegram circus. I don't think that's a particularly persuasive way to forward your points.
To reiterate: I agree with what you're saying, but I think that it's very likely your comment will be perceived in a way that you don't intend, to the detriment of persuasion.
___________________________
He quickly dismissed the idea that this vulnerability is a real one, and explained why. In the end it looks like a minor issue, blown out of proportion by this article.
The problem is precisely that this article does not mention Telegram even though it is in direct competition with Signal. If I didn't know better, I would assume from the article (and the paper) that Telegram is not subject to this vulnerability, and is probably "still" secure (if I thought it was before). Moxie addresses the issue, so this is not whataboutism; he just hints at what the article should have mentioned, that experts have been recommending Signal (and, after it, WhatsApp) over Telegram for ages, and that even though this recommendation could now take a hit, it probably won't budge with a vulnerability that small.
> Holy war threads between Signal and Telegram
"vim vs emacs" is a holy war; the fact that Signal is more secure than Telegram is not, when there is a consensus among experts about the question. IMHO, calling it such is misleading.
When you're in the industry, especially a leading innovator in the industry, it's infuriating to see an inferior product being recommended, one that you can credibly suspect doesn't even deliver on the promises, but in your attempts to discredit that product you'll sometimes come off as a crusading zealot, to the detriment of other content you've packaged with your commentary.
There was little need to call out Telegram in the post by name, because it does instantly re-frame the conversation, and in a forum some of the conversation will continue down the new path, as it does now. That's a mistake in this format, and it does come off as a defensive misdirect made in the heat of argument. A place to reinvigorate this criticism in light of the new revelations is one's own personal -- or even professional -- blog, where you can start off on the high ground.
[1] https://hn.algolia.com/?query=by:moxie%20telegram&sort=byDat...
Maybe it would seem that way for someone who's religiously following what Moxie says, but that's sort of like complaining of hearing "you should charge more" too often if you're religiously following patio11.
I also think he made a valid point in his most recent post, and mentioning Telegram added valuable context to his argument.
A holy war is determined by its propensity to raise "debates of attrition" in which both sides are so unyielding they may as well be (and sometimes are) ideological. Whether or not one side has a legitimate claim to superiority over the other is entirely orthogonal; such a debate is "holy" in nature because even if that superiority existed and was demonstrated, it would not be accepted. You cannot use reasoned expertise to decompose ideological adherence.
With respect to your other point:
> The problem is precisely that this article does not mention Telegram even though it is in direct competition with Signal. If I didn't know better, I would assume from the article (and the paper) that Telegram is not subject to this vulnerability, and is probably "still" secure (if I thought it was before). Moxie addresses the issue, so this is not whataboutism; he just hints at what the article should have mentioned, that experts have been recommending Signal (and, after it, WhatsApp) over Telegram for ages, and that even though this recommendation could now take a hit, it probably won't budge with a vulnerability that small.
I would have accepted this explanation, which is far more nuanced in presentation than the one we're discussing. You added all the context that would have safely negotiated those waters; but as stated, the comment does not achieve this purpose, in my opinion.
Although this is true, I guess in this case this is not related.
As long as all the communication between peers are e2e, I think this situation can be solved by peers advertising the people they have invited to the group, later clients can refuse to do key exchange with parties, which are not announced before.
Or server can send new member join messages, by relaying a invitation message signed by the admin (or whoever invited the member)
This breaks group join links.
(I've been downvoted for saying that, but the solution works)
2. this uuid is shared with the rest of the group
3. if Alice joins the group, every uuid created is shared to Alice (except the one Alice used, if Alice used a joining link)
4. when Bob attempts to join the group via the group id, if Bob does not have a known code Bob is refused
5. if Bob uses a known code, Bob is accepted and everyone deletes the code
This does not prevent different participant views to be created, but this is already a problem in WA anyway.
> and everyone deletes the code
I'm not sure I understand your attack in (b), the message is encrypted to the participants the server cannot relay or mitm it.
Ofc then whatsapp can reuse that link, but there is already some warning for invite links in whatsapp help
I am not sure your point is really being reinforced by comparing a flaw by a bigger flaw. You admitted (regarding WhatsApp) that 'it would be better if...'. And that it's an 'unsolved problem'. So why not focus as a community on solving that problem instead of comparing it to a (in your opinion) bigger problem (meaning Telegram) to even out the score?
Additionally, Telegram did not leave cryptography out of everything. You might not agree with it, it might not be secure, it might not be available in group chats, but to say they have left it out completely isn't true[1], you know that too.
Of course an attacker can subscribe to the conversation if s/he owns the server, but that doesn't make it "obvious" that s/he can actually read messages' contents from that point onwards without any sort of confirmation from the chat's participants.
A notification in a busy group gets lost, and in the scenario of an attacker owning the server, they could easily time it to coincide with a busy period.
The only issue that I see here is that a large group may not see the user joined. People can ignore those messages over a certain threshold.
However most large groups are not going to be as privacy sensitive so it is not really an issue.
The reasonableness of the WhatsApp design decision is ultimately to be determined by users. If users have no insight into the design then we can hardly say they have already decided on reasonableness. At best we can say they are ambivalent. (But if that were true, why would anyone responsible for the design care about the headline?)
Whether users get their insights into the design from WhatsApp, self-directed research, the work of "security researchers" or the media is perhaps an important issue.
If WhatsApp has made the "right" decisions then one would think they would be very forthcoming in subjecting them to review by users. If so, there would be very few surprises. WhatsApp could simply point to a detailed, public, technical document they released and say, "There it is. We tested or considered this before releasing the software and informed users about the risks, however remote. As such, nothing has been "discovered" by these researchers."
But I suspect if we went looking for this information we might only find marketing. Information promoting a "new feature", group chats.
If a WhatsApp/Facebook employee or contractor joins the chat is that considered an "attacker"? Example of a silly question perhaps, but it still needs to be answered, lest some "security researcher" and the media produce an undesired headline.
Anyone designing a messaging system today should be aware that some people are going ask these types of questions, sooner or later. Millions of people will not ask them and use the software willingly, but does that necessarily mean they do not care about these questions if someone else asks them? If yes, then headlines about "non-issues" should be of no concern.
Honestly, this paper would be fine if it was just an analysis. The shitty thing about it is rather the prep'ed buzzy wired article
EDIT: I just noticed that Matthew Green published a blog post about this titled "Attack ...". That's really surprising :/
How so? He consistently sensationalises his stuff.
I feel like the article could have mentioned Telegram though, and I don't see why it couldn't have been mentioned in the paper too.
Nitpick: Signal solves this problem just fine¹, by treating messages to a group as simple pairwise messages, encrypted similarly to pairwise messages, and sent separately to each member of the group. Group management is all done through these e2e-encrypted messages.
¹Signal also has a group messaging bug in that the app doesn't check that someone is a member of a group before accepting their group management commands, but that is trivial to fix.
how do you know what do telegram users think in regards? Assumption? — mother of all f*ckups, they say
When someone joins/leaves the group every participant generates and distribute a new key. So as a rogue participant, the keys you’ll receive won’t allow you to decrypt past messages.
PS: this article was posted before the speaker was even done with his talk. This is funny?
However, it's clear that the severity will depend on the particular group. A group of three friends will certainly notice when someone is added to the membership. A larger group of people who don't know each other personally but trust the administrator to administer membership will have to rely on the admin both noticing and taking action, and he may be hampered in doing so by the attacker.
The article states that admins can suppress messages, including the ones that report that someone has joined.
...a WhatsApp spokesperson confirmed the researchers' findings, but emphasized that no one can secretly add a new member to a group—a notification does go through that a new, unknown member has joined the group.
Given that WhatsApp isn't open source and so on, controling the WhatsApp server, or controling some part of its code, or controling the signing keys, all can compromise the privacy and encryption.
This study shouldn't cause much surprise.
But its not just a false sense of security. Yes, everybody that understands security will have issues with all the problems all of us know that exists. That however does not change that for user there was a real increase in security.
I would rather say it is rather disingenuous for you to claim that it is all false security just because it is not what you would consider perfect.
And that is exactly what I mean by security people giving up. Twenty years ago what I think is perfect was merely the norm. Now WhatsApp is OK and it's just me who doesn't consider it perfect.
I was just at a confrence where new more secure communications was one of the topics and there are many people working on new apps, improved protocols and working on figuring out flaws in existing products.
Everybody there understands the security constraints of Whatsapp, and believe me they can hardly shut up about it.
I refuse to think Mark Zuckerberg
* bought it for north of USD10Bn
* made it free
* stopped all other monetization efforts (paid api gateways etc)
just to provide free messaging service to everyone.
I have two explanations:
* either he felt it was a threat to his future messenging monopoly
or
* (and this is already not a secret anymore) they wanted to feed the data into their already huge tracking and ad serving network.
Both of those are good enough reasons for me to leave as I care about healthy competition and my future privacy.
But maybe the biggest reason why is because they lied to me: they promised to be the service that provided a good messaging service in exchange for a modest fee. They were profitable and yet sold out.
0. https://www.theguardian.com/business/2017/may/18/facebook-fi...
You mean you agree he had an evil plan and it was thwarted?
Well, if you don't consider "being open source" a security feature...
If you are going to audit something for its security features, you pretty much have to start with a disassembled binary, don't you?
In practice, that's unlikely to work, but it could work.
I've tried so many times to convert people, but every non-security person prefer LINE, WhatsApp and Telegram. The reasons are simple; they are fun to use, good user experience and the most important one "my friends use it".
My girlfriend/fiancee: Lives in another country, we're sharing data involving PII to deal with immigration stuffs.
My sister: We have a side project and I'd like to use the team based, private git repos.
A colleague: Same as sister, plus he's generally interested in privacy/security. And it's still been like pulling teeth to get him to do it.
This is why I disagree with Matthew Green, do not think we've totally figured out secure messaging yet and that they're all "so good", and think that if you're serious about privacy --- enough to have strong opinions about WhatsApp vs. Signal, for instance --- that you should use multiple messengers:
- a "tier 1" secure messaging app like Signal that makes all reasonable tradeoffs in favor of security and privacy regardless of the UX cost, used when possible and for sensitive conversations.
- a "tier 2" secure messaging app like WhatsApp or Wire as your "daily messenger".
- "tier 3" messenger applications (including email) that you use mostly to rendezvous to a real messenger application.
In this scheme you can start to understand Signal as not just a decent messenger application with best-in-class security and privacy, but also as a laboratory for future privacy enhancements to messaging.
signal solves messaging.
but messaging is only a small part of whatsapp success. Whatsapp is a social network site. where you add friends by the bucket, even if you dont't plan on messaging them, and share baby pictures to a circle or family/friends.
Well, you can in a group chat.
I also wish that Signal had better search capabilities, and export/import on iOS.
And also support for non-phone accounts.
Just now, I tried to install Signal and WhatsApp for work communication. Neither is willing to let me do anything unless I grant them permission to read my contacts.
I use WeChat. (Not for security reasons, obviously.) Somehow, despite the fact that WeChat is heavily coupled to your phone, they've realized that it makes more sense to use a WeChat account than a phone number, and that it makes no sense to prohibit users from just adding contacts manually. Adding contacts manually is actually a preferred approach! (In the form "scan QR code".)
I am experienced with iOS, but honestly it is a big app so those who are familiar with Android could do this better, as I believe they actually have decompilers versus needing to read the compiled ARM code.
The administrator of a group should sign the "add member" messages, and group members should only believe that a member has joined if they have such a signed message authorizing the member. You are correct in so far as this is apparently not what happens at the moment.
Anyway these are small issues because the attack still doesn’t reveal any messages to the attacker. These are more about UI/UX issues.
This comes with some usability tradeoffs of course. But it's possible.
Which would stop anyone from being invited to the group
> or they do 1:M sending
That's what they do. When you join a group you generate a key that you distribute to all the other participants via a 1-on-1 encrypted session, you then use it to derive keys in a normal chaining-key thingy to encrypt messages to all other participants.
> they could just check for authorization from the admin
So you mean the admin would be in on it?
No, just the malicious server adding the malicious user.
> So you mean the admin would be in on it?
I mean WhatsApp could patch this attack vector by requiring the new member to get a signed assertion from the group admin, proving to the other members that the group admin was the person who added the user.
this is related to what I was talking about, except that in my scenario the admin distributes the proof
WhatsApp Web is essentially a hack where any message you send through the web app is _always_ routed through your phone (which is why it needs to be connected all the time).
Earlier you could not even view the media on the web client without first downloading it on your phone. But now it looks like they've hacked it further such that you can view the E2E encrypted message on the web app without downloading it to your phone. I guess it achieves this via shipping the decryption key to the web app (just for the current session) where it allows it to decrypt messages in the browser and using the phone just as a router of sorts. This is just speculation based on apparent behavior though.
Yep! Painless to use, and truly cross platform. WhatsApp operates like a charm.
In Signal, apparently some malicious users that are not a group member (such as a former group member) could add users to a group. In Threema and WhatsApp, a malicious server can add further users, but Threema has apparently fixed that already.
Messaging is analogous to money in a lot of ways. Perhaps we'll see a good distributed peer to peer messaging protocol at some point in the future.
The Matrix protocol is actually fairly promising, as long as you only use it for Matrix<->Matrix communication. Things fall to pieces when you try to bridge it with IRC.
It's certainly more user-friendly for non-tech. folks than, say, the awkward key exchange/setups of XMPP clients, but it's still a far cry from something like Signal in terms of 'ease of use'
What do you mean by that? Conversations.im establishes e2e secure session without any fingerprint approving interaction whatsoever. Of course you can manually scan barcodes for paranoid mode but that's not necessary.
For me it's a perfect balance between convenience and security. Read more at https://gultsch.de/trust.html
I was mainly speaking to previous experiences trying to set up Conversations on one device, Pidgin on another, there not being any good way to use a consistent key for my user on both, and trying to walk non-technical family members through that fiasco. This was about 2 years ago, maybe the situation has improved!
I could be wrong though.
Any time you have a central authority providing that validation, you have to trust that your "friend" hasn't fooled them.
This is much easier to explain to a non-techie than comparing security numbers or hashes.
- Red = No trust
- Yellow = You trust that the server has verified the identity
- Green = You have verified the identity yourself
(Edit: Formatting)
Edit: Found the problem with that. Certificate authorities are supposed to actually go out and confirm that the person who requested the certificate, is the person that they say they are. This is far too much work, if you want to verify each individual person who wants to use a messenger.
And then if you want to talk to them, you encrypt your message with their Public Key. Then only they can decrypt it with their Private Key (assuming no one else their Private Key).
But if a hacker / NSA agent / script kiddo pretends to be your friend and tells you their Public Key, then they'll be able to decrypt your messages with their Private Key. You might never know that they aren't your friend.
You'll have to ensure that you actually have the Public Key of your friend by some other method. For example meet them in person to exchange Public Keys, or read it out over the phone, if you know what their voice sounds like on the phone.
It could be decentralized through pluggable identity authorities which provide the public key transfer via a secure channel. Essentially you'd use the same protocol and select what servers (WhatsApp, Signal, maybe some sort of immutable ledger elsewhere) to use.
As much as Jobs revolutionized the smartphone industry, this is the long-lasting legacy we will have to live with for decades (or forever?).
EFF's recommendation list is being remade: https://www.eff.org/secure-messaging-scorecard
But the old one is still reachable from it.
WhatsApp is the one that got bought by facebook, which should be a red flag for those sensible.
From the EFF page you have linked. :D
I want my donations back.
Someone was asking about blockchains. THIS is why you use blockchains. So you don't trust just the server. Actually everything on the Web trusts the server. That's just how the Web was designed.
Now, one way to mitigate this - and also improve security in open source projects - is to implement a blockchain hosted by many organizations which can't all be compromised easily.
At Qbix, we are working on a drop-in data structure that would implement arbitrary business rules in a secure way. The nice thing is you don't need everyone to adopt it, for it to help you secure your network.
For example, some guy starts a group so he has all the access and privileges, and he uses them to invite others and assign privileges. Then he repudiates his own privileges in the group. Now everyone can verify and be SURE that everyone has the same privileges - rules are added for different types of Messages posted on the Stream and are are enforced by the blockchain.
That is how you do governance. It ain't easy but there can be packages made, of different governance types.
PS: However when you have end-to-end encryption, you don't need the blockchain to be hosted on servers. You can have the server relay messages between clients and enforce rules on the clients.
If you don't need consensus, sometimes you don't even need a blockchain! For example, with Reddit, you can just have an append-only Merkle Tree and have clients pass each other comments.
But what if you wanted to expand more comments? Do you have read permission? Do you have write permission?
One way to do it is on a per-thread basis. Each thread is owned by its OP. The rules are enforced by the OP and the messages are published by the OP. So then you trust the OP to be available (online) and accept and broadcast your reply etc.
But if you have MORE THAN ONE user involved in governance of a Stream (our terminology) then you need a blockchain. At the very least, to verify there are no malicious forks of a stream.
If you want to find out more you can look in my profile (about) and email me.