BLeQuerrec · GitHub

Sorry for the delay of answer. So, having read those new replies, this is my current understanding about this:

  • There is a metadata issue with SMS, that’s the starting point of this discussion and we all agree about that.
  • XMPP allows to solve this in a federated manner, replacing SMS/Phone Numbers with Data/XMPP addresses. This is OK, since you’re not going to be better at privacy regarding metadata without switching to Data instead of SMS, and for most systems without removing the Phone Numbers as identification (more debatable, but let’s keep that aside, not really relevant here).
  • That being said, you don’t want to create yet another XMPP client, since there is no point in this. We also seem to agree on this.

Now my thoughts: the point is to replace SMS with XMPP messages in the conversations with your Silence contacts without having to care of XMPP settings (random user address, random server picked from a list, initial configuration of the conversation — not an XMPP expert at all, but I guess that means exchange of IDs mainly — through the encrypted SMS canal and reuse of the same key to enhance its “verified” state, or if not possible auto-verification of XMPP keys over the SMS canal and in both cases why not the same for SMS key over XMPP canal).

Then I’m not sure that allowing to contact non-Silence XMPP users is a good idea. Why wouldn’t you just use an XMPP client for that? You don’t want to be one more XMPP client, but supporting this use case would make Silence de facto another XMPP client.

The point is that you want this feature to be as user-friendly as possible, and don’t want to bloat the app. Supporting only one use case (upgrading conversations with your contact to XMPP seamlessly, reusing the current key) is the better thing to do then.

If you want to communicate with non-Silence XMPP users, once again why won’t you just use an XMPP client? You’ll have to know about this technical possibility (this is advertised as a SMS client), enter their address somehow (or give yours, which is not user-friendly), verify the keys (though Silence doesn’t make that important/easy currently for SMS, so I have to maintain a list of my verified keys on my computer)… If you’ve gone that far, you could just as well use a proper XMPP client.

For me Silence is built around phone numbers, and its role is upgrading security of communications between those phone numbers. And it should only do that. They are already a lot of others open-source protocols and corresponding app for secure communications between users that are not based on phone numbers (e.g. federated: XMPP, Matrix; P2P: Ring, Tox).

Side question: do you want to provide encrypted calls using Jingle? Silence looks like a right place to me for this (just as Signal allows encrypted calls between users btw), because this carry the same intention as protecting SMS between mobile phone users (and there is a call button within the app, which could do the same as messages: try over XMPP if possible, fallback to normal call else). BTW, do anyone knows about any app currently providing this?

Read the original on github.com ↗