We can do better than Signal

icy | 175 points

I feel like Signal is held to a ridiculously high bar when it comes to anything. Is it perfect? No. But come on now; I see other threads on HN where people are debating/bashing their use of Intel SGX, really?

Assuming you trust the client builds (or use a verified build) and verify the public key, all of these arguments go out the window with the exception of exposing your phone number. This situation seems like a prime example of a company (Signal) being so transparent that people need to find fault.

Caligatio | 3 years ago

As I wrote in https://news.ycombinator.com/item?id=25795575

- WhatsApp: Oh wait, SMS etc. is completely insecure

- Signal: Oh wait, WhatsApp is structurally unable to be a force for privacy

- Matrix: Oh wait, even benevolent centralization is an unnecessary risk

It's not that worse is better, but the general public's imagination can only grow so fast. We need to coax people along. As such, I do think all 3 serve a purpose in certain times and places.

I took advantage of the Signal downtime to get a few people onto Matrix. There will be more opportunities.

Ericson2314 | 3 years ago

I'm a bit annoyed at "we can do better than X" when, you know what? Maybe we can't.

Yes, it's nice that you and I can install Element and deal with the finicky crypto handshake that for some reason always shows red for me because a friend opened the web UI and closed it before he completed the handshake and now we can never actually make that check go green, and it's nice that Mastodon is distributed but mastodon.host went down one day with all my toots without a word from the administrator, and yeah I know I should have picked a better host (though if you could predict that mastodon.host will die why didn't you tell me?), but my mom can't.

Users value their convenience, and security and privacy are inconvenient. Hell, we started decentralized and over email and newsgroups and personal websites and blogs and it's all Facebook Facebook Facebook now that the Eternal September came around.

If we could do better, we would have done better by now.

stavros | 3 years ago

One of the root causes for centralization is that we lost the ability to make our devices talk directly to each other.

Before the Internet, people could contact each other directly by just making phone calls, and the phone network was neutral, so any phone or any network could call any other (even internationally) provided they pay the fee. Same with SMS and MMS.

With the early Internet, every computer had an IP address and could send packets to any other one.

With the late Internet, because of NAT and unwillingness of ISPs to make progress on this issue, we've now lost that ability and now always require some kind of central coordination server for devices to be able to talk (through it).

There is no reason why Signal (or any other messenger) requires a central server if it wasn't for this. Provided you have the person in your contacts (by having their IP address + a crypto fingerprint for authenticity) they should be able to talk directly.

Until we solve this issue, decentralized alternatives (such as Matrix, Mastodon, and others) are just bad workarounds that will never catch on because people aren't willing (and shouldn't have to) host a server (or use a sometimes unreliable benevolent one or a paid one) when they've already got a smartphone and are paying their phone/Internet bill.

Nextgrid | 3 years ago

I disagree. A decentralized version of Signal might not be necessarily more reliable. What do you do when your Matrix home server is down? Will you still be able to log in? Receive messages? Is this overall system more stable if only 90% of the network work all the time?

Apart from that, most non-technical users won't care about it, and a decentralized solution might not be as convenient for them. It also might open up other attack vectors, like compromised servers in the network and stuff like that.

Signal is probably the best solution for now.

marvinblum | 3 years ago

I never understood what problem E2E encryption actually solves if you don't have full control over the client. All it would take Signal or WhatsApp to extract all your private messages is a single update of the client, which is trivial to do and currently very hard to validate as e.g. Apple does not even (to my knowledge) provide checksums to end users.

The problem of messaging as it is today is that we missed the opportunity to create a well-accepted federated protocol that can be implemented easily. There were a few contenders like IRC but they never reached a critical mass like SMTP or IMAP did. Maybe Matrix can fix this, but I don't have much hope we'll turn away from WhatsApp anytime soon, 95 % of users don't care enough to change and the lock-in effects are enormous at this point. The only way that this situation could be resolved is through legislation, e.g. the EU forcing WhatsApp to implement the Matrix protocol and make their infrastructure interoperable with third-party providers, but even that seems quite far-fetched right now.

In any case, having a non-profit like the Signal foundation run a messenger is already a vast improvement over a company that sees this mostly as a data mining operation.

ThePhysicist | 3 years ago

