Element (Matrix) launches Chatterbox, end-to-end encrypted embedded chat
element.io
element.io
First the pricing is outrageously high.
Second, why not provide a link to try it? And screenshots to see how it looks from an agent's point of view. Because Most embedded chat widgets come with advanced customer support features, and Element applications are not designed for that.
Don't tell, show!
I wonder how this compares to alternatives like [1] and [2] that you can also host yourself.
There was also a Matrix project *that I can't find for the life of me) featuring multi-agent live chat support with multiple agents being able to join and leave a room. I suppose the E2EE support is what sets it apart, though I'm not sure if that's actually a feature you really need.
Half the features advertised seem to be existing EMS features (like talking across chat services). I suppose you can use this to portal a web chat box into Slack but honestly I think there are better solutions.
[1]: https://github.com/osousa/livematrix
I wrote [1] (Thanks for the reference) , and i skipped encryption for the sake of simplicity.
I'm enabling encryption as we speak.
If you host the server yourself, on a controlled setting (VPS), it should allow for a fairly secure way of communication if TLS is used. The communication channel would resemble this rough ASCII drawing:
[Browser] <---TLS---> [livematrix] <---e2ee---> [Matrix homeserver]
In the end you always have to trust the person hosting the service. Host things yourself.
I don't see this channel of communication as being truly secure, without audits where and how its deployed. Web apps are riddled with vulnerabilities, how much of the attack surface from a website would compromise the live chat embedded is a guess until it happens.
I should point out that my "solution" is intended for personal websites, people who enjoy Matrix a lot :) . Not for corporations at all.
There is no risk of service provider spying on you because you as the business is the service provider.
With the private keys on the recipient end and the browser end, it does make it easier to follow certain data privacy regulations. Whether the rather leaky Matrix protocol is considered foolproof is still an unanswered question, though; the average encrypted chat session sends a LOT of unique identifiers that shouldn't cause any trouble, but I haven't seen a recent audit of the protocol.
Imagine you're contacting a doctor and are communicating about sensitive stuff. I'd still expect this to been treated relatively confidential, i.e. not spreading it within the company, or potentially leaking it.
Plus, the matrix server of the person on the other side might not be in your hands, e.g. hosted by Element
Thanks to the prevalence of early HTTPS termination (usually at the edge of some big cloud company), that green pad lock at the top of your browser means little when true privacy is needed.
Let's say I'm talking to my bank. Is there really any information that you want open? They're going to ask you security questions to confirm your identity. You're likely talking about specific sums of money.
Let's say you're talking to your doctor. Is there really any information that you want open? Are you violating HIPPA and privacy laws just by talking? Your health is of no concern to anyone but you and your health provider. Full stop.
I mean, they use these two examples in the post. The use case is pretty clear to me here. The risk isn't your service provider spying on you, it is anyone that you aren't intending to talk to. A hacker (who may be interested in your bank or health care). A state actor. Abusive ex. Data companies that extract every bit of information they can. Or politicians who want to track your period. Maybe this isn't useful when I'm submitting tickets to wandb, but I can see this being very helpful when I'm talking to my bank.
To track the identity of who you’re talking to we can do TOFU and/or normal out of band Matrix verification as per https://github.com/vector-im/hydrogen-web/issues/518 - but this isn’t yet exposed in Chatterbox. We’ll get it added, as without verification you obviously can’t spot a MITM.
Edit: sorry I should have clarified that I was answering your second question. As for the first question, the user still has to trust the business to a certain extent
This threat model just does not make sense.
This use case is more for the business, who knows that the chat is hosted by a 3rd party, but is reassured that the 3rd party wont have access to messages.
With e2ee you have to trust the client. But a client that is running as a website hosted by someone else can't be trusted as the host can modify it and you'd never known because browsers don't have a way to alert you when a site changed.
The only way this makes sense is if you (or your business) self-hosts.
This is one of the major benefits of having an open protocol like Matrix. The clients are separate from the servers. People with more resources and more expertise can host the servers, while regular users just need to download an open source client, and they can rest assured that the messages are secure.
* You may not want to trust the hosting entity for all of time. If you trust that E2E is deployed now, then you don't have to trust the future version of the host
* You may want additional protection against the host database being compromised. If you trust that E2E is deployed then a compromise of the host would not mean anything for your users privacy
From TFA:
>there’s no need for them to register or create an account just because it’s E2EE, and it still supports persistent messaging.
How does that work? Arathorn in a sibling comment says that there's out of band something, which I interpret to mean some verification process, but for the life of me I can't imagine what that process might be or how it might work without any sort of account... unless the client generates a unique a key per user session and coordinates the key exchange with a single host server behind the scenes to encrypt that session's data?
What am I missing?
I think this is targeted towards securing chat traffic from thrid-party hosting services accidentally leaking or passively spying on you. Think problems that arise from early HTTPS termination like the cloudflair's https leak.
I've tried to join the main matrix chat room (#matrix:matrix.org) but my poor homeserver just couldn't handle it.
> Linux, x86_64. Getting the same behavior across distros and installations.
It is still very much the case. To emphasize, we have for the past couple of years used Matrix routinely on:
* Multiple client implementations
* Multiple OSs (Linux/Android/iOS)
* Multiple accounts and profiles
* Multiple Linux distros, desktop environments, window managers, X11/Wayland, CPU architectures (x86_64, aarch64)
* Private and public homeservers
In particular, multiple accounts on the same Linux installation of element-desktop.The common denominator seems to be that the account with many (thousands) of rooms (almost all of which fully historical/archived with no ongoing activity apart from participants presence) consistently gets Element freeze, hang, be extremely slow.
This makes element-desktop practically unusable for that account. Other accounts in the exact same environment do not have this issue. Signing in to a fresh profile seems to improve this, for a while, until it starts happening again
The same issue does not appear on Element iOS/Android, or with other accounts on the same client.
It gets more annoying by the fact that even under normal operations it's slow enough to start up that it can take some time to tell if this time it'll eventually resolve by waiting or if it needs to be force-killed and restarted. This is also the case on an otherwise idle 8-core Ryzen3 with 64GB of RAM and fast NVMe drive sitting close to its homeserver on a 1GBps link. (The slowness seems to be all or mostly locally in Element - even when in a mostly empty room, it can take a very long time expanding/collapsing/navigating the People/Rooms sidebar. This, too, only for those particular high-room accounts and only on element-desktop)
For a while we believed it could have been the same cause as this issue[0] but alas, 1.11.0 with Electron 19 has not resolved it.
The common factors that consistently exhibits this behavior seems to be Linux, element-desktop, account with large amount of rooms. Been like this for a while now.
It works fine on macOS as mentioned in that thread, especially with 4000 rooms on both Firefox and Chrome and supporting that is simple with a predictable desktop stack. The Linux Desktop however is eternally plagued with these issues and the support and testing is very expensive.
It is a serious and fundamental problem with multiple alternative of alternatives of system components to test and the problem [0] may still happen deeper in the desktop stack and looking for the root cause is like finding a silver needle in the sky and would require a mixture or part time / full time devs to test or debug literally everything that is in the stack to reproduce or actually find it.
The fact that it works fine on macOS and it hasn't been solved on Linux yet, tell us that defining Linux Desktop support and targeting / supporting 100% of Linux Desktop users is an impossibility. It's a very expensive contraption to support, unlike the users on Windows and macOS.
So whatever is going wrong here is presumably a Linux-specific bug on Element Desktop, which I'm unaware of, and haven't heard from any of the other linux Element Desktop users. Have you filed an issue with logs to get it on our radar? HN is not our bug tracker...
https://github.com/vector-im/element-web/issues/20431
https://github.com/vector-im/element-web/issues/20143
I think the reason you don't see log reports here is that a condition for this to be problematic is large number of rooms/DMs. We could audit/edit the logs and submit them manually (and perhaps I'll get around to that). I also suspect high-intensity users are more likely to disable telemetry.
Just putting out a possible explanation why this issue may be more prominent than can be gathered from analytics. You do seem to recognize the common complaints of slowness (the dismissal of which prompted me to follow up in the first place), and there is at least one GitHub issue open by prominent community members since ~6 months.
It would be more honest to say something like "element-desktop works great on macOS and keeps improving on all platforms", rather than pretending like anyone with issues is an edge case. Could it be that you, who work closely to the product, are more of an edge case?
We all have our blind spots.
If you have time at some point, maybe spin up an Ubuntu/Fedora/whatever VM, install element-desktop, sign in to your account and try to use that as your desktop driver for two weeks. Should be straight-forward enough on a Mac. It needs to be with your largest account. Consider it a challenge.
Uuuuuh ok...? WhatsApp isn't slow.
When joining huge chat rooms like some of those on the matrix.org homeserver, it can take a bit for the clients to sync up and get going. Performance is getting improved all the time, especially in terms of quickly joining a room. Latency also doesn't help, the protocol requires loads of round trips for the JSON payloads to go back and forth, so if you're not near your homeserver you're going to see some annoying problems.
I recommend giving the platform another quick try using https://app.cinny.in/ which to me feels very Discord-like in terms of snappiness.
Regardless, if you believe the issue is the client, which would you recommend is the lightest/fastest client?
Shocking to see Arathorn deflecting about this. I run a server and just never use federation to avoid the problem.
Not sure why I keep getting flagged
Synapse being written in Python seems like a much bigger problem to me. This problem only exists in rooms not already available on the server, though; if you register with matrix.org then matrix.org rooms won't suffer nearly as much as running your own server.
Sadly, alternatives like Conduit still aren't fully-featured and they probably won't ever be as focus lies on the Element ecosystem. It's a real shame.
My point was that saying “matrix is slow” is unhelpful given it’s completely unclear what aspect is being complained about.
I don't know why Arathorn is further down the thread dismissing this problem.. it's a well-known problem in the community..
https://github.com/matrix-org/synapse/issues/1211 there's the seven year old bug
Ok, so matrix is useless then, is that it?
The clients feel sluggish as well, just in terms of moving around the UI.
We’ll see how the pricing fares in practice.
Signal's complete inability to any kind of history backup is a dealbreaker for me.
I think it's unlikely that this chatbox has export functionality
It seems like Element is limited to only exporting a single room, though. You need something like https://gitlab.com/argit/matrix-recorder/ to export all messages, it seems.
Can't you use your client key(s)?
it has if the the person who you are chatting with didn't already delete their comment (unless you host your own server and modified it to keep a log of everything)
Which is currently broken and has been for some time. If you export a room, images will not show in the final exported chat.
I don’t know about the general populace, but I would instead be surprised to encounter E2EE in embedded chat.
I also go to what I keep on saying in cases like this: first-party end-to-end encryption is broken by design. To have any semblance of real security, you need to self-host the client software, preferably also obtaining it from a different party from the transport provider. Self-hosting of the entire chat system is the only truly dependable solution here, and in that context for this application, end-to-end encryption adds no value at all, being equivalent to transport encryption.
If any matrix element would do, how will new customers appear in the client? Will they pop up as a new direct chat?
1. The employee who has the blessing of the company to work on a side project during some work hours.
2. The developer who does contracting to keep a passion project afloat.
3. The developers who organize a company and try to invent business cases while keeping the core free and open.
Out of these, I feel (3) has the most possibilities. E.g. ability to focus, or if you happen to stumble on a great contributor, you can offer them a job. I don't see how this could be worse than the alternatives.