Attack of the Week: Group Messaging in WhatsApp and Signal
blog.cryptographyengineering.com
blog.cryptographyengineering.com
"This undermines the entire purpose of end-to-end encryption."
"And yet, the entire point of end-to-end encryption is to remove the server from the trusted computing base."
"The challenge here is that since WhatsApp itself determines who the administrators are, this isn't quite so simple."
Not only does this system require trusting a third party, that party is none other than Facebook. Its business is built on learning about the lives of users and selling ads, not serving as a naive broker of "secure messages".
This is a weakness that not only requires WhatsApp to be malicious but to not care about the trivial visibility of an exploit (the client would still display the extra person being added to the group chat).
Your concern extends for all systems that require centralisation. Possibly one example of a chat client which addresses the concerns you raise is Ricochet [1].
Your Ricochet messaging client instance acts as a Tor hidden service. Your add contacts by their ricochet ID which is derived from an onion address. There is no central server / service involved. Everything is direct p2p between your messaging client and your peers.
The source code has been audited by NCC group [2].
It's limited - text only, no attachments, no voice.
If your threat model includes adversaries such as nation states, then this is perhaps the tool to use for simple text messaging.
[2] https://ricochet.im/files/ricochet-ncc-audit-2016-01.pdf
And as far as I know the whatsapp protocol is simply tokenised XMPP.
tl;dr is "I'd say the problem is in the reaction, not in the published analysis."
The point is that the server doesn’t know if they’re off and if you’re paying attention so if it’s cheating it runs the chance of being detected.
That way, you account for varying levels of paranoia.
Have WhatsApp and Signal had a chance to respond?
"The researchers say that Open Whisper Systems, the non-profit that runs and maintains Signal, nonetheless responded to their work, saying that it's currently redesigning how Signal handles group messaging. Open Whisper Systems declined to comment on the record to WIRED about the Ruhr researchers' findings."
"In a phone call with WIRED, a WhatsApp spokesperson confirmed the researchers' findings. [...]And the WhatsApp spokesperson also noted that preventing the Ruhr University researchers' attack would likely break a popular WhatsApp feature that allows anyone to join a group simply by clicking on a URL." So I don't think WhatsApp will fix it.
And for those concerned about the issue, you can monitor the member list and make sure you carefully check all messages. If you're really concerned about encryption that's what you should do anyway.
I think this is false, I wrote that on the Wired thread, but here's a way to fix it:
1. when you create a joining link, it creates a secret uuid
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.
This was quite some time ago, so they have been aware of that it was lacking somehow, possibly even before this was discovered.
Guessing the 128-bit number is non-trivial, and once someone has the ability to access the group id, all is already failed.
I mean no offense to the developers, but this seems like a fairly basic oversight and quite concerning that respected and popular products didn't get this level of review until now.
No crazy cryptographic mess involving improper ordering of authentication or weird random number generation, this is a simple logic bug. One that I'm sure many of us would have considered if we were implementing it, things like this do get missed too of course, but enough eyes on the design could have caught this.
It wasn't a design flaw, it was an insecure-direct-object-reference implementation flaw. IDORs are extremely common, but since the group id is an unguessable 128 bits, the bug can only be used by someone who was already in the group previously to rejoin the group. I'm sure it'll get patched shortly, if it hasn't been already.
For the WhatsApp case, a malicious WhatsApp server could add someone to your group, but everyone in the group would see it.
These bugs are not big deals. The real harm comes from regular people reading articles like the Wired one or the famously wrong Guardian one and switching to much worse alternatives, like SMS or Telegram.
I can understand why you give SMS as an example, because it is just plaintext. But why Telegram? As far as I know Telegram is probably better secured over a service like Whatsapp.
Edit: the latter is an assumption from me, I do not have any claims to back this up. Thats why I'm asking.
Wish you weren't getting downvoted for asking this - asking is how people learn.
Entirely agree here, these are UI/UX bugs sure, but attacks? Come on...