Post AtOOwEvtLILFJHz8im by fentiger@zotum.net
(DIR) More posts by fentiger@zotum.net
(DIR) Post #AtOKv7Du7Z0VIFcQM4 by silverpill@mitra.social
2025-04-23T18:55:17.386278Z
0 likes, 1 repeats
Following the FEP-fe34 update, I am publishing a new version of FEP-ae97: Client-side activity signinghttps://codeberg.org/fediverse/fep/pulls/564The registration process is completely different now. Keys for signing S2S requests are generated on the server and only public parts are shared with the client.When FEP-ae97 client retrieves activities from the inbox, it signs GET requests with a key associated with actor's DID authority.For example, this actor:ap://did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK/actor"Will generate an HTTP signature with this keyId parameter:keyId="did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK#z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK"Implementations have been updated too (Nomadic AP Client and Mitra).#fep_ae97
(DIR) Post #AtOOwEvtLILFJHz8im by fentiger@zotum.net
2025-04-23T19:20:15Z
0 likes, 0 repeats
+1 for not sending private keys over the wire. I'm no expert, but I feel a lot more comfortable with this design.
(DIR) Post #AtOOwGKO9hWzdYSDXk by silverpill@mitra.social
2025-04-23T19:40:17.673177Z
0 likes, 0 repeats
@fentiger It always felt wrong, but now I discovered how it could be actually abused. If a remote server uses same origin policy when verifying signatures (as FEP-fe34 recommends), a nomadic client that shares a secret key with the gateway server could impersonate other actors on that gateway. For example, it could use proxyUrl endpoint to access private messages on a remote server.It seems that same-actor policy is often a safer choice than same-origin. That doesn't invalidate origin-based security model, but I probably need to make it more strict in certain cases.
(DIR) Post #AtPYj1gCV0rD8pwZ5U by cy@fedicy.us.to
2025-04-24T00:49:19Z
0 likes, 0 repeats
So there are two different signing keys, one for the server and one for the client? And ap://did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK/actor refers to the client's signing key, not the server's?
(DIR) Post #AtPYj2lCTuS0UdI4WG by silverpill@mitra.social
2025-04-24T09:04:40.094886Z
0 likes, 0 repeats
@cy Yes, the client generates IDs from its own key. That key is also used to sign activities.The server needs a different RSA key to create HTTP signatures when it makes requests to other servers. This is not absolutely necessary, because activities are already signed, but other servers may not know how to verify them.