Hacker News new | ask | show | jobs
by yagni3 3409 days ago
I still like Matrix' federated first approach to the server over Signal's, but this is a welcome change. Now we just need an F-droid build (official repo or built by the F-droid team).
4 comments

They're pretty critical of XMPP but aren't there direct counter examples to it, like Conversations https://conversations.im for one.
Conversations is the only counter example and only came into the scene fairly recently. Before, XMPP on Android (my OS) was not fun and battery draining.
Fortunately, as the code is under a free license, F-Droid or anyone else can ship their own builds no matter what Open Whisper Systems prefer.
But their users won't be able to talk to signal users. It is hard enough trying to persuade people to use signal. Getting critical mass for a fork would be even more difficult.
But there's a catch: They may not name it "Signal", probably.
Firefox does the same thing, and I can see the reasoning behind it.
I honestly don't see Signal and Matrix as competitors. I guess Signal is trying to position themselves as a chat service, but I see it more as a replacement for SMS, whereas Matrix I see as more replacing IRC and instant messenger products.

If we had to choose between them, I'd take Matrix in a heartbeat, but I just let them co-exist.

WhisperSystems doomed Signal as an SMS replacement when they dropped encrypted SMS support. Now it's just another instant messenger. Big whoop, I had OTR encryption a decade ago (with more contacts, too - it's a lot easier to say to a friend "install this OTR plugin" than "switch to this IM network/app"). I use SilenceIM.
I only use it as an SMS replacement.

Really, as long as you have mobile data, there's no difference between supporting SMS encryption and not - you can only talk encrypted to other Signal users anyway, and other Signal users will get your non-SMS-routed encrypted message just fine.

The use case for Signal-encrypted-SMS is continuing to send encrypted while you have no IP connectivity, but thankfully that is becoming a rarer corner-case. The last time I had SMS but no IP was on a cruise ship.

Happens all the time for me. Pretty much anywhere in the US, I'd bet there's a spot within 50 miles where all you have is cell coverage.
Ahh, I was not aware of that, in light of that it seems like dropping encrypted SMS support was premature. (Here I don't think there's any places with non-data coverage, though there is now some of the opposite - places with no circuit-switched voice coverage, voice there is only through VoLTE).
Also note that as it stands encrypted SMS is technically superior. This is Moxie's comment on GCM-free Signal:

> I expect it to have high battery consumption and an unreliable user experience, but would be fine with it if it comes with a warning and only runs in the absence of play services

You don't get high battery consumption, or unreliable user experience, or a requirement for Play Services with pure SMS encryption.

SMS encryption is actually quite a tricksy problem. TextSecure's entire purpose (over bog standard IM OTR) was to solve it, providing individual message-level forward secrecy. This is why it's so perplexing to me that they dropped it (I understand that part of the reason is that iOS simply does not allow it)

https://whispersystems.org/blog/advanced-ratcheting/

The problem with federated approach is that it leaks metadata. When you take centralized system apart and expose internal communications to the Internet, you reduce anonymity. Extreme case is when everyone uses his own homeserver and information on who calls who and when is completely exposed.

It is not enough to make the system distributed, you need to exploit the fact that different parts of the network are controlled by different parties to build self-enforcing protocols that ensure anonymity.

For comparison, see how bitcoin is just distributed and zerocoin is anonymous. Gnutella is just distributed and FreeNet is anonymous.

That's not the only problem, or the most important problem. The most important problem of federation is that it generates lowest-common-denominator security. For instance:

https://whispersystems.org/blog/giphy-experiment/

This is how Signal provides Giphy search (spoiler: they tunnel a TLS connection through their own server, with TLS negotiated end-to-end from the Signal app to the Giphy server, so that Giphy can't tell what client is searching for what GIF while at the same time Signal's server's can't see what people are searching for).

Does anyone believe that in a world where 90% of Signal-network client installs weren't Signal.app, that this is how features like this would work? It's not an unknowable question. All you have to do is look and see how Signal's competitors, like Wire, tackle this problem.

It's true that in a federated Signal-network, you might get clients that have security features Signal itself lacks. But because it's far easier to produce an insecure client than a secure one, insecurity will dominate, and be a boat anchor around any efforts to improve security down the road.

Call it "the libpurple problem".

All true, but I think the situation looks a little worse for centralization if instead of 'security features', you think in terms of 'vulnerabilities' (almost but not quite an antonym). Signal probably has a lower vulnerability rate than competing software, but if someone finds an implementation bug, it can be used against every user on the network. Compare to, say, IRC, where there are a lot of really poorly written clients, but the sheer number of clients in use would limit the fallout of any one exploit.

