1
0
mirror of https://codeberg.org/fediverse/fep.git synced 2026-08-05 19:55:46 +00:00

FEP-ae97: Main actor key (#618)

Reviewed-on: https://codeberg.org/fediverse/fep/pulls/618
Co-authored-by: silverpill <silverpill@firemail.cc>
Co-committed-by: silverpill <silverpill@firemail.cc>
This commit is contained in:
silverpill
2025-06-07 15:17:03 +02:00
committed by silverpill
parent 69311f171d
commit acefaea513
+3 -3
View File
@@ -23,7 +23,7 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S
## Registering an actor
Client creates portable actor objects according to [FEP-ef61] and stores them.
Client creates portable actor objects according to [FEP-ef61] and stores them. When a portable actor is created, the client MUST create a key for signing requests (the main actor key) and add a `Multikey` representation of it to the `assertionMethod` array as described in [FEP-521a]. The identifier of that key MUST NOT be a [compatible identifier][CompatibleIdentifiers].
Before registering a portable actor on the server, the client MUST add the server URL to the `gateways` array of the actor object.
@@ -62,14 +62,14 @@ The server MUST deliver activities to their indended audiences without altering
Client receives activities by polling the actor's inbox.
Requests to inbox endpoint MUST have an [HTTP signature][HttpSig] created using a key associated with actor's DID authority (the "authority" component of actor's ID).
Requests to inbox endpoint MUST have an [HTTP signature][HttpSig] created using the main actor key (the one generated by the client, not a server-generated key).
## Security considerations
If the server accepts portable objects with [compatible identifiers][CompatibleIdentifiers], it MUST ensure that all objects served by the gateway are valid and that registered actors are sufficiently isolated from each other. Specifically, the server MUST verify that actors and activities generated by the client do not violate the assumptions of the [origin-based security model][FEP-fe34]:
- Objects MUST NOT represent any actions that actors are not authorized to perform.
- Objects MUST NOT represent public keys or verification methods. Such objects can be identifed using the algorithm from [FEP-2277].
- Objects MUST NOT represent server-controlled public keys or verification methods. Such objects can be identifed using the algorithm from [FEP-2277].
Precautions need also be taken when objects with compatible IDs are delivered to inboxes or fetched from remote servers.