Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Federation part 1 #79

Closed
OR13 opened this issue Jul 8, 2023 · 6 comments
Closed

Federation part 1 #79

OR13 opened this issue Jul 8, 2023 · 6 comments
Assignees
Labels
multiple-instances Issues related to replicas of an instance, or promoting across different instances
Milestone

Comments

@OR13
Copy link
Collaborator

OR13 commented Jul 8, 2023

This issue tracks initial work to be completed regarding profiling of COSE to support federation for SCITT.

Some initial topics that still need to be addressed:

  • How do transparency services discovery each other?
  • How do they know if their policies are compatible?
  • How do they know if they support the same issuers?
  • How do they know if they support the same artifact types?
  • How is issuer privacy impacted by federation?
@SteveLasker SteveLasker added the multiple-instances Issues related to replicas of an instance, or promoting across different instances label Sep 6, 2023
@SteveLasker SteveLasker added this to the IETF 118 milestone Sep 6, 2023
@pdxjohnny
Copy link
Contributor

pdxjohnny commented Oct 18, 2023

What are folks thoughts on making entry IDs hashes of claims? This would make it easy to manage state because claims and receipts are content addressable. The side effect is one can no longer register the same claim twice under a different entry ID. I wasn't able to find if the SCITT arch doc explicitly defined expected behavior there.

Example of what this might look like within the SCITT API Emulator: scitt-community/scitt-api-emulator@9c54f9c

127.0.0.1 - - [17/Oct/2023 18:08:08] "POST /entries HTTP/1.1" 201 -
127.0.0.1 - - [17/Oct/2023 18:08:08] "GET /entries/sha384:76303a87c3ff728578d1e941ec4422193367e31fd37ab178257536cba79724d6411c457cd3c47654975dc924ff023666/receipt HTTP/1.1" 200 -

@aj-stein-nist
Copy link
Collaborator

In your original comment, you mentioned a default hash algorithm and implementation.

The side effect is one can no longer register the same claim twice under a different entry ID.

Does this goes for entries under different hash algorithms and implementations, are those count as "the same" one entry ID?

@pdxjohnny
Copy link
Contributor

At least as I was playing with it in that emulator pull request it the hash algorithm used you be part of the entry ID (similar to container image format reference by sha256 format). It the entry hash algorithm could also be part of the service parameters. If log A and log B had different entry id hash algorithms federation would involve an index or mapping so that federation mechanics don't end up re-inserting a claim which already exists Example: Log A federates Claim A1 to Log B. Log B inserts claim A1 as B1, federates event to Log A which inserts claims as A2. If entries were content addressable it would be fast to determine and A2 is in fact A1 and does not need to be re-inserted. If they aren't the same then a mapping transmitted with the federation event would include the known entry IDs within each log or something.

@pdxjohnny
Copy link
Contributor

pdxjohnny commented Nov 6, 2023

Related SCRAPI section: https://github.com/ietf-scitt/draft-birkholz-scitt-scrapi/blob/b0ee171a26d634a8f54eb46779dcd023ccdf2a63/draft-birkholz-scitt-scrapi.md#discovering-federation

Some options for Federation:

It could be interesting for SCITT services to declare federation protocols they support via exported service parameters. Different instances my have different threat models and require different levels of assurance around CIA properties of federation protocols.

federation:
- protocol: activitypub
  # Actor to follow to receive events for any statement (subject `*`)
  everything: allsubjects
  • How do transparency services discover each other?

    • Enable multiple options for discovery
    • For services an instance federates with they can choose if they want to be exported as options
      • See notes later on privacy and subsequent federations policy
  • How do they know if their policies are compatible?

    • At the IETF 118 hackathon we discussed labeled property graphs
  • How do they know if they support the same issuers?

    • Policy graph traversal / policy analysis
  • How do they know if they support the same artifact types?

    • Policy graph traversal / policy analysis
  • How is issuer privacy impacted by federation?

    • Depends on selected federation protocol
      • Additional policy in place around federation
        • Levels of assurance in execution of subsequent federations policy
          • TEE, etc.
    • Depends on deployment context

@aj-stein-nist
Copy link
Collaborator

Thanks for a thorough summary, @pdxjohnny. On the IETF side I am not sure exchanging was intended to mean federation, but in the pub/sub context ROLIE way be partially or wholly useful.

https://datatracker.ietf.org/doc/rfc8322/

@SteveLasker
Copy link
Collaborator

Suggestion is to remove the federation section

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
multiple-instances Issues related to replicas of an instance, or promoting across different instances
Projects
None yet
Development

No branches or pull requests

4 participants