News for hackers. Stuff that matters.
Re:Egypt has blocked encrypted messaging app Signal by cesarb on Tuesday December 20, 2016 @08:50AM (#13219695)
From what I've read, yes, XMPP is bad. But that's not the problem. Keeping a persistent connection to your server, while not keeping the phone processor and/or radio active, and while not being dropped by the phone company's NAT after a very short timeout, is not a simple problem. The native persistent connection (Google's, for Android, and Apple's for an iPhone) is the only one which is guaranteed to work good enough.

Federation has the problem of being harder to prevent abuse. And for systems that use the phone number as the user's identifier, like WhatsApp or Signal, it's even harder: which server is associated to an user? What to do if the user registers to more than one server? How to prevent a server from saying it has registered a user, when the user didn't do it?

And when you control the whole infrastructure, it's easier to provide a good user experience. With federation, you are depending on the quality of other's implementations.

Re:Egypt has blocked encrypted messaging app Signal by apichat on Tuesday December 20, 2016 @07:34PM (#13225751)
> Keeping a persistent connection to your server [...] is not a simple problem

But is already solved. Explanations : "The State of Mobile XMPP in 2016" https://gultsch.de/xmpp_2016.html

> Federation has the problem of being harder to prevent abuse.

Precisely XMPP have already solutions for this problem

> And when you control the whole infrastructure, it's easier to provide a good user experience. With federation, you are depending on the quality of other's implementations.

Answers here : "Objection to ‘The ecosystem is moving’" https://gultsch.de/objection.html

You might also interest by GnuNameSystem wich is a federate, decentralize and censorship resistance DNS https://gnunet.org/gns

Re:Egypt has blocked encrypted messaging app Signal by sliken on Wednesday December 21, 2016 @10:49AM (#13229993)
So basically if you are an expert. Find/install a XMPP client, then register/buy/install an XMPP server. Oh you probably want some SRV DNS entries as well. Then ensure your client and server support and have enabled XEP-0198, XEP-0313, XEP-0352, XEP-0280, XEP-0363, XEP-0374, XEP-0357 then in theory you can have a reasonable user experience.

However in reality opening a TCP connection to a server will silently drop and all the discussed behavior depends on the cellular provider sending an RST packet back when that happens.... which often doesn't.

So because google negotiates with carriers to not time out GCM connections those don't time out. Unfortunately other connections do, thus the power efficiency of other push based approaches on android.

Re:Egypt has blocked encrypted messaging app Signal by cesarb on Tuesday December 20, 2016 @08:27PM (#13226046)
Thanks for the links. It seems my knowledge was outdated.

Do you have any links for the "solutions for the abuse problem" part? They should make for interesting reading.

Re:Egypt has blocked encrypted messaging app Signal by apichat on Tuesday December 20, 2016 @08:40PM (#13226130)
> solutions for the abuse problem

A solution is using address like greeting@name (meaning localpart@dnspart) https://linuxfr.org/users/apichat/journaux/salut-toto-saluta...

An other solution is the design of XMPP : you can control who can speak with you (the contact list).

Re:Egypt has blocked encrypted messaging app Signal by aaron-lebo on Tuesday December 20, 2016 @09:01AM (#13219798)
A lot of these arguments read intuitively, but:

Federation has the problem of being harder to prevent abuse.

But this is also an issue with centralized systems (see Facebook, Twitter right now).

And for systems that use the phone number as the user's identifier, like WhatsApp or Signal, it's even harder: which server is associated to an user? What to do if the user registers to more than one server? How to prevent a server from saying it has registered a user, when the user didn't do it?

This is "hard", but solved. Bitcoin and similar systems do this (prove identity) very well already.

And when you control the whole infrastructure, it's easier to provide a good user experience. With federation, you are depending on the quality of other's implementations.

Google doesn't control email, gmail is still a pretty good experience. Controlling the infrastructure should lead to better quality and experience, but practically often doesn't. Does anyone love iTunes?