or in the case of an AP server that speaks nostr protocol, the user could subscribe to the provided relay and send an encrypted message that could only be read by the secret key holder with a phrase that needs to be included in a reply or pasted into a field on the login page.
@colinsmatt11 I'm not sure I follow. I mean it's authentication. I'm not asking why can't people already using password auth also accept signatures. I am asking if there is some technical reason that it couldn't be done this way. How current ap servers authenticate users isn't really important unless it's some kind of technical requirement. I don't think the AP spec determines how you manage user auth. I would think being able to prove you own the private key to a public key the server could store would be sufficient.
@thatguyoverthere Private keys aren't portable and many people don't have a security key, that's biggest issue for its adoption.
AP spec defines almost nothing lol. AP servers can use any authentication middleware, but it's simply not worth the effort because it would only be used by a selected number of people.
@colinsmatt11 What I am doing is already a bit niche so yeah I doubt it's something that would gain lots of adoption (and realistically most programming isn't "worth the effort" but I enjoy a challenge and building things is fun). I am trying to work out how to bridge activity pub and nostr in a single service, and this would allow me to do that fairly cleanly. Someone had proposed using public keys as usernames in the AP side, but this seems flawed not just because it means unsightly long @ s, but also anyone could technically paste a public key into the username field and claim they own it (until challenged to sign something). If instead you treated it like an extern_uid you could create an authentication pathway for people who enter a valid public key using the `npub1....` format into the username login field. You could either give them something to sign and give back, or it would even be easy enough to just have the server send the user an encrypted message over nostr that they need to reply to. The server would be acting as a nostr relay already so the user could subscribe to the local relay and effectively authenticate the AP session using nostr as the provider.
@colinsmatt11 I am not a mathematician so math only ever seems worth solving when there is some kind of problem solving the math will help me overcome. Learning how to measure rafters isn't something you do until you need to cut rafters kind of thing.
The signature verification method could also make nomadic identity possible since only the person holding that private key could use it, and if it were included in webfinger as an alias or something you could validate that a person owns the account quite easily.
@colinsmatt11@silverpill no but I have been toying around with running mitra at some point. Pretty cool that a specification exists for proofs like that already. It looks like mitra is already including them in activity streams. I would essentially be doing something similar but on the client to server side and using a side channel protocol for handling the proof. In my case part of the purpose is to make it so that one server could act as a nostr relay and ap federated server with an account being represented in both protocols using common attributes that are not able to be impersonated. The nomadic identity component is kind of a side effect.
@colinsmatt11@silverpill there appears to be a specification along these same lines using the same keys nostr uses already. Of course it’s “not fit for production deployment”
@silverpill@colinsmatt11 I started reading over your code and the mentioned proposal last night. I think it's a lot more approachable than the go code that I've been trying to parse.
@thatguyoverthere@colinsmatt11 Good to hear! The code is very much work in progress. I'm currently using my own signature suites (documented here). Also, I haven't even implemented FEP-c390 (identity proofs). Once I do that, everything will be much simpler because there's a lot of overlap between FEP-c390 and FEP-8b32.