Likewise, Open Whisper Systems is pretty trustworthy, but if someone gets access to their servers, either by hacking or by coercion, and starts, say, logging metadata (who's chatting with who), all Signal users are compromised. When I chat on a private (and SSL-only) IRC server, the security guarantees are awful compared to Signal - and I'm not saying that's not a problem - but at least I know that my conversations will only be compromised if someone really has it out for my group in particular; they won't show up in some massive leak and/or government database.

This also applies to binary distribution. When software is compiled by N different distros or package managers or by users directly, that does make it hard to get security updates out in a timely manner. But with a centralized system like Signal's, if the binaries are compromised, everyone is pwned. Yes, measures like reproducible builds can reduce the risk, but they're far from perfect. Is there even anyone who verifies Signal builds on a regular basis/automatically?

> Gnutella is just distributed and FreeNet is anonymous.

That's a dangerous meme to be spreading. FreeNet is not anonymous. Peers know your IP address. And malicious peers can learn what chunks your node is handling. Sure, there's "plausible deniability". And common probabilistic attribution arguments are bogus. But that's cold comfort after the SWAT team has impounded all of your gear.

> And malicious peers can learn what chunks your node is handling.

They can't however tell if you are serving them or if you cached them due to their requests.

That's true. But it's a long way from "anonymous".
It seems like short messages are a perfect case for onion routing (not The Onion Router, but the general idea of onion routing).
Signal leaks more metadata.

All the metadata of Signal is available in one single system, transmitted across the globe into a foreign, and hostile country.

In fact, we have to assume every bit that ever goes through the US is logged and stored by the NSA, and that makes Signal entirely untrustworthy.

You might check out Conversations too (https://conversations.im/), it's a federated XMPP (with some really clever extensions) based approach that uses the signal protocol.
Yes it is:

https://github.com/WhisperSystems/Signal-Server

It's sure become fashionable to hate on Signal/OWS. The price of actually successfully bringing good encryption mainstream?

Edit: The comment I replied to originally included a question on whether Signals server is even open source.

Signal is not mainstream. And you can't verify that Whatsapp/Allo have implemented the whisper protocol the way they claim to. We are being asked to "just trust them".
I have had success with getting lots of people on it. And the key selling point that it is no more difficult than WhatsApp makes that possible.

And that "no more" is really important. "Just slightly more" won't do. Especially not if it's "slightly more to someone who frequents HN". Because that's likely already prohibitive to most.

Take a person that just barely knows how to operate the play store. I can instruct that person over phone how to start chatting with me securely in a minute or two:

Go to the play store, download signal, open signal, I'm already there in your contact list. Write me a message. Done.

That's an amazing achievement. The much maligned fact that phone numbers are used as identifiers is key to that experience, too, because my phone number already is on that persons phone.

And yeah, I can't verify Whatsapp, but I still trust that Moxie et.al. have checked their implementation. Still that's why I push people to switch to Signal rather than stay on WhatsApp. Doubly so as WhatsApp belongs to Facebook now (I loved their original 1 Dollar a year business model, and if they still had that I would trust them a lot more).

Even with doubts about Facebook, it almost certainly is a massive win that WhatsApp implemented this. It makes WhatsApp immune to being subpoenaed for conversations, and thus they have a clear motive to implement it properly, too.

Signal is mainstream enough to have been used by the Clinton campaign in 2016 for internal communication. That's pretty mainstream.
A presidential candidate (and team) of one of the more powerfull countries in the world using Signal is not "mainstream". It's "due diligence".
> The comment I replied to originally included a question on whether Signals server is even open source.

Sorry about that, I had looked it up just a second after I posted and then removed that line.

> hate on Signal/OWS

I don't mean to hate on them, just their stance on getting away from Google, using F-Droid, federating their service and many other things has been more than a bit of a mess or disappointment. I'm glad they finally made a step in the right direction and I hope this will continue.

The thing is, they gave good reasons on all these points. It's certainly valid to disagree with the trade offs, but people don't acknowledge that there are trade offs at all.

As I said in another reply, I can get a completely non-technical user to start using Signal with me in a minute, and have them have an experience that is as accessible as WhatsApp. That's simply not true for any of the other options I'm aware of (and it relates directly to most of the points you raise, with the notable exception of F-Droid. There I also find their reasoning weakest).

You can host a server, but you can't talk with people on the official Signal server or any other Signal server, as far as I am aware. This is not federated, just allowing of other isolated centralized clusters.
The Signal server software has federation support. It's not enabled (anymore) on the official server but anyone could set up a server and federate with other federation enabled Signal servers.
I really like XMPP and use it with conversations.im every day. I even have my own XMPP server for friends and family, but it feels as if only very few developers spend time on modern clients. XMPP with its extensions is pretty mature and works great (if properly implemented). Sadly there very few up to date clients. Conversations.im seems to be the exception here. It is very stable, mature and energy efficient, but still lacking audio and video support.

I wish there would be more devs building modern clients for XMPP instead of building the 100th communication system.

I use it, but feel like XMPP is dated and complicated. All the extensions and whatnot are awkward to get setup and you can't make assumptions about how well they're implemented or built on the server you're on or communicating with. I intend to move to matrix/riot when it gets more stable. Things like video are second class citizens on XMPP too and the desktop apps are painful in my experience.
I definitely wouldn't suggest it for video, but I've never had an interest in video conferencing in general. Extensions are pretty straight forward in my experience - either your server supports them or it doesn't, but most of the time they only impact client-to-server in this case rather than server-to-server.