Where are we on X Chat security?

Oct. 20th, 2025 03:45 pm
[personal profile] mjg59
AWS had an outage today and Signal was unavailable for some users for a while. This has confused some people, including Elon Musk, who are concerned that having a dependency on AWS means that Signal could somehow be compromised by anyone with sufficient influence over AWS (it can't). Which means we're back to the richest man in the world recommending his own "X Chat", saying The messages are fully encrypted with no advertising hooks or strange “AWS dependencies” such that I can’t read your messages even if someone put a gun to my head.

Elon is either uninformed about his own product, lying, or both.

As I wrote back in June, X Chat genuinely end-to-end encrypted, but ownership of the keys is complicated. The encryption key is stored using the Juicebox protocol, sharded between multiple backends. Two of these are asserted to be HSM backed - a discussion of the commissioning ceremony was recently posted here. I have not watched the almost 7 hours of video to verify that this was performed correctly, and I also haven't been able to verify that the public keys included in the post were the keys generated during the ceremony, although that may be down to me just not finding the appropriate point in the video (sorry, Twitter's video hosting doesn't appear to have any skip feature and would frequently just sit spinning if I tried to seek to far and I should probably just download them and figure it out but I'm not doing that now). With enough effort it would probably also have been possible to fake the entire thing - I have no reason to believe that this has happened, but it's not externally verifiable.

But let's assume these published public keys are legitimately the ones used in the HSM Juicebox realms[1] and that everything was done correctly. Does that prevent Elon from obtaining your key and decrypting your messages? No.

On startup, the X Chat client makes an API call called GetPublicKeysResult, and the public keys of the realms are returned. Right now when I make that call I get the public keys listed above, so there's at least some indication that I'm going to be communicating with actual HSMs. But what if that API call returned different keys? Could Elon stick a proxy in front of the HSMs and grab a cleartext portion of the key shards? Yes, he absolutely could, and then he'd be able to decrypt your messages.

(I will accept that there is a plausible argument that Elon is telling the truth in that even if you held a gun to his head he's not smart enough to be able to do this himself, but that'd be true even if there were no security whatsoever, so it still says nothing about the security of his product)

The solution to this is remote attestation - a process where the device you're speaking to proves its identity to you. In theory the endpoint could attest that it's an HSM running this specific code, and we could look at the Juicebox repo and verify that it's that code and hasn't been tampered with, and then we'd know that our communication channel was secure. Elon hasn't done that, despite it being table stakes for this sort of thing (Signal uses remote attestation to verify the enclave code used for private contact discovery, for instance, which ensures that the client will refuse to hand over any data until it's verified the identity and state of the enclave). There's no excuse whatsoever to build a new end-to-end encrypted messenger which relies on a network service for security without providing a trustworthy mechanism to verify you're speaking to the real service.

We know how to do this properly. We have done for years. Launching without it is unforgivable.

[1] There are three Juicebox realms overall, one of which doesn't appear to use HSMs, but you need at least two in order to obtain the key so at least part of the key will always be held in HSMs

Life with two kids: Their every move

Oct. 20th, 2025 08:15 pm
andrewducker: (Default)
[personal profile] andrewducker
Through the power of (very basic) smart home automation I now get a notification whenever the kids open the back door, and can then remotely check if they've left it open.

Many parents throughout history would be jealous.
andrewducker: (screaming hedgehog)
[personal profile] andrewducker
Sophia: "So mummy took a year off from her job when I was born and then she went back?

Incredulously: "And they remembered who she was?"
andrewducker: (Default)
[personal profile] andrewducker
Gideon, climbing on to Sophia's lap: "I'll be Alexa."
Sophia: "Alexa, play Soda Pop"
Gideon: sings Soda Pop
Sophia: joins in
andrewducker: (livejournal blackout)
[personal profile] andrewducker
I've finally found a use for LinkedIn - it's doing all of the puzzles and then seeing how much better my contacts did.

Interesting Links for 18-10-2025

Oct. 18th, 2025 12:00 pm

Photo cross-post

Oct. 17th, 2025 08:01 am
andrewducker: (Default)
[personal profile] andrewducker


The neighbours are putting in a front drive. The children were delighted to get a go.
Original is here on Pixelfed.scot.

andrewducker: (Default)
[personal profile] andrewducker
It would be awesome if I didn't have to have an argument with Gideon about bedtime every single night.

Sophia doesn't do that any more. I wonder at what age he'll grow out of it.
andrewducker: (Experience)
[personal profile] andrewducker
Today I spent £108 on getting myself vaccinated against Flu and Covid.

Which led me to wonder what the cost of days off is to the economy. And how far off we are from it being worth the government vaccinating everyone.

Photo cross-post

Oct. 11th, 2025 03:22 am
andrewducker: (Default)
[personal profile] andrewducker


The children have located Christmas.
Original is here on Pixelfed.scot.

Profile

xiphmont: (Default)
xiphmont

Most Popular Tags