damus icon indicating copy to clipboard operation
damus copied to clipboard

Feature Request: disable DM for ActivityPub bridged users

Open Sjors opened this issue 1 year ago • 11 comments

When the kind 0 of a user has a proxy tag, you should disable DM functionality.

Afaik nobody implemented this, and there's no sane way to do it currently.

It's even hard (impossible?) for the bridge to rejected kind 4 messages: https://gitlab.com/soapbox-pub/mostr/-/issues/91

This means any DM just goes into the void with no feedback.

Example user:

{
  "id": "d015ffc7b1df1be705dd10c675e4c3bf6ad9b79a722c0ebd0f7cf70fd6abf34a",
  "pubkey": "d962f9c1ee1ec5f2ba97339ef8f732c928f3eaffb46599bb5c35f282c83f6314",
  "created_at": 1726342649,
  "kind": 0,
  "tags": [
    [
      "proxy",
      "https://mastodon.nl/users/sjors_1",
      "activitypub"
    ]
  ],
  "content": "{\"name\":\"sjors_1\",\"about\":\"Mostly testing stuff.\\n\\nsearchable\",\"nip05\":\"[email protected]\"}",
  "sig": "08b176044810e4dc4d0b97b23af34127e65ef123af142881a4d842c5062a8ab041395091745e19ed8e2017426c24c20c2bddc865bfb6487f1495f1a224776276"
}

https://njump.me/npub1m930ns0wrmzl9w5hxw003aejey5086hlk3jenw6uxheg9jplvv2qmz4fr3

Sjors avatar Sep 17 '24 12:09 Sjors

@alexgleason do you have any guidance on nostr <-> mastodon DMs?

alltheseas avatar Sep 17 '24 13:09 alltheseas

Thank you @Sjors. This sounds like a nostr wide issue - I'll mirror in the nostrability repo

alltheseas avatar Sep 17 '24 13:09 alltheseas

It's possible to bridge nip-04 messages with ChatMessage activities on AP, but I'll probably never do it. I'm mostly happy with things being "broken" at the moment. What if someone builds a bridge that can handle DMs? Then Damus is hardcoded to not work? What it needs is a capabilities system, where users can announce their capabilities via an event, and clients can adapt to that. Eg { capabilities: { accepts_dms: false } }

alexgleason avatar Sep 17 '24 13:09 alexgleason

I'm all in favor of a capabilities API. But I also think it's fine to assume a bridge doesn't support it, until such an API exists. Especially given that no actual bridge supports it or even wants to support it.

Sjors avatar Sep 17 '24 13:09 Sjors

It's an incorrect usage of the semantics. And if clients do that, they'll never change it. Do you realize how hard it is to just coordinate lunch with 5+ people?

alexgleason avatar Sep 17 '24 13:09 alexgleason

It's an incorrect usage of the semantics.

Why? NIP-48 defines multiple proxy types like rss and web that inherently don't support DM. It doesn't specify that these protocols SHOULD, or even MAY, support DM. It seems perfectly reasonable to me to assume that they don't.

nip-04 DMs are also totally unsuitable for a bridge like Mostr which has access to the private keys. Although nip-04 has serious downsides, users would not expect their encrypted messages to be downgraded to plain text. So any client implementing nip-04 imo should absolutely not send those to a proxy.

This can be reconsidered with future DM standards that are designed to be interoperable, like MLS.

Or if there's a proxy type to something that also uses (secp256k1) key pairs.

And if clients do that, they'll never change it.

If enough users complain they will. It's more like converting 5 friends to vegetarianism: doesn't have to be simultaneous.

Sjors avatar Sep 17 '24 13:09 Sjors

tbh we will likely get rid of nip04 dms entirely. nip17 is a bit more sane

jb55 avatar Sep 17 '24 16:09 jb55

nip17 would be nice for sending a message from the plain-text Fediverse to a Nostr user, because it doesn't leave as much meta data visible. But the other way around it still has the same problem: the bridge admin and the mastodon instance admin can read it.

Sjors avatar Sep 17 '24 16:09 Sjors

well this is the current state of DMs on the fediverse? Maybe we could put a warning when sending to fediverse users?

jb55 avatar Sep 17 '24 16:09 jb55

@jb55 If you were to add a warning, I would suggest something like this:

This user is bridged from an external network. Your message may not be seen, and it could be intercepted by third parties.

alexgleason avatar Sep 17 '24 16:09 alexgleason

A warning might be fine. Though I wouldn't want to be sitting on that kind of non-public data as a server admin, that's a separate issue.

Sjors avatar Sep 18 '24 07:09 Sjors