Skip to content
0
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

fedi wiki

  1. Home
  2. Fediverse Enhancement Proposals
  3. silverpill:

silverpill:

Scheduled Pinned Locked Moved Fediverse Enhancement Proposals
125 Posts 14 Posters 0 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • silverpill@socialhub.activitypub.rocksS silverpill@socialhub.activitypub.rocks
    Claire:

    Reading back the discussion, I don’t see any good solution for embedded proofs using JCS… this is a bit disheartening, as I was looking forward to using embedded signed objects for approval stamps.

    Do you think embedded signed objects will cause problems in real-world situations?

    @hongminhee implemented FEP-8b32 in Hollo, which is one of the ActivityPub servers that actually does JSON-LD processing, and didn't encounter any issues (as far as I know).

    ? Offline
    ? Offline
    Guest
    wrote last edited by
    #121
    silverpill:

    Do you think embedded signed objects will cause problems in real-world situations?

    Well, unless it has to do Linked Data Signatures validation, Mastodon is currently optimistic about the shorthands matching its own context, but that is not correct behavior and this is already an issue with Bookwyrm which use the same quote shorthand for a different property than Mastodon, causing compatibility issues. This is something systematic JSON-LD processing would fix, but it would render embedded signatures useless, as the underlying JSON would be changed by JSON-LD processing (either compaction or expansion). In themselves, JCS embedded signed objects would not break anything, but they would be basically unverifiable and just be a waste in the payload.

    silverpill:

    @hongminhee implemented FEP-8b32 in Hollo, which is one of the ActivityPub servers that actually does JSON-LD processing, and didn’t encounter any issues (as far as I know).

    My understanding is that Fedify currently only supports verifying top-level FEP-8b32 signatures, by verifying them before JSON-LD processing, and does not support embedded signed objects yet.

    trwnh@socialhub.activitypub.rocksT 1 Reply Last reply
    0
    • ? Guest
      silverpill:

      Do you think embedded signed objects will cause problems in real-world situations?

      Well, unless it has to do Linked Data Signatures validation, Mastodon is currently optimistic about the shorthands matching its own context, but that is not correct behavior and this is already an issue with Bookwyrm which use the same quote shorthand for a different property than Mastodon, causing compatibility issues. This is something systematic JSON-LD processing would fix, but it would render embedded signatures useless, as the underlying JSON would be changed by JSON-LD processing (either compaction or expansion). In themselves, JCS embedded signed objects would not break anything, but they would be basically unverifiable and just be a waste in the payload.

      silverpill:

      @hongminhee implemented FEP-8b32 in Hollo, which is one of the ActivityPub servers that actually does JSON-LD processing, and didn’t encounter any issues (as far as I know).

      My understanding is that Fedify currently only supports verifying top-level FEP-8b32 signatures, by verifying them before JSON-LD processing, and does not support embedded signed objects yet.

      trwnh@socialhub.activitypub.rocksT This user is from outside of this forum
      trwnh@socialhub.activitypub.rocksT This user is from outside of this forum
      trwnh@socialhub.activitypub.rocks
      wrote last edited by
      #122
      Claire:

      JCS embedded signed objects would not break anything, but they would be basically unverifiable and just be a waste in the payload.

      I think they can be verified deepest-first, which does require walking the entire JSON document and verifying proofs in reverse depth order.

      The question is if outer proofs include the inner proofs, or if the proofs are simply "included" (@included) alongside the data. Generally it makes more sense to do the former, although nested proofs has the same complexities as nested contexts -- it's way easier to do this with a document boundary rather than compound documents, because then you don't have to deal with any cascades.

      I think RDFC has the same issues because it's not immediately apparent if the signature input includes the entire graph or if it includes a subgraph. You have to understand if a property is semantically defined as @container: @graph or not. The RDFC proof is scoped to the immediate parent graph. (In Activity Streams 2.0's normative context, none of the properties are currently defined as graph containers, so proofs typically apply to the entire AS2 document.)

      With JCS proofs, the scoping issue is in the reverse direction; it's about whether the proof applies only to the current JSON node or to subnodes as well. In other words, using compound documents is unexpected and discouraged.

      For more on proof graphs, see https://www.w3.org/TR/vc-data-integrity/#proof-graphs

      I think the intended solution might be the previousProof property: https://www.w3.org/TR/vc-data-integrity/#previous-proofs

      ? 1 Reply Last reply
      0
      • silverpill@socialhub.activitypub.rocksS silverpill@socialhub.activitypub.rocks

        Hello!

        This is a discussion thread for the proposed FEP-8b32: Object Integrity Proofs.Please use this thread to discuss the proposed FEP and any potential problemsor improvements that can be addressed.

        Summary

        This proposal describes how ActivityPub servers and clients could create self-authenticating activities and objects.

        HTTP signatures are often used for authentication during server-to-server interactions. However, this ties authentication to activity delivery, and limits the flexibility of the protocol.

        Integrity proofs are sets of attributes that represent digital signatures and parameters required to verify them. These proofs can be added to any activity or object, allowing recipients to verify the identity of the actor and integrity of the data. That decouples authentication from the transport, and enables various protocol improvements such as activity relaying, embedded objects and client-side signing.

        trwnh@socialhub.activitypub.rocksT This user is from outside of this forum
        trwnh@socialhub.activitypub.rocksT This user is from outside of this forum
        trwnh@socialhub.activitypub.rocks
        wrote last edited by
        #123

        also tangentially i noticed this part of the FEP:

        The proof type SHOULD be DataIntegrityProof, as specified in section 3.1 DataIntegrityProof

        @silverpill actually the type MUST be DataIntegrityProof per current spec (TR from May 2025). relatedly, the data-integrity/v2 @context definition scopes all properties to this type, so none of the proof properties mean anything unless this type is present

        per https://w3id.org/security/data-integrity/v2

        { "@context": { "DataIntegrityProof": { "@id": "https://w3id.org/security#DataIntegrityProof", "@context": {...} } }}

        this allows using more generic terms like "created", "expires", "challenge", "domain", and "nonce" in other parts of the document without conflicts.

        silverpill@mitra.socialS 1 Reply Last reply
        0
        • trwnh@socialhub.activitypub.rocksT trwnh@socialhub.activitypub.rocks
          Claire:

          JCS embedded signed objects would not break anything, but they would be basically unverifiable and just be a waste in the payload.

          I think they can be verified deepest-first, which does require walking the entire JSON document and verifying proofs in reverse depth order.

          The question is if outer proofs include the inner proofs, or if the proofs are simply "included" (@included) alongside the data. Generally it makes more sense to do the former, although nested proofs has the same complexities as nested contexts -- it's way easier to do this with a document boundary rather than compound documents, because then you don't have to deal with any cascades.

          I think RDFC has the same issues because it's not immediately apparent if the signature input includes the entire graph or if it includes a subgraph. You have to understand if a property is semantically defined as @container: @graph or not. The RDFC proof is scoped to the immediate parent graph. (In Activity Streams 2.0's normative context, none of the properties are currently defined as graph containers, so proofs typically apply to the entire AS2 document.)

          With JCS proofs, the scoping issue is in the reverse direction; it's about whether the proof applies only to the current JSON node or to subnodes as well. In other words, using compound documents is unexpected and discouraged.

          For more on proof graphs, see https://www.w3.org/TR/vc-data-integrity/#proof-graphs

          I think the intended solution might be the previousProof property: https://www.w3.org/TR/vc-data-integrity/#previous-proofs

          ? Offline
          ? Offline
          Guest
          wrote last edited by
          #124
          trwnh:

          I think the intended solution might be the previousProof property: https://www.w3.org/TR/vc-data-integrity/#previous-proofs

          I don't think so? This is about having multiple proofs for the same document, but having one of the proofs only be valid if another one is valid too. What we are currently talking about is having a proof on a sub-graph and possibly no second proof. I see nothing in the Verifiable Credential Data Integrity spec addressing sub-graphs, only full documents (excluding proof graphs, but what we want to omit from the inner proof is not a proof graph). But that seems to imply RDFC would have the same issue indeed.

          1 Reply Last reply
          0
          • trwnh@socialhub.activitypub.rocksT trwnh@socialhub.activitypub.rocks

            also tangentially i noticed this part of the FEP:

            The proof type SHOULD be DataIntegrityProof, as specified in section 3.1 DataIntegrityProof

            @silverpill actually the type MUST be DataIntegrityProof per current spec (TR from May 2025). relatedly, the data-integrity/v2 @context definition scopes all properties to this type, so none of the proof properties mean anything unless this type is present

            per https://w3id.org/security/data-integrity/v2

            { "@context": { "DataIntegrityProof": { "@id": "https://w3id.org/security#DataIntegrityProof", "@context": {...} } }}

            this allows using more generic terms like "created", "expires", "challenge", "domain", and "nonce" in other parts of the document without conflicts.

            silverpill@mitra.socialS This user is from outside of this forum
            silverpill@mitra.socialS This user is from outside of this forum
            silverpill@mitra.social
            wrote last edited by
            #125

            I agree, it should be changed to MUST. I used other types for custom cryptosuites while the Data Integrity spec was still a draft, but today any custom cryptosuite can be specified using the cryptosuite property.

            1 Reply Last reply
            0

            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

            With your input, this post could be even better 💗

            Register Login
            Reply
            • Reply as topic
            Log in to reply
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes


            • Login

            • Don't have an account? Register

            • Login or register to search.
            Powered by NodeBB Contributors
            • First post
              Last post