Hey Fedizens! What new tools, apps, software etc would you like to see demo’d? Who is building cool stuff?
Drop your recommendations here or in the registration survey… we want to see what people are building for the #fediverse at our unconference!
@fediforum I'm building a Fediverse server on Rust and Svelte with native end-to-end encryption built-in facilitated by wasm modules: https://gitlab.com/enigmatick
Still early, but ActivityPub works (I can receive and send posts, etc.) And the E2EE is framed out for 1:1 direct messages with a very basic UI implementation built.
@justin Cool project!
We'd love to have you at #FediForum and you could run a session about your project.
End-to-end encryption is something many people in the #fediverse are interested in.
@fediforum I could probably do a speed demo if that would be interesting. A quick run through from account creation through encryption session negotiation and passing a couple of messages back and forth between servers.
@justin This time around, the best thing for your project appears to be to run a session on it at #Fediforum, which you are very welcome to do.
@justin Do you have any document that describes your approach to E2E encryption?
@silverpill I have the beginning of a diagrammatic overview of the structs involved, but I need to spend more time writing up the details.
It's nothing particularly novel (as encryption really should not be). Just Olm with an ActivityPub overlay.
@justin Thanks! I'd like to implement e2ee as well at some point, and there is a bunch of other people who are researching this topic or building prototypes. It would be nice to make all implementations interoperable in the future.
What to you think about https://docs.rs/vodozemac/latest/vodozemac/ ? Can it be applied to ActivityPub?
@silverpill That's exactly what I'm using. :) I'm not sure why, but it seems they named the Olm package Vodozemac for some reason.
@silverpill I have the WASM code for that split off in the 'olm' folder at the GitLab organization. It could probably be reused for other projects.
The reason it's split off as its own module is that it requires x25519-dalek which in turn requires an old version of zeroize that doesn't play well with any reasonably modern version of the rsa crate I use for signing in the 'enigmatick_wasm' module.
@justin Awesome. Looks simpler than I thought it would be :)
@silverpill The actual encryption and key generation isn't too bad! It's just managing how that data is moved about that's complicated.
I'm keeping all the account and session data on the server and using a separate symmetric encryption method to secure it. That lets me keep things mobile.
I also built a vault mechanism to take the received decrypted messages and re-encrypt them for long-term storage on the server. The Olm ratchet is essentially single-use per message.
@justin @fediforum oh neat! I've been thinking of doing something similar, it's neat to see it actually being done!