Wire messenger server code open-sourced
github.com
github.com
Also, holy shit they're storing a lot of information about their users:
* All of your contacts.
* Unencrypted profile information for everyone.
* Every active conversation you have.
* Every archived conversation you have.
* The frequency that you communicate with your contacts ('top contacts').
* Every group that you're in.
* The unencrypted titles and avatars of everyone's groups.
Wonder what will be in the rest of the database schema if they open source it.
* All of your contacts.
Wire contacts, they only store non-wire contacts in a hashed form, and there's an opt out for non-wire contacts.
* Unencrypted profile
(Isn't this just profile picture (which is shown to people you haven't connected with), and name anyways?) They do say so in the privacy policy.
* Every active conversation you have.
Specifically they claim to store:
Who/when it was created, who is involved (which seems critical to be able to route messages), and conversation name
* Every archived conversation you have.
I assume they store the same as for non-archived conversations, seems necessary to be able to add new devices.
* The frequency that you communicate with your contacts ('top contacts').
Ya... that's not listed as far as I can tell. Arguably "aggregated usage statistics"... but it's not really aggregated.
* Every group that you're in.
This is the same as conversations... they clearly need to know this to route messages.
* The unencrypted titles and avatars of everyone's groups.
Titles is listed. Avatars of groups isn't... seems like a minor oversight though given that they're like a profile picture, and profile pictures are publicly available.
[0] https://wire.com/resource/Wire%20Privacy%20Whitepaper/downlo...
Maybe it's good that they've documented this somewhere, but I don't think most Wire users read white papers. I'm a dev and I was surprised. Their outward facing marketing didn't lead me to think they track all my contacts and the state of every conversation I am having. It very clearly suggests the total opposite.
They need to do much better than this if they want people to think they take security/privacy seriously.
>> * Every group that you're in.
> This is the same as conversations... they clearly need to know this to route messages.
Why? That's not true for Signal from what I can tell.
In the sense of "most users don't read privacy policies", sure.
It's pretty clearly linked in their privacy policy as "this is where you should go for information", I know I'm not the only wire user who read it before installing it.
> Why? That's not true for Signal from what I can tell.
Ya... I think I overstated it. It's the easiest way to route messages but it's not the only way.
I don't know much about security so I really have no constructive criticism, obviously, one can easily make lots of investigative inferences from the information Wire collects and that is troubling enough.
If I understand correctly signal stores only metadata. My question whats the format of the metadata what kind of information does it retain. Is it anywhere close to what Wire is storing?
I would appreciate clarifications on this.
In response to a subpoena for specific user's data:
"the only information we can produce in response to a request like this is the date and time a user registered with Signal and the last date of a user's connectivity to the Signal service."
I am not saying if this is good or bad in general, but just... I could live with it in 2005 when Vbulletin was all the rage, and I can live with it now.
Also, other chat clients like Skype, Paltalk, Yahoo Messenger, Facebook Messenger also store this information---its kind of a requirement to do any kind of search over previous messages, and allow people to find their contacts or talk to random unacquainted individuals.
Maybe this is a big negative for Wire if their PR basically touts "security" and "encryption", when the reality is they want to be secure against middlemen only.
https://github.com/wireapp/wire-server/tree/master/libs/libz...
Edit: typo
They could have done the same thing with existing protocols, but I do like the way it was done and how well it works for us, and as a consumer of the service it's satisfied areas where XMPP/Matrix felt.. fragile.
Not that XMPP or Matrix are vastly inferior, there's certainly an issue or two we've had with Wire, but just how well it worked for us immediately was largely why we've stuck to it.
Be sure to choose a good server: https://gultsch.de/compliance_ranked.html
And a good client: https://omemo.top
Dino is a new Linux client. It's nice and simple.
Conversely, the reasons you might use Matrix over Wire is if you want an open standard for the protocol (simple HTTP+JSON), or an ecosystem of different clients, servers, bots & bridges, or Apache licensed impls rather than AGPL, or implementations which were built from the outset as FOSS, or to decentralise history across an open federation of multiple servers rather than be forced to federate via a centralised service, and bridges through to things like IRC, Slack, Gitter etc.
Back when our boy was just a few months old and my wife's maternity leave came to an end, keeping in touch with video made going back to work a less difficult. She'd call every time she needed some assurance that we were OK, and I could show her we were, in high resolution.
Signal didn't have video calling back then, and Skype is out of the question because I really distrust Microsoft.
I like testing these tools with cryptonerd friends though.
Edit: found previous discussion, https://news.ycombinator.com/item?id=13132157
Like I recently saw an announcement from Wire that calls are now secure, but they had been advertising them as secure all along! I had even spent time looking through the code but didn't know that calls weren't authenticated. Now are they really secure? I don't know, they said that before too, and the source is so hard to follow. Then I saw a post that showed they weren't even doing cert pinning, which is so basic.
I wanted to like it, but the more I looked the more I felt like "security" was just sprinkled on as an after thought.
https://medium.com/@wireapp/call-security-constant-bit-rate-...
If I'm writing a hobby project, I want it to help the ecosystem as much as possible. If businesses want to use it then great! So MIT.
If I'm running a business my main goal is to survive. I want to help the community as well, but I obviously can't do that if I go broke. "Put on your own oxygen mask before helping others" and all that. So *GPL, because it lets me balance those goals.
Personally, if I'm writing a hobby project then I want it to be copyleft. Of course I want it to be copyleft. Why wouldn't I? I don't want some company taking my work, making proprietary changes and improvements to it and then not releasing those back to me. Copyleft is simple courtesy that you'd expect anyway, codified into a license.
> Personally, if I'm writing a hobby project then I want it to be copyleft.
Totally up to you! In the context of Haskell projects though, I really, really want to see Haskell businesses succeed as well as the open Haskell ecosystem.
BSD and GPL are both free, libre and open.
>Totally up to you! In the context of Haskell projects though, I really, really want to see Haskell businesses succeed as well as the open Haskell ecosystem.
There's nothing about the GPL (or other copyleft licenses) that makes them incompatible with business.
See:
https://tldrlegal.com/license/gnu-affero-general-public-lice...
Edit:
See also their own FAQ:
http://www.affero.org/oagf.html#How_does_the_Affero_Public_L...
The GPL goes both ways. Wire release under the AGPL, sure. That means if you want to use it on your server you have to release the source code of any modifications. Of course you do. But they do too. It's open source, they accept contributions. Those contributions are copyright the contributors and licensed AGPL.
Since a lot of the interest for self hosting comes from companies then a nicely packaged version is somewhere in the future.