Skip to main content

in reply to Fedilab Apps

Small clarification: FediHood is fully a web app, like other Fediverse software (Mastodon, Pleroma, etc.). I reused the work I did on HolosSocial, which already used the Signal Protocol.
I'll write a FEP about it, since it works well.
in reply to Fedilab Apps

Does Signal offer a stable API for third-party developers? Is it documented?
in reply to Gabriel H. Nunes

@nunesgh
The Signal Protocol (i.e. the encryption itself) is an open, documented spec with open libraries (libsignal). I use the protocol, not Signal's API or servers.
in reply to Fedilab Apps

Thank you for your reply! :)
Did you reimplement the protocol or did you vendor libsignal?
in reply to Gabriel H. Nunes

@nunesgh
I vendored, not reimplemented. I use npmjs.com/package/@privacyrese…, a pure TS port of libsignal running on Web Crypto. I only wired the sessions and the ActivityPub transport.
in reply to Fedilab Apps

Have you looked at the work bonfire/emissary is doing in this space?
in reply to amd

@amd
I'm following what they're doing, though it works differently: they're going for MLS over ActivityPub, while I use the Signal Protocol. With HolosSocial I already had something working and published, so I just extended it to my other project. Once their approach is available, I even suggested switching to it.
@amd
in reply to Fedilab Apps

Could you tell me, what the fedihood project is? Is there any website?
I tried to find more info, but I couldn't.
in reply to Włóczykij

@wloczykij
I've written several posts recently with the #FediHood tag, you should find all the details there.
in reply to Fedilab Apps

Very cool, is this MLS? Would be awesome to make Loops compatible with this!
in reply to Daniel Supernault

@dansup
Unfortunately not, but I am following what is being done :)

toot.fedilab.app/@apps/1170676…


@amd
I'm following what they're doing, though it works differently: they're going for MLS over ActivityPub, while I use the Signal Protocol. With HolosSocial I already had something working and published, so I just extended it to my other project. Once their approach is available, I even suggested switching to it.

in reply to Fedilab Apps

Hey, cool news, and congrats on this development!

I saw below that you’re planning an FEP. I’d love to read what you’ve got, once it’s published :)

And yeah @all - we’ve talked about interior with Bonfire and Emissary. One thing at a time.. but that’ll be important once Mastodon joins the party next year.

@all
in reply to SpaceLifeForm

@SpaceLifeForm
In the browser, in IndexedDB (one store per account), kept encrypted with a non-extractable AES-GCM key, and wiped on logout. The server only ever sees public keys and encrypted messages, never private keys.
in reply to Fedilab Apps

You have been overcharged for your Koolaid.

It looks like a good idea from the server side on the surface, to not have private keys.

How long do the public keys persist?

How do I know my message will be delivered to the recipient before I logout?

Can the server guarantee delivery?

How will the recipient have authentication that I sent the message?

This design is easily attacked.

in reply to SpaceLifeForm

@SpaceLifeForm
It's the Signal Protocol via libsignal, not handmade. Your message reaches the server the moment you send it, so logout never loses it and delivery doesn't depend on your session. The server only holds public keys and ciphertext, held 30 days for pickup. Each message is bound to the sender's identity key, so the recipient can confirm who sent it, verified by a safety number. Logout only wipes local keys, affecting old history on a new device. Key backup is planned.