mirror of
https://codeberg.org/fediverse/fep.git
synced 2026-08-08 13:35:51 +00:00
Deploying from 90444d8d5e [SKIP CI]
This commit is contained in:
+9
-9
@@ -1307,15 +1307,6 @@
|
||||
<td>2026-01-13</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../fep/8c13/">FEP-8c13: Context-Authority Routing with Object Integrity Proofs for Restricted Threads</a></td>
|
||||
<td><a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/8c13/fep-8c13.md"><img src='../assets/codeberg.png' width=20 height=20 alt='codeberg'></a></td>
|
||||
<td>Informational</td>
|
||||
<td></td>
|
||||
<td>-</td>
|
||||
<td><a href="https://socialhub.activitypub.rocks/t/fep-8c13-context-authority-routing-with-object-integrity-proofs-for-restricted-threads/8446">Discussions</a></td>
|
||||
<td>2026-01-16</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../fep/34c1/">FEP-34c1: Collection Filtering using TREE Hypermedia Vocabulary</a></td>
|
||||
<td><a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/34c1/fep-34c1.md"><img src='../assets/codeberg.png' width=20 height=20 alt='codeberg'></a></td>
|
||||
<td>Informational</td>
|
||||
@@ -1495,6 +1486,15 @@
|
||||
<td><a href="https://github.com/mastodon/featured_collections/pull/1">Discussions</a></td>
|
||||
<td>2026-06-12</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="../fep/8c13/">FEP-8c13: Context-Authority Routing with Object Integrity Proofs for Restricted Threads</a></td>
|
||||
<td><a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/8c13/fep-8c13.md"><img src='../assets/codeberg.png' width=20 height=20 alt='codeberg'></a></td>
|
||||
<td>Informational</td>
|
||||
<td></td>
|
||||
<td><a href="https://codeberg.org/fediverse/fep/issues/870">#870</a></td>
|
||||
<td><a href="https://socialhub.activitypub.rocks/t/fep-8c13-context-authority-routing-with-object-integrity-proofs-for-restricted-threads/8446">Discussions</a></td>
|
||||
<td>2026-06-27</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Feature: FEP-8b32: Object Integrity Proofs
|
||||
|
||||
@fep-8b32
|
||||
Scenario: Signing document
|
||||
Scenario: Signing a document
|
||||
Given document
|
||||
"""
|
||||
{
|
||||
@@ -27,8 +27,17 @@ Feature: FEP-8b32: Object Integrity Proofs
|
||||
"""
|
||||
And Ed25519 secret key "z3u2en7t5LR2WtQH5PfFqMqwVHBeXouLzo6haApm8XHqvjxq"
|
||||
And current time "2023-02-24T23:36:38Z"
|
||||
When Signing the document for key "https://server.example/users/alice#ed25519-key"
|
||||
Then The signed document is
|
||||
When signing the document for key "https://server.example/users/alice#ed25519-key"
|
||||
Then the canonicalized document is
|
||||
"""
|
||||
{"@context":["https://www.w3.org/ns/activitystreams","https://w3id.org/security/data-integrity/v2"],"actor":"https://server.example/users/alice","id":"https://server.example/activities/1","object":{"attributedTo":"https://server.example/users/alice","content":"Hello world","id":"https://server.example/objects/1","location":{"latitude":25.273962,"longitude":-71.184902,"type":"Place"},"type":"Note"},"type":"Create"}
|
||||
"""
|
||||
Then the canonicalized proof configuration is
|
||||
"""
|
||||
{"@context":["https://www.w3.org/ns/activitystreams","https://w3id.org/security/data-integrity/v2"],"created":"2023-02-24T23:36:38Z","cryptosuite":"eddsa-jcs-2022","proofPurpose":"assertionMethod","type":"DataIntegrityProof","verificationMethod":"https://server.example/users/alice#ed25519-key"}
|
||||
"""
|
||||
Then the combined hash is "cf63e2308ce7d1137667192c5c5e751ba7b1c6e3d5e746a7b717d309654ad1980793e8d97e2de4b989b2b2d7a5fae8cf941f102a03c0ecab00f03eaa2330c650"
|
||||
Then the signed document is
|
||||
"""
|
||||
{
|
||||
"@context": [
|
||||
@@ -66,7 +75,7 @@ Feature: FEP-8b32: Object Integrity Proofs
|
||||
|
||||
@fep-8b32
|
||||
Scenario: Verifying a signature
|
||||
Given The signed document is
|
||||
Given the signed document is
|
||||
"""
|
||||
{
|
||||
"@context": [
|
||||
@@ -101,7 +110,7 @@ Feature: FEP-8b32: Object Integrity Proofs
|
||||
}
|
||||
}
|
||||
"""
|
||||
And The actor
|
||||
And the actor
|
||||
"""
|
||||
{
|
||||
"@context": [
|
||||
|
||||
+3
-2
@@ -756,7 +756,8 @@
|
||||
<p>Objects identified using <a href="https://en.wikipedia.org/wiki/URI_fragment">fragment identifiers</a> SHOULD NOT contain integrity proofs.</p>
|
||||
<p>Objects SHOULD NOT contain more than one integrity proof.</p>
|
||||
<h3 id="proof-verification">Proof verification<a class="headerlink" href="#proof-verification" title="Permanent link">¶</a></h3>
|
||||
<p>Recipients of an object SHOULD perform proof verification if it contains integrity proofs. Verification process MUST follow the <em>Data Integrity</em> specification, section <a href="https://www.w3.org/TR/vc-data-integrity/#verify-proof">4.4 Verify Proof</a>. It starts with the removal of the <code>proof</code> value from the JSON object. Then verification method is retrieved from the controlled identifier document as described in <em>Controlled Identifiers</em> specification, section <a href="https://www.w3.org/TR/cid/#retrieve-verification-method">3.3 Retrieve Verification Method</a>. Then the object is canonicalized, hashed and signature verification is performed according to the parameters specified in the proof.</p>
|
||||
<p>Recipients of an object SHOULD perform proof verification if it contains integrity proofs.</p>
|
||||
<p>Verification process MUST follow the <em>Data Integrity</em> specification, section <a href="https://www.w3.org/TR/vc-data-integrity/#verify-proof">4.4 Verify Proof</a>. It starts with the removal of the <code>proof</code> value from the JSON object. Then verification method is retrieved from the controlled identifier document as described in <em>Controlled Identifiers</em> specification, section <a href="https://www.w3.org/TR/cid/#retrieve-verification-method">3.3 Retrieve Verification Method</a>. Then the object is canonicalized, hashed and signature verification is performed according to the parameters specified in the proof.</p>
|
||||
<p>The subject of the controlled identifier document where the verification method is expressed MUST be the <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/fe34/fep-fe34.md#ownership">owner</a> of the signed object, or a <a href="https://www.w3.org/TR/did-core/">DID</a> that is provably associated with that actor (e.g. using a mechanism described in <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/c390/fep-c390.md">FEP-c390</a> or <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/ef61/fep-ef61.md">FEP-ef61</a>).</p>
|
||||
<p>If a verifier encounters an integrity proof that uses a verification method or cryptosuite that it doesn't support, it SHOULD ignore the proof and try other authentication methods.</p>
|
||||
<p>If both HTTP signature and integrity proof are used, the integrity proof MUST be given precedence over HTTP signature. The HTTP signature MAY be dismissed.</p>
|
||||
@@ -770,7 +771,7 @@
|
||||
</ul>
|
||||
<h3 id="backward-compatibility">Backward compatibility<a class="headerlink" href="#backward-compatibility" title="Permanent link">¶</a></h3>
|
||||
<p>Integrity proofs and linked data signatures can be used together, as they rely on different properties (<code>proof</code> and <code>signature</code>, respectively).</p>
|
||||
<p>If compatiblity with legacy systems is desired, the integrity proof MUST be created and inserted before the generation of the linked data signature.</p>
|
||||
<p>If compatibility with legacy systems is desired, the integrity proof MUST be created and inserted before the generation of the linked data signature.</p>
|
||||
<p>If both <code>proof</code> and <code>signature</code> are present in a received object, the linked data signature MUST be removed before the verification of the integrity proof.</p>
|
||||
<h3 id="security-considerations">Security considerations<a class="headerlink" href="#security-considerations" title="Permanent link">¶</a></h3>
|
||||
<p>Implementers using integrity proofs as an authentication mechanism are advised to follow the recommendations given in <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/fe34/fep-fe34.md">FEP-fe34: Origin-based security model</a>.</p>
|
||||
|
||||
+3
-1
@@ -1303,6 +1303,7 @@
|
||||
<th>Authors</th>
|
||||
<th>Status</th>
|
||||
<th>Date received</th>
|
||||
<th>Tracking issue</th>
|
||||
<th>Discussions</th>
|
||||
<th>Repository</th>
|
||||
</tr>
|
||||
@@ -1311,7 +1312,8 @@
|
||||
<tr>
|
||||
<td>Dmitry Skavish <a href="mailto:skavish@gmail.com">skavish@gmail.com</a></td>
|
||||
<td><code>DRAFT</code></td>
|
||||
<td>2026-01-16</td>
|
||||
<td>2026-06-27</td>
|
||||
<td><a href="https://codeberg.org/fediverse/fep/issues/870">#870</a></td>
|
||||
<td><a href="https://socialhub.activitypub.rocks/t/fep-8c13-context-authority-routing-with-object-integrity-proofs-for-restricted-threads/8446">Discussions</a></td>
|
||||
<td><a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/8c13/fep-8c13.md">codeberg</a></td>
|
||||
</tr>
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user