Add governance hooks for identity assertion#267
Conversation
…ification reference to version 2.4
# Conflicts: # docs/modules/ROOT/partials/assertion-definition/schema.cddl
chalford
left a comment
There was a problem hiding this comment.
Looks like this is still early in development - will likely need more review as it develops.
While it's not explicitly called out here, I think we should avoid binding actor identity governance & trust with wider metadata governance. The two should interact, but I'd be keen not to make actor identity proofing to require any use of metadata governance controls.
As we go forward, there's a couple of requirements I'd like us to consider:
- Addressing actor identity for general consumers as a single problem, and not require that consumers understand the intricacies and meanings of the various trust lists at that level
- Potentially bringing logotype ownership governance into scope for a generic actor identity solution
- Finding a way to express the "value add" of individual governance programmes that can layer on top of base identity (e.g. the IPTC's Verified News Publisher check of whether an organisation is a news one)
|
|
||
| **TO DO:** Review definition. See also _<<_referenced_registry,referenced registry>>._ | ||
|
|
||
| A registry that serves as an authoritative source for trust graphs or other governed information describing one or more trust communities. A trust registry is typically authorized by a governance framework. |
There was a problem hiding this comment.
There's a few terms in here that I think need expanding on, as I'm assuming this will be referenced by the normative spec.
|
|
||
| * `signer_payload` contains the set of data to be signed by this _<<_credential_holder,credential holder>>_ | ||
| * `signature` contains the raw byte stream of the _<<_credential_holder,credential holder>>’s_ signature | ||
| * `trust_registry_uri` -> *TO DO:* Define |
There was a problem hiding this comment.
Is this intended to be backed by a protocol? If so, I think it'll need a section on it's own to explain how it maps into CAWG, and what conclusions and meanings those protocols bring to actors, and potentially, other CAWG assertions in the case of governance.
| identity = { | ||
| "signer_payload": $signer-payload-map, ; content to be signed by credential holder | ||
| "signature": bstr, ; byte string of the signature | ||
| ? "trust_registry_uri": https-uri, ; TO DO: define |
There was a problem hiding this comment.
| ? "trust_registry_uri": https-uri, ; TO DO: define | |
| ? "trust_registry": trust-registry-map, ; TRQP authorization payload |
Aligns the CDDL with overview.adoc (§5.1) and the cbor-schema example, which both treat trust_registry as a structure, not a uri. The map still needs a definition. Sketching it here for discussion rather than committing it, since the TRQP fields are still marked TO-DO:
trust-registry-map = {
"trqp_authorization_uri": https-uri,
"entity_id": tstr,
"authority_id": tstr,
"action": tstr,
"resource": tstr,
}
| ], | ||
| "role": ["cawg.creator"], | ||
| }, | ||
| "trust_registry": { |
There was a problem hiding this comment.
trust_registry and referenced_registry_uri sit outside signer_payload so they're covered by claim generator's seal but not credential holder's signature. The named actor doesn't sign their own governance or registry claim; the tool does. Is that intentional? If so, what binds these fields and the trust implication?
Consider moving trust_registry into signer-payload-map.
| These statements come in the form of a _<<_c2pa_assertion,C2PA assertion>>._ | ||
|
|
||
| This specification describes a specific _<<C2PA assertion>>_ that can be added to a _<<C2PA Manifest>>_ to allow an _<<_actor,actor>>_ to prove control over an digital identity and to bind that identity to a _<<_c2pa_asset,C2PA asset>>_ (and, at their option, one or more _<<_c2pa_assertion,C2PA assertions>>_) produced by them or on their behalf. | ||
| This specification describes a specific _<<C2PA assertion>>_ that can be added to a _<<C2PA Manifest>>_ to allow an _<<_actor,actor>>_ backed by a governing authority that manages its own trust registry to prove control over a digital identity and to bind that identity to a _<<_c2pa_asset,C2PA asset>>_ (and, at their option, one or more _<<_c2pa_assertion,C2PA assertions>>_) produced by them or on their behalf. |
There was a problem hiding this comment.
| This specification describes a specific _<<C2PA assertion>>_ that can be added to a _<<C2PA Manifest>>_ to allow an _<<_actor,actor>>_ backed by a governing authority that manages its own trust registry to prove control over a digital identity and to bind that identity to a _<<_c2pa_asset,C2PA asset>>_ (and, at their option, one or more _<<_c2pa_assertion,C2PA assertions>>_) produced by them or on their behalf. | |
| This specification describes a specific _<<C2PA assertion>>_ that can be added to a _<<C2PA Manifest>>_ to allow an _<<_actor,actor>>_ optionally backed by a governing authority that manages its own trust registry to prove control over a digital identity and to bind that identity to a _<<_c2pa_asset,C2PA asset>>_ (and, at their option, one or more _<<_c2pa_assertion,C2PA assertions>>_) produced by them or on their behalf. |
trust_registry is optional but this scopes the spec to an actor backed by a governing authority that manages its own trust registry. That reads as presuming governance for every actor and excluding the ungoverned base (1.2) case. Suggest framing governance as an optional layer.
| This specification describes a specific _<<C2PA assertion>>_ that can be added to a _<<C2PA Manifest>>_ to allow an _<<_actor,actor>>_ backed by a governing authority that manages its own trust registry to prove control over a digital identity and to bind that identity to a _<<_c2pa_asset,C2PA asset>>_ (and, at their option, one or more _<<_c2pa_assertion,C2PA assertions>>_) produced by them or on their behalf. | ||
| It further allows a _<<_named_actor,named actor>>_ to demonstrate membership in or affiliation with an ecosystem which creates and manages its own _<<_governance_framework,governance framework>>._ | ||
|
|
||
| The *<<_identity_assertion,identity assertion>>* can be complemented through the use of a _<<_referenced_registry,referenced registry>>_ which allows for a link to additional assertions can be made by the content creator outside of the _<<_c2pa_asset,C2PA asset>>_ or a _<<_referenced_registry,referenced registry>>_ which contains metadata elements to be verified from the metadata claims made on the _<<_c2pa_asset,C2PA asset>>_. |
There was a problem hiding this comment.
This sentence is hard to parse and conflates two functions. 'allows for a link to additional assertions can be made' is grammatically broken, and the two distinct uses, linking external assertions versus verifying metadata, are run together. Suggest splitting into two sentences, one per function.
dcondrey
left a comment
There was a problem hiding this comment.
Reinforcing @chalford's point about keeping actor-identity governance separate from wider metadata governance. The use-case doc for this PR currently has all three cases conveying entitlement through the identity assertion (insurance policy, consent, royalty), which runs into §1.3's caveat that the assertion SHOULD NOT convey attribution or ownership. Suggest the governance hooks stay scoped to signer-binding plus issuer authorization, with rights, consent, and metadata living in referenced assertions.
|
|
||
| This specification describes a specific _<<C2PA assertion>>_ that can be added to a _<<C2PA Manifest>>_ to allow an _<<_actor,actor>>_ to prove control over an digital identity and to bind that identity to a _<<_c2pa_asset,C2PA asset>>_ (and, at their option, one or more _<<_c2pa_assertion,C2PA assertions>>_) produced by them or on their behalf. | ||
| This specification describes a specific _<<C2PA assertion>>_ that can be added to a _<<C2PA Manifest>>_ to allow an _<<_actor,actor>>_ backed by a governing authority that manages its own trust registry to prove control over a digital identity and to bind that identity to a _<<_c2pa_asset,C2PA asset>>_ (and, at their option, one or more _<<_c2pa_assertion,C2PA assertions>>_) produced by them or on their behalf. | ||
| It further allows a _<<_named_actor,named actor>>_ to demonstrate membership in or affiliation with an ecosystem which creates and manages its own _<<_governance_framework,governance framework>>._ |
There was a problem hiding this comment.
An actors use of a credential issued by an issuer on a trust registry might demonstrate affiliation with the governance framework of those issuers, or it might not. If we assume something like the Mozilla Root Program will be allowed in this framework, there's a much weaker link between the actor and the Root Program governance.
| These statements come in the form of a _<<_c2pa_assertion,C2PA assertion>>._ | ||
|
|
||
| This specification describes a specific _<<C2PA assertion>>_ that can be added to a _<<C2PA Manifest>>_ to allow an _<<_actor,actor>>_ to prove control over an digital identity and to bind that identity to a _<<_c2pa_asset,C2PA asset>>_ (and, at their option, one or more _<<_c2pa_assertion,C2PA assertions>>_) produced by them or on their behalf. | ||
| This specification describes a specific _<<C2PA assertion>>_ that can be added to a _<<C2PA Manifest>>_ to allow an _<<_actor,actor>>_ backed by a governing authority that manages its own trust registry to prove control over a digital identity and to bind that identity to a _<<_c2pa_asset,C2PA asset>>_ (and, at their option, one or more _<<_c2pa_assertion,C2PA assertions>>_) produced by them or on their behalf. |
There was a problem hiding this comment.
| This specification describes a specific _<<C2PA assertion>>_ that can be added to a _<<C2PA Manifest>>_ to allow an _<<_actor,actor>>_ backed by a governing authority that manages its own trust registry to prove control over a digital identity and to bind that identity to a _<<_c2pa_asset,C2PA asset>>_ (and, at their option, one or more _<<_c2pa_assertion,C2PA assertions>>_) produced by them or on their behalf. | |
| This specification describes a specific _<<C2PA assertion>>_ that can be added to a _<<C2PA Manifest>>_ to allow an _<<_actor,actor>>_ to prove control over a digital identity and to bind that identity to a _<<_c2pa_asset,C2PA asset>>_ (and, at their option, one or more _<<_c2pa_assertion,C2PA assertions>>_) produced by them or on their behalf. These actors can be backed by an authority governs the actor or how the actor's credential is issued. |
There was a problem hiding this comment.
One actor may be be backed by multiple governing authorities, and may have multiple digital identities they could use (each one backed by a different governing authority); perhaps we should be add some language on how the digital identity itself is recognized by a the governing authority.
Clarified the description of C2PA assertions and their relation to digital identity and governance frameworks.
No description provided.