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

FEP-521a: Update proposal (#189)

Reviewed-on: https://codeberg.org/fediverse/fep/pulls/189
This commit is contained in:
silverpill
2023-10-17 17:40:00 +00:00
+11 -8
View File
@@ -13,9 +13,9 @@ This proposal describes how to represent public keys associated with [ActivityPu
## Rationale
Historically, Fediverse services used [publicKey](https://w3c.github.io/vc-data-integrity/vocab/security/vocabulary.html#publicKey) property to represent actor's public key. Implementations usually allow only one key per actor, therefore a new approach is needed to support use cases where additional keys are required.
Historically, Fediverse services used [publicKey](https://w3c-ccg.github.io/security-vocab/#publicKey) property to represent actor's public key. Implementations usually allow only one key per actor, therefore a new approach is needed to support use cases where additional keys are required.
Furthermore, `publicKey` property is marked as deprecated in the latest version of [Security Vocabulary](https://w3c.github.io/vc-data-integrity/vocab/security/vocabulary.html).
Furthermore, `publicKey` property was removed from the latest version of [Security Vocabulary](https://w3c.github.io/vc-data-integrity/vocab/security/vocabulary.html).
## Requirements
@@ -23,9 +23,12 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S
## Multikey
Actor's key MUST be represented as an object with `Multikey` type and properties `id`, `controller` and `publicKeyMultibase`, as defined in section **2.1.1 Multikey** of [EdDSA Cryptosuite v2022](https://w3c.github.io/vc-di-eddsa/#multikey) specification.
Actor's public key MUST be represented as an object with `Multikey` type, as defined in section **2.3.1.2 Multikey** of [Data Integrity](https://www.w3.org/TR/vc-data-integrity/#multikey) specification. This object MUST have the following properties:
The value of `controller` property MUST match actor ID.
- `id`: the unique global identifier of the public key.
- `type`: the value of this property MUST contain the string `Multikey`.
- `controller`: the value of this property MUST match actor ID.
- `publicKeyMultibase`: a [Multibase](https://www.w3.org/TR/vc-data-integrity/#multibase-0) encoded value of the key. Implementations MUST use `base-58-btc` alphabet.
### Key types
@@ -33,9 +36,9 @@ Implementers can use cryptographic keys of any type for which [Multicodec](https
### Key purposes
If the key is intended to be used for signing ActivityPub objects, it MUST be added to the `assertionMethod` property of actor object.
If the key is intended to be used for signing ActivityPub objects, it MUST be added to the [`assertionMethod`](https://www.w3.org/TR/vc-data-integrity/#assertion) array of the actor object.
If the key is intended to be used for authentication, it MUST be added to the `authentication` property of actor object.
If the key is intended to be used for authentication, it MUST be added to the [`authentication`](https://www.w3.org/TR/vc-data-integrity/#authentication) array of the actor object.
Other use cases are currently out of scope of this proposal.
@@ -45,7 +48,7 @@ Other use cases are currently out of scope of this proposal.
{
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/security/data-integrity/v1",
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/multikey/v1"
],
"type": "Person",
@@ -74,7 +77,7 @@ This proposal describes how to represent actor's public keys. The corresponding
- [ActivityPub] Christine Lemmer Webber, Jessica Tallon, [ActivityPub](https://www.w3.org/TR/activitypub/), 2018
- [Security Vocabulary] Ivan Herman, Manu Sporny, Dave Longley [Security Vocabulary](https://w3c.github.io/vc-data-integrity/vocab/security/vocabulary.html), 2023
- [RFC-2119] S. Bradner, [Key words for use in RFCs to Indicate Requirement Levels](https://tools.ietf.org/html/rfc2119.html), 1997
- [EdDSA Cryptosuite v2022] Dave Longley, Manu Sporny, [EdDSA Cryptosuite v2022](https://w3c.github.io/vc-di-eddsa/), 2023
- [Data Integrity] Dave Longley, Manu Sporny, [Verifiable Credential Data Integrity 1.0](https://www.w3.org/TR/vc-data-integrity/), 2023
- [Multicodec] Protocol Labs, [Multicodec](https://github.com/multiformats/multicodec/)
## Copyright