Cwtch: Decentralized, privacy-preserving, multi-party messaging protocol
cwtch.im
cwtch.im
I don't see any means to copy an identity across the boundary (e.g. with Telegram, I can participate in the same conversation as the same identity from multiple devices).
Which means one of two things happens:
1. Users are encouraged to use on dedicated device for all private communications.
2. If users want multi-device, they have to leak facts about their setup (one public key per device) to the people they're talking to.
(This isn't a criticism; I'm just observing the user experience.)
Try traceroute google.com for example to see (some) of the hops your data packets are going through.
But "p2p" still makes sense, if we just consider tor a black box.
I'm a fan of this project and have been watching it for a while. It is my hope that more self-at-home-hosted options pop up in this space around Tor onion services.
See also: https://github.com/agl/pond
With Snowflake bridges, apps can now connect to the Tor network from within a browser.
https://github.com/matrix-org/synapse/issues/2111#issuecomme...
Berry also sounds similar, although it is not released yet: https://berty.tech/
Edit. Cutch was supposed to be more of a phonetic way to pronounce it as opposed to a word with a similar sound.
How do I pronounce Cwtch? Like "kutch", to rhyme with "butch".
In common use you might say "Cwtch in" to mean "snuggle in" or "cuddle in close'
edit: butcher?
https://www.google.com/search?q=define+butch&oq=define+butch...
(“Cwtch” is Welsh for “hug”. I know this because there's a good beer called Cwtch.)
The design for groups is still in flux, and they are marked experimental but there are a few more details in our Secure Development Handbook https://docs.openprivacy.ca/cwtch-security-handbook/groups.h...
Metadata resistant group comms is still a fairly large open research problem, and we are also working on the research side to reduce some of the bandwidth requirements that are currently required by our group protocol: https://git.openprivacy.ca/openprivacy/niwl
I see that you're using Tor to route messages? How would mobile devices fair with Tor connections when they go to sleep?
However, it also means that Cwtch on Android is fairly battery intensive. We provide a way to easily shutdown Cwtch completely for this reason - and we are researching ways to minimize power consumption (both through tor optimizations and alternative anonymous communication networks)
I'm always late to the secure comm party...
EDIT: Got it, Cwtch is decentralized p2p, Signal ain't. Thanks!
> Moxie et al have publicly stated that they want wide adoption of the Axolotl [Signal] protocol — but if you do an independent implementation, using the published reference documentation and background knowledge from having seen their code online, you can be accused of copyright infringement and asked to pay a “license fee.”
Or that fiasco with integrating a shitcoin in the application: https://www.stephendiehl.com/blog/signal.html
I'm on Signal because of the network effect and its reliability, and I actively invite people to use it over things like Telegram, but I do wish we had a better alternative. Matrix (Element) is buggy, Threema people need to pay for, Jami and this Tor-based chat app (I forget the name) don't have the features people expect, Wire is a good contestant but also not decentralized (nor does it have fancy things like sealed sender), and of course nobody has the network effect that Signal has... no good alternatives.
>I’m rather surprised that the author of sendmail is still walking around alive.
>The thing that gets me is that one of the arguments that landed Robert Morris, author of “the Internet Worm” in jail was all the sysadmins’ time his prank cost. Yet the author of sendmail is still walking around free without even a U (for Unixery) branded on his forehead.
- The Unix Haters Handbook
The XMPP ecosystem is pretty diverse and predominantly open-source.
Personally I'm working on Snikket, which is aiming to be the easiest way to get a group of people onto XMPP (often that's family groups, but also social).
We published a blog post comparing the Signal approach with XMPP/Snikket: https://snikket.org/blog/products-vs-protocols/
I'm aware of XMPP and tried it out back in the MSN days along with IRC, but then Telegram came along which promised encryption and a much better user experience and until not so long ago I believed that Telegram would 'any day now' come around to implementing encryption proper (as everything ICT, from WhatsApp that sent plaintext messages over tcp/443 to websites around the world after LetsEncrypt, all turned on proper encryption, I didn't think that this self-proclaimed privacy-focused messenger would stay behind). And so I found myself in late 2018 starting to more and more doubt Telegram, but by then there were many competitors and Matrix seemed to be the hot thing that everyone was excited about (and it turned out that it didn't even work properly after you turned on encryption, only the unencrypted form seems to be somewhat reliable). XMPP didn't come to mind as potentially having evolved, perhaps because in the decade since MSN, I don't think I heard of a single person using XMPP for end-to-end encrypted calls. Perhaps it's great but... somehow I doubt that I never heard of a functional free decentralized/federated end-to-end encrypted multi-device user-friendly chat and (video) calling system.
Actually it does, and it works well!
What I don't get about Snikket is why it tries to distance/hide itself from XMPP. The homepage does not mention it, the app page only mentions it by saying that Snikket is "Compatible" with Conversations which is also compatible with XMPP. The server page does not mention it at all. Is Snikket XMPP and a few XEPs? Is it something else? Can I use a XMPP client with Snikket? Can I use a Snikket client with a XMPP server?
That makes me doubt that Snikket cares about interop with XMPP or the wider ecosystem.
The ultimate reason is that we're not building something for the 1% of people who know what XMPP is. The protocol used is absolutely irrelevant to most people. Feature set and ease of use matter far more.
For the people who do know what a protocol is, it's not hidden information.
The perspective to have is that the use of XMPP adds features (federation, security, interoperability) but it does not (and should not) define everything Snikket is to end users.
> it does not (and should not) define everything Snikket is to end users.
Does that mean that interop with XMPP is not a feature one should depend on? Is Snikket a XMPP app, a XMPP service, a XMPP fork or is it not XMPP at all despite being based on XMPP software?
Sure, and I don't see a problem with this. It's irrelevant information for an install guide.
It probably should be in the readme (which frankly needs an overhaul). However if someone is looking for an "XMPP server" then there is a good chance that they are not in the target audience for Snikket. I happen to also be a developer of Prosody, the XMPP server software Snikket uses. Prosody is an extremely flexible and customisable XMPP server, and most Prosody users love that about it. But a Snikket server is totally opinionated, preconfigured and exposes minimal controls to the admin.
> Does that mean that interop with XMPP is not a feature one should depend on?
It's a feature you can depend on as much as you can depend on it having e.g. video calls. Removing it would have a negative impact on the project.
Replacing it? If there were alternatives and they were interoperable, sure, maybe. Matrix is probably the only alternative that comes close to that, but it has a way to go before it could meet our needs. I consider a switch from XMPP very unlikely.
> Is Snikket a XMPP app, a XMPP service, a XMPP fork or is it not XMPP at all despite being based on XMPP software?
It's an app and server that implements XMPP. It's not a fork of XMPP (we actively participate in XMPP development).
One final thing to note is that Snikket projects, while using standard XMPP, will focus on pushing XMPP forwards, and prioritise this over backwards compatibility with other projects in the XMPP ecosystem. Example: a couple of XMPP clients don't do encrypted calls yet. Snikket calls are encrypted always. We won't compromise on security or usability in the name of backwards compatibility. Related projects such as modernxmpp.org are part of this mission to keep XMPP moving forwards.
Check again. It's been updated for a while now. It's always updated, just sometimes less frequently then some people expect. There's no obligation to publish code every x months.
> smells like a fed op
You clearly have no idea what your talking about if you believe this. Signal is open source, it has been audited, it provides deterministic builds, is using state of the art cryptography, it's protocol is now the defacto secure communication protocol all other serious communication apps use, and is recommended and used by all the leading experts in cryptography and infosec...
> one of the creators was trying to use it to pump some shitcoin
Except there is 0 evidence that any pump and dump is going on. Or that moxie even owns mobilcoin. And calling it a "shitcoin" makes you out to be some cryptobro who shouldn't be taken seriously. There are numerous reasons they used a coin that was designed and optimized for use on a mobile phone. No other coins met their criteria. They also built some cool tech on top of that as well.
You're either seriously uninformed or are trying to spread fud.
Also, couldn't we avoid having a server for group chat based on same idea (cache messages in outbox until other parties come online?)
Here are some protocols that use noise (specifically differentially private noise):
https://people.csail.mit.edu/nickolai/papers/tyagi-stadium-e...
You dont need asynchronous messages to be stored centrally, but you d need both to be online at the same time at some point.
That s a feature I never saw in a chat app, they always have a central crap keeping messages defeating any kind of serverless claim.
> How do I pronounce Cwtch? Like "kutch", to rhyme with "butch".
> Cwtch (/kʊtʃ/ - a Welsh word roughly translating to “a hug that creates a safe place”) is a decentralized, privacy-preserving, multi-party messaging protocol that can be used to build metadata resistant applications
Similarly, for English, I would label it Kutch and probably make other appropriate photogenic transliterations for other languages.
1. Messaging provider cannot see which accounts message each other
2. ISP cannot see which IP addresses message each other
Using Tor here gets you both 1 and 2, but at the cost of latency: it is something like 6 hops to rendezvous with a hidden service. WebRTC (assuming Tor as a TURN fallback) would be a lot faster, but would not include 2.
It's where telegram won over signal for me for a long time. It's still not perfect, but ok now :)
I'll try again in a year or so if it still exists.
They have a section as follows:
How do I pronounce Cwtch? Like "kutch", to rhyme with "butch".
Just scroll down the homepage
I haven't yet familiarized myself with this particular protocol, I have something like Briar in mind when it comes to P2P chat.
Short answer; When done well, it makes the app more resilient against a variety of issues/risks that arise from relying on a server/service/single-point-of-failure.
> The answer to why is there no Mac/iOS version of Cwtch / why does Cwtch not have feature X is that last year we raised only a fraction of our donation target. You can help change that!
> @OpenPriv is powered by hundreds of individual donors just like you!
Cross-platform support is table stakes for a messenger. This will likely go the way of Ricochet.
https://briarproject.org/news/2018-1.0-released-new-funding/
https://code.briarproject.org/briar/briar/-/issues/445
As an even smaller team with less funding, we have so far decided it would be irresponsible to risk sinking a sizable portion of our limited funds into trying to port to iOS when it may be impossible.
But if you really want it, please, donate, we need iphones, macs, dev accounts and budget for the research and work!
You can't solve this problem at the application layer.
With iOS you have to either be a leading expert in vulnerability research or hope that someone else finds a serious security issue in your operating system, leave it unpatched, and then exploit it yourself to get proper access and control your device.
I'd trust Apple more than Google to do the right thing any day of the week, but they're not some foundation with a mission. Cutting Apple out of your data is a lot harder on an Apple than it is to cut Google out on Google's platform.