News for hackers. Stuff that matters.
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by united893 on Wednesday July 13, 2016 @03:16PM (#12088852)
They're simply providing a better user experience. The Saudis blocked encrypted calls, and users would have wait staring at frustrating repeated timeouts and long 'connecting' hangs.

Therefore Whatsapp simply said OK, let's just improve the users experience by giving them an immediate error informing them.

Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by eridius on Wednesday July 13, 2016 @03:29PM (#12088947)
The gist explicitly claims that's not possible. Specifically, it claims that there's no way for the Saudi teleco to distinguish encrypted phone calls from encrypted messages, and since you can send encrypted messages to Saudi users, there's no technical reason why you can't also call them. The implication is that if WhatsApp did allow the calls, the Saudi telecos might block both calls and messages (since they can't distinguish them), and so WhatsApp disallows calls to avoid provoking them. And the OP's point is that WhatsApp should detect whether the user is actually in-country and allow the calls if they're in another country (since the Saudi telecos won't matter there).
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by moxie on Wednesday July 13, 2016 @05:58PM (#12089993)
The author is incorrect. While Signal Protocol is used to communicate an SRTP master secret and a session id, the clients still need to do an ICE handshake in order to establish communication with each other before the responder can even ring. It is very straightforward for SA to block that traffic, and it is established fact that they do.

It seems as if WhatsApp is short circuiting this frustrating series of timeouts to improve a flaky seeming UX. That strategy does negatively effect people on the internet who register for WhatsApp with Saudi VoIP numbers when they're in France, but it is a much clearer UX for almost everyone who is actually a Saudi WhatsApp user or calling actual Saudi users. What the author is demanding is a worse UX for the same outcome.

It sounds like there might be room for improvement, but I have a feeling that if WhatsApp were recording their users' locations in order to provide a more advanced location-aware version of the same strategy, people would not be very happy about that.

Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by nkobeissi on Thursday July 14, 2016 @01:15AM (#12091792)
> I have a feeling that if WhatsApp were recording their users' locations in order to provide a more advanced location-aware version of the same strategy, people would not be very happy about that.

They don't need to record your location. WhatsApp client can just query your IP address and silence the call-prohibiting UX if it finds out you're outside Saudi address space. This is an exceedingly obvious solution with no effect on user privacy.

Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by stefs on Wednesday July 13, 2016 @06:35PM (#12090235)
so this does affect foreign users using saudi telcos (roaming/wireless)? how about not blanket-blocking by country code, but by country-ip lookup?
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by pfg on Wednesday July 13, 2016 @06:48PM (#12090328)
Seems like a lot of effort for an edge case. Now you've added a dependency on some network service you need to access (and from WhatsApp's POV: maintain) before placing outgoing calls. If you use GPS instead, you're dependent on having the location permission (which is not needed to run WhatsApp in general), and you're draining everyone's battery and adding latency to get a sufficiently accurate location lock. Doesn't seem like it would be worth the trouble to me.
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by jlgaddis on Wednesday July 13, 2016 @09:41PM (#12091152)
There would also be a number of people complaining loudly, demanding to know "why does WhatsApp look up my exact location [using the GPS] at the precise time I make a call!?".

Good luck convincing them that the location is not being logged permanently by WhatsApp servers -- or even sent to them in the first place.

Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by subliminalpanda on Wednesday July 13, 2016 @09:35PM (#12091139)
I've never been to Saudi Arabia, but in the UAE and Oman if you were to receive a WhatsApp call using a foreign number from a free country, lets say France, the handshake for the call would still be dropped with the attempted call failing.

On iOS, you would get an error saying "Call couldn't connect. X's mobile carrier or WiFi doesn't support WhatsApp calls".

Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by Jarwain on Thursday July 14, 2016 @12:35AM (#12091646)
I feel like I'm missing something; in what case does any data being communicated to a Saudi Arabian number, whose user is not in Saudi Arabia, pass over any Saudi Arabian territory?
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by pfg on Thursday July 14, 2016 @01:13AM (#12091777)
You're probably missing the "That strategy does negatively effect people on the internet who register for WhatsApp with Saudi VoIP numbers when they're in France" bit. It's a reasonable trade-off in light of the complexities the alternatives carry with them, IMO.
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by Canada on Wednesday July 13, 2016 @04:27PM (#12089405)
Assuming WhatsApp uses ZRTP, it's possible to detect and block encrypted calls no matter what port is used because the ZRTP advertisement can be seen in the RTP packet.

In order to know when ZRTP will fail WhatsApp would need to maintain lists of address space where ISPs drop such packets. It would have to be done on the client side, but then clients can't easily discover their public address because NAT. The signaling server that sets up the call could check easily, but if the server decided when not to use encryption that would be a backdoor.

It's easier to just do it by country code, despite the drawbacks.

Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by eridius on Wednesday July 13, 2016 @04:32PM (#12089440)
According to Wikipedia, ZRTP use a specific encryption protocol (SRTP). Surely that means that calls made using Signal can't be using ZRTP.
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by Canada on Wednesday July 13, 2016 @04:55PM (#12089594)
ZRTP is a key agreement protocol. It sets the key for SRTP, which is ultimately responsible for securing the RTP payload. SRTP keys can also be set by the signaling server, but then the encryption is not end to end. There's another protocol called SDP to handle this

Signal does use ZRTP. It just doesn't use SIP. ZRTP is currently the best choice for voice.

Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by amluto on Wednesday July 13, 2016 @08:05PM (#12090756)
> ZRTP is currently the best choice for voice.

I beg to differ. ZRTP is currently the best choice for voice when the caller and callee share no key material to begin with. In the context of Signal-the-app, the caller and callee often do share key material, but the protocol (to the best of my knowledge) doesn't bother to use that key material to authenticate the voice channel. This means that two users with the ability to securely text-message each other can still have their voice calls tapped if they fail to validate the short code each time.

The same omission also means that you cannot confirm that you have real end-to-end encryption by making a voice call and comparing the short authentication string on the screen.

I don't know whether Signal-the-protocol in WhatsApp is better designed, but calling ZRTP a good choice is ignoring the fact that current uses are not well thought out.

Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by Canada on Thursday July 14, 2016 @05:40AM (#12092594)
Actually, ZRTP supports SAS signing. This allows applications that use Axolotl to provide additional signatures to ZRTP, enabling sessions to be confirmed without human intervention. See section 7.2 of RFC 6189 for details. Support for Axolotl integration was added to the very popular ZRTPCPP library on August 1, 2015.

I think it's still a good idea for clients to display the SAS even when signed with another key. Especially when that session was established with a protocol which uses the TOFU model.

Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by subliminalpanda on Wednesday July 13, 2016 @03:41PM (#12089052)
WhatsApp calls are made to a different port; I worked at a teleco in Oman and that's how they blocked the calling feature while keeping messaging alive.
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by iamdave on Wednesday July 13, 2016 @03:44PM (#12089074)
To localize this behavior to the US as an example, Verizon wireless is known to block SIP traffic coming and going out of port 5060; it's entirely possible the Saudis are engaging this very similarly and have effectively blocked traffic, encrypted or not coming and going to a specific protocol port.

So I don't think saying "there's no way to tell" is entirely accurate

Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by subliminalpanda on Wednesday July 13, 2016 @04:06PM (#12089225)
I believe you would be correct in your assumption. I asked one of the engineers how they did it and that's what they told me to much chagrin.
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by eridius on Wednesday July 13, 2016 @04:10PM (#12089262)
Seems like WhatsApp could easily choose to use a different port if they wanted to, but I guess this comes back to not wanting to have their encrypted messages get blocked.
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by moxie on Wednesday July 13, 2016 @06:17PM (#12090114)
VoIP traffic is UDP, and will always be very easy to identify. We barely have functional circumvention strategies for higher-latency traffic types, so building a circumvention strategy for traffic like realtime voice with ultra low-latency requirements is a tall order. Honestly getting VoIP to work well in the best possible network scenarios is enough of a challenge.

I assume that higher latency communication like WhatsApp's push-to-talk "voice notes" works just fine in SA though.

Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by subliminalpanda on Wednesday July 13, 2016 @06:26PM (#12090164)
I can't speak for SA but a lot of folks in Oman would message each other voice messages as a compromise.
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by ultramancool on Wednesday July 13, 2016 @04:16PM (#12089320)
Yeah, if they push back too much the Saudis would most likely just outright ban the entire service.
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by eridius on Wednesday July 13, 2016 @04:09PM (#12089251)
That would be a good explanation for this behavior, then.
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by pmarreck on Wednesday July 13, 2016 @06:10PM (#12090062)
Your telco sucks.
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by subliminalpanda on Wednesday July 13, 2016 @06:16PM (#12090106)
The telco doesn't have much of a choice, as the rules are administered by the TRA (telecommunications regulatory authority), and by proxy, state security.

No one that worked there wanted to do it, but refusing to do so would be reason to have them dismissed from their jobs.

Many employees are expats; leaving their jobs would mean a loss of their residence and thus deportation.

Such is life in a police state.

Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by pmarreck on Wednesday July 13, 2016 @06:17PM (#12090117)
I correct myself, then: Your police state sucks.

> but refusing to do so would be reason to have them dismissed from their jobs.

I've quit jobs on principle before. The key is to have a nest egg.

> Many employees are expats; leaving their jobs would mean a loss of their residence and thus deportation.

Could they find another job?

Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by subliminalpanda on Wednesday July 13, 2016 @06:31PM (#12090203)
> I correct myself, then: Your police state sucks.

Police states are very shitty indeed.

> I've quit jobs on principle before. The key is to have a nest egg.

A lot of the expats come from Lebanon, Syria, Pakistan, India, and occasionally Eastern Europe. Almost all of them that I know have families they need to support (immediate and sending remittances), and the money is a lifeline. Being deported back and/or being blacklisted from the GCC is a life-ruining scenario. Getting visas to the west is not always an option.

>Could they find another job?

It's possible, but all countries in the GCC operate under a Kafala (sponsorship) system. Having it revoked in one GCC member state raises complications in others.

For those wondering, GCC = Gulf Cooperation Council, not the compiler.

(edit for clarity)

Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by tedunangst on Wednesday July 13, 2016 @07:10PM (#12090456)
Even better solution: All the WhatsApp users in Saudi Arabia should move to another country.
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by Retric on Wednesday July 13, 2016 @03:33PM (#12088990)
Bandwidth is going to be a major tell even if you have zero clue about content.
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by eridius on Wednesday July 13, 2016 @04:08PM (#12089249)
Bandwidth won't be apparent during the handshake. And voice data isn't really that large anyway, though it would be plausible to detect that some kind of stream is going on as opposed to discrete messages. Still, that would have to come mid-call rather than when the call is attempted.
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by Retric on Wednesday July 13, 2016 @04:24PM (#12089375)
Sure, in this case it's based on what port they are using. But, it's not a winnable problem due to bandwidth and the option to simply block everything. Limit encrypted streams to 3kbps and you can do eCommerce or slowly send a selfie not real time audio.
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by dogma1138 on Wednesday July 13, 2016 @04:22PM (#12089360)
There are plenty of DPI/TM solutions that identify and classify the protocol very quickly and efficiently, every ISP today does it. It's highly unlikely that a Saudi or any modern telco would would not be able to analyse the traffic and extrapolate the exact protocol and application from it as well as other information such as if it's an encrypted stream or not (heck testing if data is encrypted or not is as simple as running compression on random samples and checking the compression ratio, you'll have to classify if the data is compressed to begin with but if it's not compressed data and it's not compressible it's quite likely to encrypted).
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by eridius on Wednesday July 13, 2016 @04:35PM (#12089465)
This would work for a call in-progress. The gist explicitly claims the calls are blocked during the handshake, which would be before there's enough data to analyze. It appears from other comments that what's really going on is calls simply use a different port and that port is blocked.
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by tptacek on Wednesday July 13, 2016 @05:43PM (#12089908)
The root comment on this thread resolves that distinction: it might make sense from a UX perspective to block calls that are known in advance not to be workable. WhatsApp can sensibly be reacting to something that occurs once a session is in steady state.
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by eridius on Wednesday July 13, 2016 @05:59PM (#12090000)
Sure, though I think there's still merit in the OP's request for WhatsApp to detect when a customer with a Saudi number is actually in another country and allow the call to go through (though I don't know how easy it is to detect that).
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by DominikR on Wednesday July 13, 2016 @03:53PM (#12089138)
You can definitely distinguish with near 100% reliability if someone is messaging or calling, even if there is encryption involved.

All you need to do is profile for relatively constant data transfer rates over the course of many minutes that exceed a very low minimum.

If Whatsapp uses a media proxy for calls then you could just trigger on connections made to these servers where these data transfers in question occur.

But even if they don't use a media proxy they'll the clients will connect to specific IP's for call signalling and that's when you'll also know that a call was attempted.

I'm neither defending Saudi Arabia nor Whatsapp, just wanted to let you know that there are very simple ways to detect calls. I'm sure that there are even better, much more advanced techniques that are currently in use by both oppressive (and likely our) governments.

Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by eridius on Wednesday July 13, 2016 @04:11PM (#12089273)
Detecting calls like that would be for detecting calls in-progress, not for shutting them down during the initial handshake, which is what the gist claims is WhatsApp's explanation.
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by DominikR on Wednesday July 13, 2016 @04:28PM (#12089412)
My point was that this is one way to detect the IP where the client connects to for calls as call signalling, call media transfer and chat messaging all connect to different IP's.

Once you have that you can block media transfer, or if the clients use peer to peer media transfer at least block the call signalling.

After this it is only a matter of keeping the list of IP's updated which you could easily do by ongoing logging of bandwidth used.

Bandwidth usage pops up in your logs that somehow resembles the profile of a call - investigate by doing a simple test and then block the IP.

Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by iamdave on Wednesday July 13, 2016 @05:31PM (#12089809)
After this it is only a matter of keeping the list of IP's updated which you could easily do by ongoing logging of bandwidth used.

Erm, well...I suppose this could be done if you're fond of the "navigating through the digestive terminus to arrive at the synovial hinge" method[1]. There are several much easier and much less lossy ways of blocking voice transmissions streams that doesn't involve continuous and arduous logging of IP addresses or even blocks of IP addresses.

---

[1] also known as "going through your ass to get to your elbow"

Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by DominikR on Wednesday July 13, 2016 @05:39PM (#12089878)
I wrote myself that there are surely more advanced ways to do that but I'm not a professional in this particular area as I'm not in the business of censoring people or blocking communication.

Still my point remains valid I believe: The OP claimed with certainty that no one could know if a call is being made which is wrong.

But you can outline your ideas on how to detect a call attempt without "going through your ass to get to your elbow" as you put it.

I still feel that blocking IP's or ports is an easy solution for governments that feel the need to censor.

Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by Cyph0n on Wednesday July 13, 2016 @03:38PM (#12089027)
This is the correct answer. There is definitely cooperation between WhatsApp and the Saudi authorities.

I live in the UAE and it's exactly the same over here.

Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by walrus01 on Thursday July 14, 2016 @12:15AM (#12091589)
DPI can most definitely distinguish encrypted phone calls and traffic patterns. It's a lot more kbps of flow than messages.
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by captainmuon on Wednesday July 13, 2016 @03:58PM (#12089158)
Couldn't someone with WhatsApp/Facebook's resources find a way around the blockage?

Write a bunch of different protocols and switch randomly - or use steganography - use machine learning to evade the block - buy a bunch of existing apps and hide the data in their protocols - put up a fake weak encryption, detect "dissident" talk, and in that case generate a long nonsense recording for the censors from the voices of the speakers, hiding the true message steganographically :-) - or basically anything they can come up with.

Or - Saudi Arabia is not such a big market - make a complete theatric fuss about it and complain about human rights and so on, close all FB and WhatsApp connections and burn all bridges, and milk it for publicity.

(Only being half serious here :-) but I would be really tempted to do something mischievous in their case rather than comply.)

Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by dreamfactory2 on Wednesday July 13, 2016 @05:47PM (#12089932)
Governments and companies are very much on the same team these days (think of it as a one party state with occasional internal disagreements and manouverings) - so there won't be anything 'mischievous' going on from those quarters
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by fenesiistvan on Wednesday July 13, 2016 @04:19PM (#12089340)
There are already software specialized for this such as the mizu VoIP tunneling and encryption which works with the SIP/RTP protocols: https://www.mizu-voip.com/Software/VoIPTunnel.aspx
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by pandog on Wednesday July 13, 2016 @03:38PM (#12089034)
Whilst it may be a better user experience for those with Saudi numbers in Saudi Arabia (calls would be blocked anyway) it is a much worse user experience for those with Saudi numbers not in Saudi Arabia (calls would work fine, but are blocked by WhatsaApp).

Maybe it's just a use case they missed - but quite a significant one!

Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by dmix on Wednesday July 13, 2016 @03:24PM (#12088905)
_insert quote about the simpler explanation being far more likely than a nefarious one here_
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by Raed667 on Wednesday July 13, 2016 @03:27PM (#12088930)
Simpler explanation: KSA threatened to block all whatsup (and maybe even facebook) if they don't help them.
Re:WhatsApp Blocking Encrypted Calls to All Saudi Numbers by sp332 on Wednesday July 13, 2016 @03:25PM (#12088914)
That doesn't explain why they lied about it.