Skip to content
0
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

fedi wiki

  1. Home
  2. E2EE Task Force
  3. Limiting Group Membership Metadata Exposure

Limiting Group Membership Metadata Exposure

Scheduled Pinned Locked Moved E2EE Task Force
7 Posts 4 Posters 0 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • E This user is from outside of this forum
    E This user is from outside of this forum
    evan@activitypub.space
    wrote last edited by
    #1

    This is a discussion thread for an open issue on GitHub:

    https://github.com/swicg/activitypub-e2ee/issues/83

    evan@cosocial.caE jamesmarshall@sfba.socialJ 0 3 Replies Last reply
    0
    • E evan@activitypub.space

      This is a discussion thread for an open issue on GitHub:

      https://github.com/swicg/activitypub-e2ee/issues/83

      evan@cosocial.caE This user is from outside of this forum
      evan@cosocial.caE This user is from outside of this forum
      evan@cosocial.ca
      wrote last edited by
      #2

      @evan@activitypub.space @elle ^^^^^^

      0 1 Reply Last reply
      0
      • E evan@activitypub.space

        This is a discussion thread for an open issue on GitHub:

        https://github.com/swicg/activitypub-e2ee/issues/83

        jamesmarshall@sfba.socialJ This user is from outside of this forum
        jamesmarshall@sfba.socialJ This user is from outside of this forum
        jamesmarshall@sfba.social
        wrote last edited by
        #3

        @evan yay, kudos for addressing this! It's true that not all participants would want to identify themselves, e.g. to all friends of friends when replying to a friend's private post. I think it's OK for such repliers to still be identifiable to (only) their friend the OP. Otherwise, harassment would be more possible if the reply were completely anonymous, whereas if the OP knows their identity they can use social pressure to mitigate harassment.

        One challenge is if Alice posts and Bob replies, and Bob is blocking Charlie, then how does Alice (or Alice's server, e.g. an MLSGroup) know not to forward Bob's reply to Charlie, unless Alice knows that Bob is blocking Charlie? Blocklists are private information. One possible solution is to use Private Set Intersection (PSI) to determine the intersection of Alice's recipients and Bob's blocklist. PSI is slow and typically requires recalculating every time one of the sets changes, but Updateable Private Set Intersection (UPSI) can handle set changes quickly.

        1/

        jamesmarshall@sfba.socialJ 1 Reply Last reply
        0
        • E evan@activitypub.space

          This is a discussion thread for an open issue on GitHub:

          https://github.com/swicg/activitypub-e2ee/issues/83

          0 This user is from outside of this forum
          0 This user is from outside of this forum
          0xllx0@activitypub.space
          wrote last edited by
          #4

          Expanding on the end of our discussion today:

          I think a good mitigation for metadata exposure is to more-or-less follow option C from: https://github.com/swicg/activitypub-e2ee/issues/83, with the addition that all MLS protocol messages + user messages should be encrypted blobs wrapped in an activity, possibly a Note or the Create wrapping a PrivateMessage/Note. I'm in favor of using a core, and/or a widely implemented vocabulary type to minimize code changes needed server-side.

          The encrypted blob would go in the activity's content field (like in Option B), and the activity would be signed using one of the Group actor's keys so it could be posted to the Outbox. This protects leaking membership information, since the server would just see a signed activity using one of the Group actor's keys. To further obfuscate member identity, the MLS epoch key could be used for this purpose, and added to the list of the Group actor's keys. Details about trade-offs of using the epoch key probably need to be discussed, as it would leak key rotation information, so a separate long-term key shared by all participants may be better.

          For message delivery, all participants would used authorized fetch (using the long-term key) to retrieve all Outbox messages. Each client will attempt to decrypt every message, and only be able to successfully decrypt messages intended for them. This would obfuscate the identity of receiver participant(s).

          Network-level metadata is still a concern, but would be better handled by the respective layer in the OSI stack.

          At the application level, using the above scheme would sufficiently obscure metadata from the host server, and outside observers. It essentially is a combination of Options B and C, except that the hosting server has no information about the participant list (that is all contained in MLS ciphertext messages). It has the side-benefit of requiring essentially no server-side changes at all, since all messages would just appear as normal activities.

          To avoid total centralization of the server, "fallback" servers could be listed in the bto field like in Option B. Though, this could also be optional, as it leaks at least some participant information, e.g. at least one participant has an account in that server list. Fallback servers could also be coordinated in-band using MLS messages, and a new Group actor created in case of a down server, malicious host, etc. However, fallback servers are tangential to the metadata discussion.

          1 Reply Last reply
          0
          • jamesmarshall@sfba.socialJ jamesmarshall@sfba.social

            @evan yay, kudos for addressing this! It's true that not all participants would want to identify themselves, e.g. to all friends of friends when replying to a friend's private post. I think it's OK for such repliers to still be identifiable to (only) their friend the OP. Otherwise, harassment would be more possible if the reply were completely anonymous, whereas if the OP knows their identity they can use social pressure to mitigate harassment.

            One challenge is if Alice posts and Bob replies, and Bob is blocking Charlie, then how does Alice (or Alice's server, e.g. an MLSGroup) know not to forward Bob's reply to Charlie, unless Alice knows that Bob is blocking Charlie? Blocklists are private information. One possible solution is to use Private Set Intersection (PSI) to determine the intersection of Alice's recipients and Bob's blocklist. PSI is slow and typically requires recalculating every time one of the sets changes, but Updateable Private Set Intersection (UPSI) can handle set changes quickly.

            1/

            jamesmarshall@sfba.socialJ This user is from outside of this forum
            jamesmarshall@sfba.socialJ This user is from outside of this forum
            jamesmarshall@sfba.social
            wrote last edited by
            #5

            @evan

            UPSI is fairly new technology, just a few years old. I haven't used it myself, but it could be part of the solution for the blocking problem you refer to.

            This was all true as of around 2022, when I was looking into this issue of blocking and private posts, while trying to keep blocklists private.

            If I understand it correctly, I like your MLSGroup solution.

            I guess I should have posted this to the GitHub thread.... 😕

            2/2

            1 Reply Last reply
            0
            • evan@cosocial.caE evan@cosocial.ca

              @evan@activitypub.space @elle ^^^^^^

              0 This user is from outside of this forum
              0 This user is from outside of this forum
              0xllx0@activitypub.space
              wrote last edited by
              #6

              @evan@cosocial.ca I have a queued reply currently awaiting approval.

              Thanks for starting this thread, and adding the E2EE Task Force! <img class="not-responsive emoji" src="https://activitypub.space/assets/plugins/nodebb-plugin-emoji/emoji/android/1f49c.png?v=b232808582d" title="💜" />

              julian@activitypub.spaceJ 1 Reply Last reply
              0
              • 0 0xllx0@activitypub.space

                @evan@cosocial.ca I have a queued reply currently awaiting approval.

                Thanks for starting this thread, and adding the E2EE Task Force! <img class="not-responsive emoji" src="https://activitypub.space/assets/plugins/nodebb-plugin-emoji/emoji/android/1f49c.png?v=b232808582d" title="💜" />

                julian@activitypub.spaceJ This user is from outside of this forum
                julian@activitypub.spaceJ This user is from outside of this forum
                julian@activitypub.space
                wrote last edited by
                #7

                @0xllx0 apologies for the delay! The queued posts are approved and you should be good to post freely now.

                1 Reply Last reply
                0

                Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                With your input, this post could be even better 💗

                Register Login
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                • Login

                • Don't have an account? Register

                • Login or register to search.
                Powered by NodeBB Contributors
                • First post
                  Last post