Can anyone closer to development of Signal (or who works on it) comment on why the server code was last updated in April (7 months ago https://github.com/signalapp/Signal-Server)?

Has _all_ development been client side?

alex_portabella | 3 years ago

I'm confused about this piece. If there's true E2E encryption (verified by open source client code and review of released binaries) then why does it matter if the server code is backdoored or not? The whole point of E2E is that you don't need to care about the server being able to ever see the text of your messages because it never can.

marcinzm | 3 years ago

The issues highlighted by the author, about Signal, and indeed nearly any messenger app or platform, are societal issues that we keep trying to fix with technology.

There are promising solutions to decentralizing and anonymizing but there remain to be any real tech solutions to the ultimate de-platforming issue. Signal is at risk of having their hosting or connection removed. What prevents the same thing from happening to decentralized services? ISPs have already shown willingness to censor. A decentralized service is at just as much risk of being blocked in a game of whackamole. Or having the apps needed for access removed from major mobile platforms. Apple already blocks magnet links on Safari for iOS. What stops them from blocking a webapp for one of these services?

We need strong laws and regulations protecting everyone’s right to telecommunication infrastructure and the right to install and run our own code on end user devices to prevent another Parler.

bronco21016 | 3 years ago

For the longest time, Signal wouldn’t work without Google Play Services, but Moxie (the founder of Open Whisper Systems and maintainer of Signal) finally fixed this in 2017. There was also a long time when Signal was only available on the Google Play Store.

Why do I make a big deal out of Google Play and Google Play Services? Well, some people might trust Google, the company. But up against nation states, it’s no contest - Google has ties to the NSA, has been served secret subpoenas, and is literally the world’s largest machine designed for harvesting and analyzing private information about their users. Here’s what Google Play Services actually is: a rootkit. Google Play Services lets Google do silent background updates on apps on your phone and give them any permission they want. Having Google Play Services on your phone means your phone is not secure.

Moxie, why haven’t you put Signal on F-Droid yet?

Truly secure systems do not require you to trust the service provider. This is the point of end-to-end encryption. But we have to trust that Moxie is running the server software he says he is. We have to trust that he isn’t writing down a list of people we’ve talked to, when, and how often. We have to trust not only that Moxie is trustworthy, but given that Open Whisper Systems is based in San Francisco we have to trust that he hasn’t received a national security letter, too (by the way, Signal doesn’t have a warrant canary). Moxie can tell us he doesn’t store these things, but he could. Truly secure systems don’t require trust.

SignalNotSecure | 3 years ago

>Another response I usually see is “But Signal is all we have!”. While that is somewhat true — at least by the metric of “secure messengers your granny can use”, there are some promising alternatives who are especially focused on decentralizing E2EE communications.

So the author readily admits that these alternatives aren't actually good enough for the average user.

Newsflash: This IS for the average user! This is for my grandma and my cousins overseas who don't know anything about the internet! They don't know anything about "cryptoshit" or what "E2EE" stands for. Once you actually have something worthwhile that my grandma can use, then maybe you can claim it's better!

busythrowaway22 | 3 years ago

The article calls out that the Signal server could be compromised. I always thought one design philosophy of Signal was to ensure the server doesn’t matter from the perspective of privacy.

Would having multiple servers help here, anyway? Once your data leaves your own server, you would then be in untrusted territory assuming the server needed to be trusted.

tass | 3 years ago

My main complaint about Signal is its reliance on SS7/PSTN and ordinary phone numbers to identify a user.

In an era of SS7 hijacks and social-engineering of mobile phone network customer service reps into SIM-hijacking a target's phone service, by no means should we ever rely upon a phone number as a guaranteed method of identifying an end point device's identity.

These are basically the same reasons why other services' "2FA" by SMS is questionable at best.

walrus01 | 3 years ago

It’s hard enough getting random non tech friends and family to move to Signal. Going even further from mainstream means they will encounter usability issues and they will eventually revert back to WhatsApp. I don’t want any of this. And if “we can do better than Signal,” go make it then and get wide adoption instead of bitching in a blog post about how it’s not as good as some fringe products.

unstatusthequo | 3 years ago

For companies and groups, organizations that want to replace the functionality of Slack, self-hosted Matrix (using the official Synapse software package) is becoming an increasingly viable option.

https://github.com/matrix-org/synapse/tree/master

walrus01 | 3 years ago

It’s great to see some balance about the Signal discussion here at HN. All I could see in the frontpage for several days is how great Signal is but nothing about what’s not so bright. This article brings up the same concerns I always had and I hope we all start being more conscious about it.

outime | 3 years ago

"We can do better" is a dodge. It avoids "I can do better" with a kind of royal "we" that implies other people should do the work. The obvious response to "I can do better" is "okay, go ahead". "We can do better" tries to tell me that I should be working on this guy's problem. That I should buy his line about how important "decentralization" is.

There's a place for software criticism. But the best comes in the form of just writing better software, or improving what we've already got. Calling somebody else's project a "shiny turd", on the other hand, isn't even really criticism. It's name calling.

kemitchell | 3 years ago

Being limited to a phone app and requiring phone numbers is severely limiting as well. Matrix is probably the current best-positioned e2e chat app that should be able to encompass more use cases, but it's difficult to convince users to use anything encrypted when alternatives have more network effects and usability.

Network effects always seem to be particularly egregious gatekeepers for social apps, often keeping users on inferior alternatives for years or decades, as coordinating a mass-switch is too difficult (Signal got particularly lucky with a few recent events or it wouldn't have nearly as many users switching to it right now).

ve55 | 3 years ago

Signal will have very hard time competing as a product with WhatsApp.

Their main value proposal is that they aren’t backed by Facebook, but other than that, there’s no real difference to end user.

That’s enough for geeks, but not very compelling argument to break to mainstream. To break into such a highly competitive market, they need more unique features.

Or they can count on Facebook to keep on shooting themselves into foot, which is possible, but historically risky bet (no matter what HN crowd says, they continue to be extremely successful and know how to grow products).

justapassenger | 3 years ago

> A common defense in favor of Signal is, “But it’s all open source!”. Sure is, but on what basis do I trust them? ...

The open source aspect for me means 2 things.

- I can verify the e2e encryption claim.

- I can reproduce the client builds ensuring that what I run matches the source [1]

Is there a detail relating to the server that would invalidate this?

[1] https://github.com/signalapp/Signal-Android/tree/master/repr...

monokh | 3 years ago

I wanted to disagree with the headline. Then I read the article and do see their point.

I’ve been a big proponent of Signal for years and donated for the first time during their outage.

But I do think this is a conversation worth having.

I’d also like to understand more about this:

> In fact, the Signal server code [0] hasn’t even been updated since April 2020. You’re telling me it’s undergone no changes?

[0]: https://github.com/signalapp/Signal-Server

tailspin2019 | 3 years ago

Hey icy, the issue you raise about Signal not being decentralized, I think, is a valid one.

You should check out a decentralized messaging and social media app I have been working on - Omnii.

Omnii allows each user to manage their encryption keys, and all data exists in a decentralized manner - only on endpoints (users' phones), and not on a backend.

https://omnii.co is our website if you are interested.

OmniiTyler | 3 years ago

Lots of FUD in the opening paragraphs ("no changes to server code since April!!1!"). I stopped reading after that

solstice | 3 years ago

So one of the things that feels the most damning to me about Signal-like protocols is that you have to inherently trust their server.

Consider this paragraph from the Signal protocol

> ...For example, they may compare public key fingerprints manually, or by scanning a QR code. Methods for doing this are outside the scope of this document.

> If authentication is not performed, the parties receive no cryptographic guarantee as to who they are communicating with.

I have not known anybody that actually does this. If an active attack does happen on somebody, I'm pretty sure they would not notice.

As far as I understand, a decentralized model solves this problem. Don't trust the server? Run your own instance or have some other way of validating clients (via your own PKI infra or similar).

xrisk | 3 years ago

Do it and let us know when you're finished ;)

geek_at | 3 years ago

Maybe we can't for now and that's okay. There are so many solutions to choose from and the only thing that would make it popular would be if the people you want to chat with or on it. There's also a big issue with any of these platforms, MONEY. People want to text, share images and videos and audio. Want to have audio and video calls over data. A proper interface, cross device sync and they want it all fre e. Most people will use free software.

So you know maybe we just can't do better for now.

pratio | 3 years ago

Nothing is ever good enough, is it?

No matter what is built you'll have people complaining about any aspect of it they can find. Most of them won't so anything more than that. They won't contribute a single thing, pat themselves on the back and call it a day.

There's not even a hint of constructive feedback in that post. Not even an attempt at resolving any of the identified problems or thinking further about implications of possible changes.

I need a downvote button on HN...

LockAndLol | 3 years ago

Signal is not the best option by any means. But it's so much better than most of the other options like Whatsapp or iMessage. It's all about threat models.

freddyym | 3 years ago

I wonder if it's possible with some tricks to build a message box on top of a regular DHT (distributed hash table) as commonly found in many P2P network implementations. There is no need to guarantee that the message is stored for a certain amount of time as long as the protocol knows whether the other party has received it or not: you can just put it into the DHT again as long as it's not received.

Klasiaster | 3 years ago

The article should be titled "How can we do better than Signal?", because it neither brings nor addresses anything better than Signal. It'd be better as an Ask HN.

The expectation reading it was to find out about a product that is better than Signal. The reply to the assertion after the disappointment will most likely be "Then do it".

Jugurtha | 3 years ago

We can certainly do better than Signal. The central point of attack is a problem. And now also the fact that they are using AWS, and AWS has demonstrated being willing to deplatform within 24 hours. However for now Signal is one of the best options we have.

drummer | 3 years ago

Signal, telegram and matrix (or at least 1 of the 3) should work on cross-app E2E communication.

Instead of creating a new protocol, why not just have a competition between clients using the current protocols?

xiphias2 | 3 years ago

We can also do better than using insults against a service which isn't perfect - and maybe won't be if it continues its course - but is doing a good thing for the right reasons.

proactivesvcs | 3 years ago

No, you cannot do better than Signal at the moment. You do not have people picking your service of choice en masse. A chat app is only useful if people you want to talk to are on it.

Bakary | 3 years ago

Was happy to play around with Delta Chat today. Very nice progress. That was until one of our friends tried to logon with Gmail on her iPhone. Too much hassle unfortunately.

bartimus | 3 years ago

That single fact that I have to share my phone number to everyone (I want to chat with) in Signal is enough for me to don't even think about installing it.

EugeneOZ | 3 years ago

Why is XMPP not mentioned as an alternative? it's decentralized, fully open source and supports end to end encryption.

pantalaimon | 3 years ago

I wish Delta Chat would get more mentions during this period

It is nicely decentralised. Nice UI. Run your own server. Deserves more love!

hifly | 3 years ago

I You can do it, then do it. Build something on top of IPFS. Decentralize.

marghidanu | 3 years ago

Moved from WhatsApp to Threema, so far so good.

polotics | 3 years ago

tl;dr: With decentralized identities, we could have a messaging system based on the Signal Protocol that does not use central servers at all.

There seem to be a lot of opinions about whether it is possible to do better than Signal, and if so, what would that be like. There also seems to be a lot of opinions that federation is better.

There is something that can be better than Signal, but federation is not it. For one thing, it creates the problem in https://xkcd.com/927/ . For another, as some have said in the comments here, federation can easily lead back to centralization, especially if the biggest servers implement "extensions" that then become used and expected by users.

What would be better than Signal would be to take the Signal Protocol, which is fine as a protocol, and implement the protocol using software that the user runs themselves and that uses completely decentralized identities. I wrote about such a system at https://gavinhoward.com/2020/07/decentralizing-the-internet-... .

The key is that the users must control their data, like the pods that Sir Tim Berners-Lee's Inrupt is pushing. (This would solve a big problem with Signal: the lack of backups.)

However, without some way for each user's "server" to identify the location of another user's "server", this messaging system would not work. That is where decentralized identities come in.

With fully decentralized identities on a blockchain, it is easy to search the blockchain for the current location of the server for the user that a message needs to be sent to. There is no need for federation, no need for a centralized server at all; the messages go directly point-to-point.

Others in these comments have pointed out that decentralized systems are subject to abuse by spam and other things. That is true, but there are ways to mitigate the problem. You can read what my mitigation ideas are at https://gavinhoward.com/2020/07/decentralizing-the-internet-... .

Edit: I forgot to say that it is also important to address convenience. If it is not convenient for users to set up their own servers, then this solution will not work anyway. However, cloud providers would probably love to make it convenient by implementing one-click setups like they have for things like Wordpress.

ghoward | 3 years ago

Is it possible to do a hand-off? So one cellphone can make a connection to another cell phone? UDP over LTE? I'm guessing a port can't be opened when on a cellular network?

ketamine__ | 3 years ago

People already have, it’s called wickr

humbleMouse | 3 years ago