Skip to content

Piero Bosio Social Web Site Personale Logo Fediverso

Social Forum federato con il resto del mondo. Non contano le istanze, contano le persone

#mastondon Friends!

Technical Discussion
165 69 689
  • @scottjenson Private mentions aren't really private if they're not end-to-end encrypted. On a federated platform, you put a lot of trust on the servers, and it's not just the one you're on but also the one receiving the messages. What if I want to message a friend on Threads for instance? I don't know about you, but I don't trust Meta to just deliver the messages without using them to build a profile on me or improve their AI models, which are things I can't really opt out of since it's not my platform. The only way to avoid these things (to some extent) is to make it impossible for them to read my messages.

    The good thing is you don't have to reinvent the wheel here, there are already a few attempts at standardizing encryted messages for ActivityPub: Evan put together the
    MLS over AP, Hollos also did something similar. Make sure to talk to them so we don't end up with yet another standard.

    @Varpie I did just check out Hollo (Hollos?) and it appears to be a server for just 1 account so it's not clear HOW it's handling this. (I'm not going to install it for just kicking the tires)

    For me, the biggest issue is setting up/managing the keys. I'm hoping to find any implementation that shows how to do this?

    It's not enough to show a technology demo, we have to have something mere mortals can turn on without a multiple step configuration process.

  • @Varpie I did just check out Hollo (Hollos?) and it appears to be a server for just 1 account so it's not clear HOW it's handling this. (I'm not going to install it for just kicking the tires)

    For me, the biggest issue is setting up/managing the keys. I'm hoping to find any implementation that shows how to do this?

    It's not enough to show a technology demo, we have to have something mere mortals can turn on without a multiple step configuration process.

    @scottjenson True, handling the messages in a standardized way is one thing, but managing keys across multiple clients is the hard part here. The way I see it, there are 2 options:
    - each client creates its own key, encrypted messages now need to be encrypted with multiple keys and the new clients don't have chat history (this could be mitigated by having existing clients with the decrypted messages send them to the server with the new key)
    - there is some sort of handshake when registering a new client, that passes the private key from a registered client to the new one

    The first option allows to handle each client separately, so we don't need the other device to be available and if we want to stop using a specific app, we can deregister it, but it requires senders to encrypt their messages n times, and as mentioned it makes it difficult to handle chat history.
    The second option makes chat history trivial, but it puts a lot of trust on new clients, if we want to stop using it the rotation of keys is more complex. Also, each client needs to be able to handle the same type of keys, which isn't a given when using different apps.

    I think for user experience, having each client generate its own key and asking older clients to re-encrypt messages with the new key can be better: there is no requirement to have the other clients active at the same time, but we can have the same handshake that would be required for passing PKs, to recover chat history. It also allows to give more granular control over which clients are active, kind of like seeing the active sessions for an account and being able to log off on other devices.

  • @scottjenson True, handling the messages in a standardized way is one thing, but managing keys across multiple clients is the hard part here. The way I see it, there are 2 options:
    - each client creates its own key, encrypted messages now need to be encrypted with multiple keys and the new clients don't have chat history (this could be mitigated by having existing clients with the decrypted messages send them to the server with the new key)
    - there is some sort of handshake when registering a new client, that passes the private key from a registered client to the new one

    The first option allows to handle each client separately, so we don't need the other device to be available and if we want to stop using a specific app, we can deregister it, but it requires senders to encrypt their messages n times, and as mentioned it makes it difficult to handle chat history.
    The second option makes chat history trivial, but it puts a lot of trust on new clients, if we want to stop using it the rotation of keys is more complex. Also, each client needs to be able to handle the same type of keys, which isn't a given when using different apps.

    I think for user experience, having each client generate its own key and asking older clients to re-encrypt messages with the new key can be better: there is no requirement to have the other clients active at the same time, but we can have the same handshake that would be required for passing PKs, to recover chat history. It also allows to give more granular control over which clients are active, kind of like seeing the active sessions for an account and being able to log off on other devices.

    @Varpie I just found https://holos.social/e2ee which explains how keys are generated per message and using the actor in activit Pub allows the sender to know if the recipient is capable of receiving an encrypted message. It seems pretty slick and looks like it's almost ux-free with a few unanswered questions.

  • @Varpie I just found https://holos.social/e2ee which explains how keys are generated per message and using the actor in activit Pub allows the sender to know if the recipient is capable of receiving an encrypted message. It seems pretty slick and looks like it's almost ux-free with a few unanswered questions.

    @scottjenson This is great but it assumes a single device (private key) per account. What if I want to have a phone and a desktop? Whatsapp and Signal both "solve" this by having one main device (the phone) and connected devices that make use of this main device's private key, but in the context of having different applications connected to a fedi account, I'm not sure it would work too well.

  • @scottjenson This is great but it assumes a single device (private key) per account. What if I want to have a phone and a desktop? Whatsapp and Signal both "solve" this by having one main device (the phone) and connected devices that make use of this main device's private key, but in the context of having different applications connected to a fedi account, I'm not sure it would work too well.

    @Varpie exactly. This is why I'm treating this topic as something potentially quite difficult. One of the incredible values of the fediverse is that I use multiple clients to manage my account and I'm worried that encryption will make that nearly impossible.


Gli ultimi otto messaggi ricevuti dalla Federazione
Post suggeriti
  • 0 Votes
    1 Posts
    8 Views
    Hey @evan@cosocial.ca, I'm watching your lightning talk at FOSDEM! I'm simultaneously glad it's less than 10 minutes, but sad it's not longer too :stuck_out_tongue_closed_eyes: (Everyone else, want to watch it? Here it is) Some questions I'm jotting down while I'm watching it I can see the user on ActivityPub.Space, which is how it's supposed to work. Would I be able to follow this user from a non-Person? If integrating into NodeBB, I'd maybe want the Application actor itself to follow it. Love how you head off concerns about consent issues with a slide about how it's not scraping, mass-following, etc. So it uses relays, such as the ones on relaylist.com? Let's talk about how we can get NodeBB sharing data to tags.pub by default (or by admin opt-out switch.
  • 0 Votes
    6 Posts
    30 Views
    @naturzukunft2026 @julian @saskia https://swicg.github.io/miscellany/#Hashtag
  • 1 Votes
    10 Posts
    46 Views
    @evan that makes sense. I've just updated NodeBB to allow for the use of a manual override marker. The limit and even the marker is now customizable per-instance, and I do use the ellipsis when truncating text. Hopefully that resolves the engagement issue while still preserving the intent of b2b8 :smile: As for the use of an LLM to generate a summary, I think I will defer on that, since that might be a source of surprise for those not expecting the invocation of a LLM :sweat_smile:
  • 0 Votes
    13 Posts
    64 Views
    @cwebber @eyeinthesky @evan > There are paths out of the situation, but I'm not confident in the discourse around them right now, and hesitant about how much I want to engage with it.Yes. I posted something on the same subject today.https://social.coop/@smallcircles/116119597745488218