Soatok Dreamseeker

u/Soatok@pawb.social
47 posts · 47 comments

Recent posts

Recent comments

How much do you know about cryptography?

I've written tons about why this approach was taken, but it might be inaccessible to someone with limited knowledge of modern cryptography protocol design. (Authenticated encryption, forward secrecy, context commitment, etc.)

This was my earliest blog post on the topic, if you want a place to start.

Your instance admin subtitutes the public key in your profile with one they control.

How do you stop this?

Like, half the point of E2EE for DMs is to prevent instance admins from seeing what your messages say. The other half is to prevent instance admins from being able to surrender anything useful to government subpoenas.

It does a lot of good, actually.

If you know the alternatives suck, you can organize to make an alternative that doesn't suck. Some of the existing ones might be a good starting point, but if you care more about usability than privacy or federation, it will inevitably become another Discord when the law man comes.

That said, the userbase of Discord is sufficiently large that some among you have the technical chops to replace it.

why it this separate mechanism needed in the first place?

Because ActivityPub was not designed for E2EE. That's the simplest answer.

The longer, and more technical answer, is that doing the actual "Encryption" part of E2EE is relatively easy. Key management is much harder.

I initially set out to just do E2EE in 2022, but got roadblocked by the more difficult problem of "which public key does the client trust?".

If you want E2EE for Mastodon, you need key management to be solved first.

This solves a lot of the key management pain. It's not v1.0 stable yet, but it's finally implemented. I've been working on the spec for nearly 2 years.

It's a building block to make E2EE possible at Fediverse scale.

I've written about this topic pretty extensively: https://soatok.blog/category/technology/open-source/fediverse-e2ee-project/

If you can build in Federated Key Transparency, it's much easier to reason about "how do I know this public key actually belongs to my friend?" which in turn makes it much easier to get people onboarded with E2EE without major risks.