diff --git a/build/site/sitemap.xml b/build/site/sitemap.xml index 1966e65..0c6dad5 100644 --- a/build/site/sitemap.xml +++ b/build/site/sitemap.xml @@ -2,118 +2,130 @@ https://c2pa.org/specifications/specifications/2.0/index.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/2.0/specs/C2PA_Specification.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/2.0/ux/UX_Recommendations.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.4/ai-ml/ai_ml.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.4/attestations/attestation.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.4/decoupled/Decoupled.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.4/explainer/Explainer.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.4/guidance/Guidance.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.4/index.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.4/security/Harms_Modelling.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.4/security/Security_Considerations.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.4/specs/C2PA_Specification.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.4/ux/UX_Recommendations.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.3/ai-ml/ai_ml.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.3/explainer/Explainer.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.3/guidance/Guidance.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.3/index.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.3/specs/C2PA_Specification.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z + + +https://c2pa.org/specifications/specifications/1.2/explainer/Explainer.html +2024-07-11T21:16:25.470Z + + +https://c2pa.org/specifications/specifications/1.2/guidance/Guidance.html +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.2/index.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.2/specs/C2PA_Specification.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.1/index.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.1/specs/C2PA_Specification.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z + + +https://c2pa.org/specifications/specifications/1.1/ux/UX_Recommendations.html +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.0/explainer/Explainer.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.0/guidance/Guidance.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.0/index.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.0/security/Harms_Modelling.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.0/security/Security_Considerations.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.0/specs/C2PA_Specification.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z https://c2pa.org/specifications/specifications/1.0/ux/UX_Recommendations.html -2024-07-11T20:38:39.580Z +2024-07-11T21:16:25.470Z diff --git a/build/site/specifications/1.0/explainer/Explainer.html b/build/site/specifications/1.0/explainer/Explainer.html index a396bb0..d1c4669 100644 --- a/build/site/specifications/1.0/explainer/Explainer.html +++ b/build/site/specifications/1.0/explainer/Explainer.html @@ -173,7 +173,7 @@

C2PA Specifications

2.0 1.4 1.3 - 1.2 + 1.2 1.1 1.0 diff --git a/build/site/specifications/1.0/guidance/Guidance.html b/build/site/specifications/1.0/guidance/Guidance.html index d1f40da..81a0ba1 100644 --- a/build/site/specifications/1.0/guidance/Guidance.html +++ b/build/site/specifications/1.0/guidance/Guidance.html @@ -173,7 +173,7 @@

C2PA Specifications

2.0 1.4 1.3 - 1.2 + 1.2 1.1 1.0 diff --git a/build/site/specifications/1.0/ux/UX_Recommendations.html b/build/site/specifications/1.0/ux/UX_Recommendations.html index f4a7f80..36aec94 100644 --- a/build/site/specifications/1.0/ux/UX_Recommendations.html +++ b/build/site/specifications/1.0/ux/UX_Recommendations.html @@ -174,7 +174,7 @@

C2PA Specifications

1.4 1.3 1.2 - 1.1 + 1.1 1.0 diff --git a/build/site/specifications/1.1/specs/C2PA_Specification.html b/build/site/specifications/1.1/specs/C2PA_Specification.html index dcc27f7..e447564 100644 --- a/build/site/specifications/1.1/specs/C2PA_Specification.html +++ b/build/site/specifications/1.1/specs/C2PA_Specification.html @@ -4869,7 +4869,7 @@

16. Use

16.1. Approach

-

The C2PA intends to provide clear recommendations and guidance for implementers of provenance-enabled user experiences (UX). Developing these recommendations is an ongoing process that involves diverse stakeholders, with the results balancing uniformity and familiarity with utility and flexibility for users across contexts, platforms, and devices. These recommendations can be found in the User experience guidance document.

+

The C2PA intends to provide clear recommendations and guidance for implementers of provenance-enabled user experiences (UX). Developing these recommendations is an ongoing process that involves diverse stakeholders, with the results balancing uniformity and familiarity with utility and flexibility for users across contexts, platforms, and devices. These recommendations can be found in the User experience guidance document.

@@ -5066,7 +5066,7 @@

Guidance for implementers

  • -

    User experience guidance

    +

    User experience guidance

  • Security Considerations

    diff --git a/build/site/specifications/1.1/ux/UX_Recommendations.html b/build/site/specifications/1.1/ux/UX_Recommendations.html new file mode 100644 index 0000000..0fbb909 --- /dev/null +++ b/build/site/specifications/1.1/ux/UX_Recommendations.html @@ -0,0 +1,1505 @@ + + + + + + C2PA User Experience Guidance for Implementers :: C2PA Specifications + + + + + + + + +
    + +
    +
    + +
    + +
    + +
    +

    C2PA User Experience Guidance for Implementers

    + +
    +
    +
    +
    +
    +
    +Creative Commons License +
    +
    + +
    +
    + +
    +
    +
    +

    1. Introduction

    +
    +
    +

    The C2PA intends to provide clear guidance for implementers of provenance-enabled user experiences (UX). Developing these recommendations is an ongoing process that involves diverse stakeholders. The results will balance uniformity and familiarity with utility and flexibility for users across contexts, platforms, and devices. Our intent is to present a comprehensive range of conventions for the user experience and evolve them based on feedback. Please reference the Glossary in the C2PA Specifications for clarifications on terminology used within this document. For general guidance on other areas of the specification, please see Guidance for Implementors.

    +
    +
    +
    +
    +

    2. Principles

    +
    +
    +

    The UX recommendations aim to define best practices for presenting C2PA provenance to consumers. The recommendations strive to describe standard, readily recognizable experiences that:

    +
    +
    +
      +
    • +

      provide asset creators a means to capture information and history about the content they are creating, and

      +
    • +
    • +

      provide asset consumers information and history about the content they are experiencing, thereby empowering them to understand where it came from and decide how much to trust it.

      +
    • +
    +
    +
    +

    User interfaces designed for the consumption of C2PA provenance must be informed by the context of the asset. C2PA have studied four primary user groups and a collection of contexts in which C2PA assets are encountered. These user groups have been defined in the C2PA Guiding Principles as Consumers, Creators, Publishers and Verifiers (or Investigators). To serve the needs of each of these groups across common contexts, exemplary user interfaces are presented for many common cases. These are recommendations, not mandates, and we expect best practices to evolve.

    +
    +
    +

    2.1. Designing for trust

    +
    +

    A unique aspect of this approach is that rather than attempt to determine the veracity of an asset for a user, it enables users themselves to judge by presenting the most salient and/or comprehensive provenance information. As such it is critical that users develop trust in the system itself, over the individual data presented. Exposing the C2PA Trust Model and Trust Signals in a way that balances transparency and intuitiveness is the critical design goal addressed here. There is no design pattern that can guarantee to engender trustworthiness across multiple contexts, and while a degree of contextual customization is anticipated, C2PA recommends all implementations adhere to the following general principles.

    +
    +
    +
    +

    2.2. Quality

    +
    +

    Implementations should be created using industry standard, robust user interface technologies.

    +
    +
    +
    +

    2.3. Accessibility

    +
    +

    Implementations should adhere to accepted, current accessibility standards to ensure no users are excluded. For an example of such criteria, see the Web Content Accessibility Guidelines (WCAG).

    +
    +
    +
    +

    2.4. Consistency

    +
    +

    Wherever suitable, UX patterns should match those outlined here. In the case that this would break contextual paradigms of the platform, lean on precedent whether in the OS or app design. Users should not have to learn new paradigms or terminology in different contexts in order to access the information.

    +
    +
    +
    +

    2.5. Summary vs comprehensive

    +
    +

    In many cases, a subset of the available information will be the most useful to a user in a given context. A link to the full information should always be made available, however.

    +
    +
    +
    +

    2.6. Linked

    +
    +

    Some data will assert an individual or organizational identity. Wherever possible, a link to information about the identity should be made available to allow the user to make a judgement on those actors' trustworthiness.

    +
    +
    +
    +
    +
    +

    3. Levels of information disclosure

    +
    +
    +

    Because the complete set of C2PA data for a given asset can be overwhelming to a user, C2PA describes four levels of progressive disclosure which guide the designs:

    +
    +
    +
    +disclosure summary 2x +
    +
    Figure 1. Disclosure levels
    +
    +
    +
    +
    Level 1 (L1)
    +
    +

    An indication that C2PA data is present and its cryptographic validation status.

    +
    +
    Level 2 (L2)
    +
    +

    A summary of C2PA data available for a given asset. Should provide enough information for the particular content, user, and context to allow the consumer to understand to a sufficient degree how the asset came to its current state.

    +
    +
    Level 3 (L3)
    +
    +

    A detailed display of all relevant provenance data. Note that the relevance of certain items over others is contextual and determined by the UX implementer.

    +
    +
    Level 4 (L4)
    +
    +

    For sophisticated, forensic investigatory usage, a standalone tool capable of revealing all the granular detail of signatures and trust signals is recommended. +In addition to these standard levels, there will be common tools available for those interested in a full forensic view of the provenance data. This would reveal all available C2PA data across all manifests for an asset, including signature details.

    +
    +
    +
    +
    +
    +
    +

    4. L1 – indicator of C2PA data

    +
    +
    +
    +L1 display options 2x +
    +
    Figure 2. The L1 indicator
    +
    +
    +

    4.1. Appearance

    +
    +

    Following the consistency principle, it is important in developing trust that users can learn to easily recognize the presence of the system and that their expectations are met regardless of context. As such, the L1 indicator should be consistent in its appearance across all contexts and devices to the degree that it clearly represents the presence of C2PA data. L1 can be applied using only the icon, the title, or both. If using the icon alone, ensure its appearance meets accessibility criteria so that consumers can easily identify its presence on or near the C2PA-enabled content. We recommend using the placeholder “information seal” icon and working title “Content Credentials” for recognition and learned understanding of C2PA-enabled content. We may make updates to the icon and product name in upcoming versions of this document as we gather findings from on-going user research.

    +
    +
    +

    For content recommendations see the section on interface language.

    +
    +
    +
    +

    4.2. Placement and interaction

    +
    +

    For flexibility across implementations, there are several recommended placements for L1 indicators when C2PA-enabled content is present: on top of the content or somewhere close enough that its relationship to the content is clear. If L1 is positioned on top of the content, a hover state may be applied so as not to permanently obstruct the content below. Applications may differ depending on device, such as revealing L1 via long-press on mobile. Partially overlapping the L1 indicator over content is the most robust option to avoid potential misuse in the scenario that it has been purposefully added to content in a way meant to deceive. A new user experience guidance is recommended for initial implementation rollout to make clear how to identify L1 indicators.

    +
    +
    +

    Behaviour of L1 indicators should reveal L2 progressive disclosure, either via a hover or click interaction. Within L2 user interfaces, L1 can continue to be used to indicate the presence of C2PA-enabled ingredients.

    +
    +
    +
    +

    4.3. Validation states

    +
    +
    +L1 states 2x +
    +
    Figure 3. L1 validation states
    +
    +
    +

    In the event that the active manifest is invalid, a stateful indicator of data validation can be displayed. There are several scenarios when displaying a data validation state may be necessary. See Chapter 14, Validation in the C2PA Technical Specifications for further information.

    +
    +
    +
    +
    +
    +

    5. L2 – provenance summaries

    +
    +
    +

    5.1. Minimum viable provenance

    +
    +
    +discrete 1 2x +
    +
    Figure 4. Minimum viable provenance display
    +
    +
    +

    If L1 indicates the presence of C2PA data, L2 is where consumers can begin to view and interact with the data. The minimum L2 user experience is defined as the display of nothing more than the base required C2PA manifest data: the signing entity, the claim generator and date. The signer is a top trust signal that allows the consumers to make their judgement trusting that the information available has been 'backed' by a legitimate entity. C2PA anticipates that additional varying assertion data will be included by implementers, and recommends including the manifest thumbnail, signer logo, and a link to L3 where consumers can find more provenance data if available.

    +
    +
    +

    L2 styles, fonts, etc. can be customized to fit the given context. Iconography and terminology used to describe assertions should be consistent wherever possible. C2PA anticipates the need for L2 generally to be space-efficient as it appears within the implementer’s context. Therefore it is suggested the data displayed be streamlined to provide enough information for the particular content, user, and context, allowing the consumer to understand to a sufficient degree how the asset came to its current state.

    +
    +
    +

    For content recommendations see the section on interface language.

    +
    +
    +
    +

    5.2. Depth versus breadth

    +
    +

    L2 UI options are displayed along a spectrum from depth of information to breadth of provenance representation. In the figure below, the left side represents a single manifest summary and the right side represents the complete provenance summary depicting multiple manifests. However, the middle example shows a customized provenance summary wherein certain manifest assertions are highlighted. This flexibility allows implementers to show more depth for a given subset of manifests.

    +
    +
    +
    +L2 spectrum 2x +
    +
    Figure 5. Provenance summary depth versus breadth
    +
    +
    +

    In order to summarize the data in a context-specific manner, it is recommended that consideration is given to what balance of depth and breadth of data will be most relevant to users. For example, if a given piece of content has only one manifest, consider displaying more of its assertion data, as in Figure 6. A single manifest summary. If there are multiple manifests, then depicting the entire provenance summary may give users a more complete understanding of the content’s history, such as in Figure 8. Provenance summary, three manifests. However, in all likelihood there will be many cases that fall in between, like in Figure 12. Customized summary combinations. The following sections will further document UI options along this spectrum.

    +
    +
    +
    +

    5.3. Manifest summaries (depth)

    +
    +
    +L2 depth 2x +
    +
    Figure 6. A single manifest summary
    +
    +
    +

    A manifest summary only represents a single manifest. It could be the active manifest, as this is the most recent version tied to the C2PA-enabled content, or an ingredient manifest as determined by the implementer. The determination for displaying an ingredient manifest should be if there is substantive assertion data the implementer believes is more relevant to its audience than that of the active manifest. A shortcoming of displaying a single manifest summary is that it may not represent the complete history of the C2PA-enabled content, and may require consumers to navigate away from the implementer’s context to L3 to learn more.

    +
    +
    +
    +

    5.4. Provenance summaries (breadth)

    +
    +

    A provenance summary represents the collection of manifests related to the C2PA-enabled content. Manifests should be presented in the order that they are referenced via ingredient assertions, starting with the active manifest at the top and ending with the origin ingredients below. Origin ingredients represent the beginning of their respective history branches.

    +
    +
    +
    +summary 1 2x +
    +
    Figure 7. Provenance summary, two manifests
    +
    +
    +

    Summary displays should show at minimum the origin ingredients and active manifests, or if screen real estate allows, with at least one manifest in between.

    +
    +
    +
    +summary 2 2x +
    +
    Figure 8. Provenance summary, three manifests
    +
    +
    +

    In order to provide users with a succinct summary and to allow for limited screen real estate, the manifests in between origin and active can be collapsed and represented as a numerical count. C2PA recommends a baseline rule for collapsing manifests if the total number exceeds four. However, this threshold can be altered according to context. In keeping with the core recommendations, a link to the full set of data in L3 should always follow the summary list of manifests.

    +
    +
    +
    +summary 3 2x +
    +
    Figure 9. Provenance summary, four manifests
    +
    +
    +

    When multiple origins are present, either as multiple ingredients in a single manifest or across multiple manifests, they can be summarized in the origin section of the UI. The L1 indicator can be used as a badge on ingredient thumbnails to distinguish C2PA-enabled assets.

    +
    +
    +
    +summary 4 2x +
    +
    Figure 10. Provenance summary, two origins
    +
    +
    +

    L2 UI is flexible enough to allow for various combinations of manifest counts and origin assets.

    +
    +
    +
    +summary 5 2x +
    +
    Figure 11. Provenance summary, multiple origins and manifests
    +
    +
    +
    +

    5.5. Combinatory summaries

    +
    +

    Implementers should consider audience needs when weighing the balance of depth and breadth in combinatory summaries in order to concisely display the most complete and relevant representation of content provenance. For example, travel companies may opt to display location assertions from the origin manifest in a provenance summary so as to provide their users with key information. Similarly, a news publisher may choose to show action assertions from an ingredient manifest to disclose edits that occurred to published content.

    +
    +
    +
    +L2 middle 2x +
    +
    Figure 12. Customized summary combinations
    +
    +
    +
    +

    5.6. Validation states

    +
    +

    5.6.1. Incomplete states

    +
    +

    There will be instances when C2PA-enabled content is incomplete data. Most commonly, this will happen if the content is edited without capturing C2PA data. In this event, the L2 and L3 UI should reflect when data is incomplete, as well as the manifest data that came before or after. A dotted line can be drawn between manifests to suggest the connection is not the same as between valid, intact manifests. Incomplete data should not automatically signal that one should discount the content as untrustworthy. For this reason, C2PA discourages the use of an indicator designed to trigger alarm, which should be reserved for more apparent tamper-evident use cases, in favour of a more descriptive and neutral indicator.

    +
    +
    +
    +error 1 2x +
    +
    Figure 13. Incomplete data in the active manifest position
    +
    +
    +
    +error 4 2x +
    +
    Figure 14. Incomplete data in an ingredient position
    +
    +
    +

    Following the established pattern of collapsing additional manifests, incomplete data can be called out via the text string to bring awareness to the questionable validity of ingredients.

    +
    +
    +
    +error 2 2x +
    +
    Figure 15. Incomplete data collapsed
    +
    +
    +
    +

    5.6.2. Invalid states

    +
    +

    There may be instances when C2PA-enabled content has been maliciously edited to tamper with C2PA data, or is signed by an untrusted entity. In this case, no additional prior data can be displayed.

    +
    +
    +
    +error 5 2x +
    +
    Figure 16. Invalid data in the active manifest position
    +
    +
    +
    +error 3 2x +
    +
    Figure 17. Invalid data in an ingredient position
    +
    +
    +
    +
    +
    +
    +

    6. L3

    +
    +
    +

    6.1. Overview

    +
    +

    L3 should provide asset consumers as complete and comprehensive an overview of all relevant provenance data as is possible. It is here where consumers can parse through the entire provenance history and see assertion information across each manifest associated with that asset.

    +
    +
    +

    Implementers should weigh the display of assertion information based on the needs of their anticipated audiences. Overly technical assertions or custom assertions from third-party implementers can be left to L4 displays only. The following types of assertions can be considered appropriate for L3 to display:

    +
    +
    +
      +
    • +

      Identity information

      +
    • +
    • +

      Actions

      +
    • +
    • +

      Creative Work

      +
    • +
    • +

      Fields pertaining to copyright, descriptions, and usage rights

      +
    • +
    • +

      Exif information and related metadata

      +
    • +
    +
    +
    +
    +

    6.2. Navigation

    +
    +
    +L3 tree view +
    +
    Figure 18. L3 tree view
    +
    +
    +

    In the above image, we propose a tree structure that shows each manifest or non-C2PA enabled ingredient. Each item is selectable, and shows its manifest assertions to the right. Each asset’s entire provenance chain should be viewable, and each individual manifest or ingredient inspected.

    +
    +
    +
    +

    6.3. Comparing manifests

    +
    +
    +L3 compare +
    +
    Figure 19. Compare state
    +
    +
    +

    To understand changes between manifests over time, it may benefit users to have options to view two or more manifest ingredient thumbnails together for quick visual comparisons. This works well for static media like images, but will require different design solutions for temporal and non-visual media.

    +
    +
    +
    +

    6.4. Manifest recovery

    +
    +
    +L3 manifest recovery +
    +
    Figure 20. Manifest recovery
    +
    +
    +

    The L3 user experience should allow for any asset to be selected by the user locally or remotely, such as in the case where an asset is linked from an L2 display. Once selected, a manifest recovery search option can be available, which would allow users to select which "version" of the asset they want to see provenance information about. Read more about embedding remote manifests.

    +
    +
    +
    +

    6.5. Redactions and updates

    +
    +

    There are workflows where provenance data (assertions) need to be removed from previous manifests but the digital content (the media itself) is not changed. A potential scenario might be that an image capture manifest contains sensitive personal data (creator name, location) that needs to be removed before publishing an image as making that information public risks harm to the photographer. This would involve a redaction.

    +
    +
    +

    Redaction of data will always prompt a separate update manifest signed by the actor who performed the redaction. Update manifests signal that a change has been made, by who, to which manifest but that the media itself has not been altered. These should not be considered ‘edits’ of previous manifests and so it is recommended that UIs do not present them as such.

    +
    +
    +

    It is recommended that both the update manifest and the updated manifest (that where the redaction tool place) signify their state and reference one another. It is recommended that consistent patterns (language, iconography, interaction etc.) are used in the display of both manifests.

    +
    +
    +
    +redaction +
    +
    Figure 21. Redactions in L2
    +
    +
    +

    NB: For simplicity, both the update and the updated manifest are visible here within an L2 display. This will not always be the case however depending on how many steps there are in a provenance chain and the distance between the 2 manifests.

    +
    +
    +

    Note the lack of thumbnail image in the update manifest. Since update manifests do not involve changes to the digital content, they should not include any assertions that could suggest that i.e. actions, or a thumbnail.

    +
    +
    +
    +thumbnailexample +
    +
    Figure 22. No thumbnail in update manifest
    +
    +
    +

    It is up to individual implementations as to whether or not the details of the redaction are shown at L2, depending on use case. They must be displayed in L3 however where the additional context and a rationale for the additions can be given. For more on this see the actions section of the technical specification. Update manifests should contain onward journeys to L3 directing the user to the relevant manifest for closer review.

    +
    +
    +
    +l2tol3 +
    +
    Figure 23. Journey from L2 to L3
    +
    +
    +

    NB It is not recommended that updates/redactions are indicated at L1.

    +
    +
    +
    +
    +
    +

    7. Creator experience

    +
    +
    +

    7.1. Opting in, privacy and data collection

    +
    +

    In this section, the term creator means a party creating manifests. This could be the maker of an original work, an editor, or anyone else utilizing C2PA-enabled tools to add to the provenance chain.

    +
    +
    +

    As per the C2PA Guiding Principles, C2PA implementations should provide a mechanism for creators of a given content to assert, in a verifiable manner, any information they wish to disclose about the creation of that content and any actions taken since the asset’s creation. As such, the creator experience requires the following:

    +
    +
    +
      +
    • +

      A clear acknowledgement of creator consent before a C2PA implementation can begin accumulating data;

      +
    • +
    • +

      Disclosure or preview of the nature of information that is being recorded;

      +
    • +
    • +

      Creator control over recorded information, with particular sensitivity to the creator’s identity and process.

      +
    • +
    +
    +
    +

    C2PA recommends an opt-in flow that concisely represents these requirements and can be opted-out of just as easily at any time. Once opted-in, creators should be able to distinguish between non-removable information as defined by the C2PA specifications and information that can be adjusted according to the user’s preferences.

    +
    +
    +
    +

    7.2. Creator settings and manifest preview

    +
    +

    Creators should be able to control the information in their assertions as much as is allowed by C2PA specifications. The Harms Modelling document covers the reasoning behind why creator control is imperative. To provide coverage against harms and misuse, C2PA suggests the following types of assertions be manageable by the creator:

    +
    +
    +
      +
    • +

      Identity information

      +
    • +
    • +

      Actions

      +
    • +
    • +

      Creative Work

      +
    • +
    • +

      Fields pertaining to copyright, descriptions, and usage rights

      +
    • +
    • +

      Exif information and related metadata

      +
    • +
    +
    +
    +

    To be accommodating to the user’s preferences, C2PA recommends presenting a UI wherein these assertion categories can be toggled on or off on a per document basis. To assist the creator in understanding the tradeoffs they are making, C2PA also suggests displaying a manifest preview that concisely and accurately depicts what information will be added into the manifest.

    +
    +
    +
    +

    7.3. Identity

    +
    +

    The identity of the creator, or lack thereof, is an important assertion for the completion of a content’s provenance as it helps consumers understand who is responsible for what happened. It is important to restate that C2PA specifications do not require the identities of persons or organizations making any assertion about an asset to be documented. However, the challenge of validating identity when provided is beyond the scope of the C2PA specification at present. As such, C2PA recommends several tactics to help consumers understand the role of identity in C2PA provenance.

    +
    +
    +

    The first is to make clear when the creator’s identity is self-assigned. The second is to offer creators the ability to add social media or other verifiable accounts. These identity flows may lie outside of C2PA creator implementations, but when included, have the added benefit of providing a degree of proof for creators as well as links to their presence elsewhere on the internet.

    +
    +
    +

    When the creator decides to opt out of including their identity information, C2PA recommends promptly updating the manifest preview to reflect this change to give the creator immediate assurance their privacy is being protected.

    +
    +
    +
    +

    7.4. Actions

    +
    +

    Similar to the treatment of identity, some creators may want to reserve the right to not disclose the actions they’ve taken on a given piece of content. While some use cases, like photojournalism, should always show transparently what actions took place, this is less important for more creative and artistic applications. In some cases, creators may want to protect their particular creation process and should therefore be allowed to opt out of including actions in their manifests.

    +
    +
    +

    Granularity of actions is worth considering in creator implementations. In some cases, grouping actions into high level categories may be more understandable for consumers, versus presenting a list of detailed, creation-specific actions that may be unique to the implementation. C2PA recommends striking a balance between clarity and information overload based on the intended audience of the implementing platform.

    +
    +
    +
    +

    7.5. Ingredients and their validation state

    +
    +

    Ingredient assertions represent a form of non-removable information because they are the key to the establishment of the provenance of an asset and may themselves contain provenance. As such, ingredients are a requirement to be displayed in the manifest and its creator-side preview.

    +
    +
    +

    Validation of an ingredient’s manifest is equally important to convey to creators prior to producing a new manifest. Within the manifest preview UI, C2PA recommends displaying a list of ingredient thumbnails and their validation states to ensure the user working with those ingredients is aware of additional provenance data. This is particularly important for cases when ingredients are unable to validate or contain an invalid manifest. A clear example might be a news editor who receives a piece of user-generated content that purports to depict a controversial scene - alerting the editor to the validation state of that image will give them stronger assurances of whether that content is trustworthy.

    +
    +
    +
    +

    7.6. Manifest storage options

    +
    +

    It is important to provide clear guidance about the different manifest storage options available to creators. Creators want or need to know where their manifest data is being stored, either locally or remotely, when they export their content. The following options may be presented to creators regarding the location of their manifest data:

    +
    +
    +
      +
    • +

      An option indicating that the manifest will only be directly attached to and stored as part of the exported file.

      +
    • +
    • +

      An option indicating that the manifest will both be directly attached to and stored as part of the exported file, and stored in a separate remote storage location.

      +
    • +
    +
    +
    +
    +creator manifest storage +
    +
    Figure 24. Example of manifest storage settings
    +
    +
    +

    Describe each export action clearly and specifically. The action of storing remotely is more akin to “publishing to,” “storing in,” “saving to” remote storage or “publishing,” “storing,” “saving” remotely, compared to the action of storing locally or “attaching” a manifest to a file.

    +
    +
    +

    The tradeoffs between local and remote storage should be conveyed to creators, whether that be in-product or in separate documentation.

    +
    +
    +

    Attaching manifests to files directly generally keeps them more private. However, this comes at the expense of increased file sizes. Manifest data attached to files directly can also be stripped from those files when they are published on any platform online that processes uploaded files for size reductions.

    +
    +
    +

    Storing manifests remotely can generally make them more resilient, persistent, and recoverable, with the added benefit of not contributing to file size. However, because remote manifest recovery is achieved through searching for soft binding matches, remotely stored manifests and their respective content can potentially be viewed by anyone. This means that remote manifest storage is inherently less private.

    +
    +
    +
    +

    7.7. Exporting

    +
    +

    The C2PA Implementation Guidance recommends that a manifest be created for an asset when a significant event in the lifecycle of the asset takes place, such as its initial creation or an "export" operation from an editing tool. This is in part due to the underlying technical process of digitally signing the manifest, but also aligns with natural creation workflows. When a creator is ready to export their work, they should be able to decide whether or not to attach the accumulated assertion data to their content.

    +
    +
    +
    +
    +
    +

    8. Media formats

    +
    +
    +

    8.1. Video

    +
    +

    Since video is a temporal medium, it poses significant challenges to distilling provenance data into simple, consumer-friendly displays. This is due to the potential for high volumes of composited ingredients of varying media formats, applied complex edit actions, spanning multiple software and people. These UX recommendations are focused on a starting point for video provenance and will address more complex uses over time.

    +
    +
    +

    8.1.1. L1 in video player

    +
    +

    A notable difference with video content is the necessity for a player for viewing. This limits the ways in which an L1 indicator of C2PA data can be placed on the content and interacted with, and may likely require an integration into the player itself. However, the L1 indicator may still be placed next to the video outside of the content.

    +
    +
    +
    +video 1 2x +
    +
    Figure 25. Video L1
    +
    +
    +
    +

    8.1.2. Video L2 displays

    +
    +

    Video L2 displays should largely follow the same patterns as described in L2 – progressive disclosures. However, for now we stop short of recommending the inclusion of ingredients or non-C2PA origin content due to the potential complexity of volume. Instead, we suggest showing a minimal manifest summary or provenance summary.

    +
    +
    +
    +video 2 2x +
    +
    Figure 26. Video L2 minimum viable provenance
    +
    +
    +
    +video 3 2x +
    +
    Figure 27. Video L2 provenance summary
    +
    +
    +

    An important detail for video UX is the L2 thumbnail displays. Read more on thumbnails here. Specifically in the case of video, to help distinguish these assets from images, a filmstrip icon is added to the thumbnail to depict its media type. If the video asset containing the active manifest is playable, the media type icon should depict a play icon. However, even if the initial asset is a playable video, its ingredients may be static representations.

    +
    +
    +
    +video 5 +
    +
    Figure 28. Video L2 thumbnails with duration
    +
    +
    +

    Time-based information like duration and time ranges can help users quickly understand at a high level where changes have been applied.

    +
    +
    +
    +

    8.1.3. Considerations for video provenance

    +
    +

    Video assets present more complexities than their image counterparts. Videos may be comprised of a significant number of ingredients across multiple media types, so consideration to navigation across a provenance tree structure is warranted. It also may not be possible to show video thumbnails for the active manifest and its ingredients, since embedding video previews of these assets may lead to prohibitively large manifests.

    +
    +
    +

    Playback of video assets may also be hampered by the fact that browsers only support a subset of the video/audio codecs that C2PA does. Additionally, some of those codecs are patent-encumbered (e.g. H.265) so even if they are transcoded into web-friendly formats for viewing from a technical standpoint, there may be some issues from a legal standpoint.

    +
    +
    +
    +

    8.1.4. Next steps for video

    +
    +

    We are developing UX guidelines for a provenance-based timeline, which we anticipate providing as part of L3 recommendations in the next version of this document. As the video containing the active manifest plays, different ingredients, actions, or other time-based assertion data could be highlighted in realtime for a more immersive experience. Similarly, time-coded assertions present another navigational method for exploring provenance information.

    +
    +
    +
    +
    +

    8.2. Thumbnails

    +
    +

    Since provenance data can be added to any media type, ‘thumbnails’ here should be thought of in the broadest, multi-media sense. They should not necessarily be limited to static pixel based representations of all media types. A ‘snippet’ of audio for example could be considered all or part of a 'thumbnail’ for an audio file. Taking a multi-media, dynamic approach where possible should make thumbnails more helpful to users as they will be media appropriate. Implemented well, it will also help to aid accessibility.

    +
    +
    +

    Thumbnails serve different purposes in different contexts (simple recognition, parsing large media sets, promotion etc.) but in the context of provenance the guiding principles for their inclusion should be helping users to understand the history and attribution of media and to engender trust.

    +
    +
    +

    Amongst media types (image, video, audio, docs, 3D models etc.) single image thumbnails are unique in that they are (from a user’s perspective) simply a smaller version of the actual file - a ‘complete’ yet compact instance of the same media. In our context this can be helpful since it allows users to more easily interpret provenance chains by simply scanning through these approximations. This cannot be replicated with other more complex media types and so consideration should be given to how to create meaningful but succinct representations.

    +
    +
    +

    Depending on the media type, a meaningful ‘thumbnail’ can be comprised of more than one element (but does not need to include all). The below example uses video as an example but is intended to demonstrate how the different elements can be used to create a thumbnail of any kind.

    +
    +
    +
    +thumbnail +
    +
    Figure 29. Anatomy of a thumbnail
    +
    +
    +
      +
    • +

      Interactions (i.e. hover or long press to skip through a sequence or swipe to rotate model)

      +
    • +
    • +

      Where relevant, an L1 indication of provenance

      +
    • +
    • +

      Some representation of the media (see below for different approaches)

      +
    • +
    • +

      Data (i.e. media duration for temporal media)

      +
    • +
    • +

      Relevant iconography

      +
    • +
    +
    +
    +

    Media representations

    +
    + +++++ + + + + + + + + + + + + +

    PLACEHOLDER

    PREVIEW

    POSTER

    A default, static media type representation (i.e. a file icon to represent text, a particular piece of haptic feedback pattern to denote audio etc.). This is distinct from iconography as it could be a fallback placeholder in the slot where PREVIEW or POSTER might sit

    The representation is manually or automatically derived from the media according to some rule (i.e. the first frame of the video, the lead image in a document, a 3/4 angle shot of a model) this could sit on a scale of simple (i.e. frame x) to sophisticated (i.e. face detection, popular moments or a sample sequence that plays through via user interaction)

    A separate piece of media is created by human and/or machine to represent the media. It may well contain elements/treatments not necessarily present in the media i.e. typography used as a title or stylistic rendering.

    +
    +

    Since the media, context and use case will vary we do not seek to dictate which approach is best however it is recommended that whatever approach is taken remains consistent across manifests when displaying provenance chains. Swapping between say, a PREVIEW and POSTER approach risks confusing users as to what media is being referred to. It is also recommended that whatever combination of elements (Representation, iconography, data, etc.) remains consistent across manifests.

    +
    +
    +

    It is recommended that for all media types, of the possible elements, alongside the appropriate Media representation, Iconography is always used. This should help to distinguish media types that may otherwise appear similar i.e. if an image was chosen to represent a document file it could be confused for an image file.

    +
    +
    +

    In the case of temporal media (audio/video/3D scene), it is also recommended that duration data is included. Duration could be helpful to a user when comparing manifests since changes to it could be meaningful. This is also a good example of the importance of consistency. If the duration is featured intermittently, this will not only make it harder to interpret, It could even result in the user mistaking some manifests as of a different media type since they have built a mental model of what to expect for a given type.

    +
    +
    +

    The table below sets out some suggestions for how the various elements might come together to form multi-faceted ‘thumbnails’ for different media types. In the case of iconography/interactions it is acknowledged that different platforms may have existing patterns and so examples here are for illustration only.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Media Type

    Media Representation

    Iconography

    Data

    Interactions (suggestions only)

    Image (single)

    Thumbnail image

    n/a

    n/a

    Expand to inspect

    Image (multi-picture)

    Thumbnail images

    TBD

    No of images

    Skip through images

    Video

    ‘Placeholder'/'Preview'/'Poster’

    i.e. Movie clip icon (to distinguish it from the full playable asset which would use the play icon)

    Duration

    Skip through key frames / Play sub section

    Audio

    ‘Placeholder'/'Preview'/'Poster’

    i.e. Speaker icon (to distinguish it from a playable asset which would use the play icon)

    Duration

    Play sub section

    Document

    ‘Placeholder'/'Preview'/'Poster’

    i.e. File icon

    File size

    3D Model/scene

    ‘Placeholder'/'Preview'/'Poster’

    i.e. Cube icon

    Duration (if scene)

    Rotate and zoom, 'Quick look' in AR

    +
    +

    *A note on the ‘POSTER’ approach to media representation. This could require its own provenance chain, or it could be treated as an ingredient to the associated media and thus handled as just another sub-branch therein.

    +
    +
    +
    +
    +
    +

    9. Interface language

    +
    +
    +

    9.1. L1 interface language

    +
    +

    It is important to align any interface language with the recommended terminology and phrases. This lets terminology retain the same meaning and weight across experiences, which is best for user comprehension. It also ensures the value and adoption of content provenance, thus making C2PA data easier to understand and promote across a large ecosystem.

    +
    +
    +

    For customization of UI elements, use the recommended terms or customize with user comprehension in mind.

    +
    +
    +

    In the following table, we recommend terminology for consumer-facing L1 UI:

    +
    + + +++++ + + + + + + + + + + + + + + + + + + + + + + + + +
    Table 1. L1 recommended content terms and descriptions
    Term/phraseDescriptionUsage notes

    Content credentials

    Content provenance and attribution data

    +
      +
    • +

      Use title case when referring to the system name and sentence case when referring to the data itself

      +
    • +
    • +

      As a reminder, this is a working title and is subject to change

      +
    • +
    +

    Incomplete

    Someone has changed this content without updating the content credentials, so there may be unexplained changes.

    Consider pairing with a visual indicator that suggests users proceed with caution when viewing C2PA data

    Invalid

    Someone has changed or tampered with the content credentials, so the available data should be disregarded

    Consider pairing with a visual indicator that conveys clear negativity and risk so users can understand the C2PA data should not be used to assess the content

    +
    +
    +

    9.2. L2 interface language

    +
    +

    Please refer to L1 interface language for a reminder of the importance of adhering to recommended terms and descriptions. The following table contains terminology for UI elements such as commonly used categories and validation states:

    +
    + + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table 2. L2 recommended content terms and descriptions
    Term/phraseDescriptionUsage notes

    Content credentials

    Content provenance and attribution data

    +
      +
    • +

      Consider using as a UI header to contextualize C2PA data displays

      +
    • +
    • +

      As a reminder, this is a working title and is under discussion

      +
    • +
    +

    Signed by / Signer

    The signer is responsible for the trustworthiness of the content and its C2PA data

    Must be displayed

    Date and timestamp

    The time and time zone at which the signer signed the manifest

    +
      +
    • +

      Recommended inclusion to accompany signer

      +
    • +
    • +

      Appearance of formatting should be localized to consumer’s region

      +
    • +
    +

    Edits and activity

    Actions taken on the asset

    Upcoming UX recommendations will attempt to standardize categorizations of actions for user comprehension

    Assets used / Assets

    Ingredients used in a given manifest

    Recommended display for discrete manifest summaries

    Produced by / Producer

    The name and role of the person identified by the active manifest as its producer

    +
      +
    • +

      Consider a customization or UI pattern to clarify how identity is being validated (see more in creator identity)

      +
    • +
    • +

      This term is intended to represent a diverse range of roles, but can be customized based on the CreativeWork assertion

      +
    • +
    +

    Content credentials are incomplete

    Someone has changed this content without updating the content credentials, so there may be unexplained changes

    Should follow L1 validation state

    Content credentials are invalid

    Someone has changed or tampered with the content credentials, so the available data should be disregarded

    Should follow L1 validation state

    Additional manifests

    There are # additional manifests in this provenance line

    Use to represent manifest count when there are four or more manifests in the provenance summary

    Additional manifests and incomplete content credentials

    There are # additional manifests in this provenance line, and some have incomplete data

    Use to represent manifest count when there are four or more manifests in the provenance summary and one or more are incomplete

    +
    +
    +

    9.3. User-facing edit and activity labels and descriptions

    +
    +

    The names and descriptions of C2PA actions have generally been written with implementers in mind. Users who are less familiar with the C2PA will benefit from clear labeling and descriptions of actions that capture as much of the related actions that may apply as possible.

    +
    +
    +

    Here we provide a matrix of current C2PA actions with recommended labels and optional descriptions for them in the "Edits and activity" section of consumer manifest UIs.

    +
    +
    +

    Note that when displaying C2PA actions ("Edits and activity") in a manifest, descriptions may accompany them in the UI or be made available in separate docuentation.

    +
    + + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table 3. Recommended user-facing C2PA action labels and descriptions
    C2PA actionRecommended labelOptional descriptio recommendation

    c2pa.color_adjustments

    Color or exposure edits

    Adjusted properties like tone, saturation, curves, shadows, or highlights

    c2pa.created

    Created

    Created a new file or content

    c2pa.cropped

    Cropped

    Used cropping tools, reducing or expanding visible content area

    c2pa.drawing

    Drawing edits

    Used tools like pencils, brushes, erasers, or shape, path, or pen tools

    c2pa.edited

    Other edits

    Performed other edits which may or may not change appearance

    c2pa.filtered

    Filter or style edits

    Used tools like filters, styles, or effects

    c2pa.opened

    Opened

    Opened a pre-existing file

    c2pa.orientation

    Changed orientation

    Changed position or orientation (rotated, flipped, etc.)

    c2pa.placed

    Imported

    Added pre-existing content to this file

    c2pa.resized

    Resized

    Changed dimensions or file size

    c2pa.unknown

    Unknown edits or activity

    Performed edits or activity that couldn’t be recognized

    c2pa.converted

    Converted

    Changed file format with transcoding

    c2pa.transcoded

    Transcoded

    Converted from one file encoding to another, potentially affecting properties like resolution scale, bitrate, or encoding format

    c2pa.repackaged

    Repackaged

    Changed container file format without transcoding

    c2pa.removed

    Removed

    Removed content or files created or added during the editing process

    c2pa.published

    Published

    Distributed this file on an online platform

    +
    +
    +

    9.4. L2/L3 user-facing warnings and errors

    +
    +

    When writing user-facing error or warning messages, space may be limited. Prioritize clearly stating what is wrong, missing, unavailable, etc., and providing next steps a user can take to potentially correct the situation when applicable. Explanation of why an error or warning occurred, or more detailed guidance on correction,may be left to separate help documentation provided through a "Learn more" link or similar.

    +
    +
    +

    Following are a few example messages for some of the most common types of issues and errors C2PA is aware of today, which you may use as a starting point and reference for your own implementations.

    +
    + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table 4. Example language for common L2/L3 warnings and errors
    ProblemUser-facing message

    Manifest has been tampered with in a way that makes it invalid, or is otherwise inaccessible

    Content Credential unavailable or invalid

    Edits or activity occurred outside of C2PA-supported app or while C2PA feature was not enabled

    Some edits or activity may not have been recorded. Learn more

    Ingredient is of a file type that may contain multiple layers, some of which may not appear in its ingredient thumbnail

    May contain layers that are hidden or not visible in this thumbnail

    +

    * Note that ingredient-specific messaging should be contextually located around the ingredient it refers to. For example, this message may appear in a tooltip attached to an icon near the ingredient’s name in the UI.

    Connection issues with remote storage when retrieving manifest data

    Some assertions may be temporarily missing or incomplete due to cloud storage connection issues. Learn more

    Connection issues with remote storage when retrieving manifest

    Content Credential temporarily unavailable due to cloud storage connection issues. Try viewing again later.

    +
    +
    +

    9.5. Difficult terms and concepts, and possible alternatives

    +
    +

    Some C2PA terms and concepts may be particularly unfamiliar, hard to grasp, or contentious for users, or be inherently lengthy to explain (running the risk that explanations will not be read and understood).

    +
    +
    +

    Here we list a few known examples and share possible alternatives. These suggestions are currently untested, but you may take them as directional guidance toward simpler, more user-friendly interface language.

    +
    + + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table 5. Possible consumer-friendly alternatives to difficult terms and concepts
    Term or conceptPossible alternativeNotes

    Signer, signed by (as labels)

    +
      +
    • +

      Content Credentials issued by

      +
      +
        +
      • +

        As a label for the signer name, or as a label for a section about the signer’s identity and other details about the signature like when it occurred

        +
      • +
      +
      +
    • +
    • +

      Issued by

      +
      +
        +
      • +

        As a label within a "Content Credentials issued by" section to further specify the signer identity

        +
      • +
      +
      +
    • +
    +

    Users and creators are generally unfamiliar with the concept of digital signatures as they pertain to C2PA manifests. A more descriptive phrase for "Signer" like "Content Credentials issued by," can better illustrate the importance of the identity listed.

    Signer (description)

    "This is the trusted organization, device, or individual that issued these Content Credentials and recorded the details shown."

    This aligns with the guidance above regarding reframing "signer" as "Content Credentials issued by"

    Assertion (description)

    +
      +
    • +

      Details

      +
    • +
    • +

      Information

      +
    • +
    +

    While it is not advised to label individual assertions as "assertions" in a manifest, the description or explanation of them is likely to come up in your implementation’s ecosystem. We propose referring to assertions as simply "information" or "details" within Content Credentials.

    Producer, Produced by (label)

    +
      +
    • +

      Output by

      +
      +
        +
      • +

        Output by: John Doe

        +
      • +
      • +

        "This content was output by John Doe"

        +
      • +
      • +

        "John Doe output this content"

        +
      • +
      +
      +
    • +
    +

    Users may be hesitant to include identity assertions with content they don’t own or didn’t solely create. If you believe your users may share similar concerns, you can try using a more neutral term like "output by" which doesn’t carry the same possible implication of ownership that "produced by" might.

    +
    +
    +
    +
    +

    10. Communication and education

    +
    +
    +

    To ensure user comprehension, it is crucial that implementers consider how their audiences are introduced to C2PA provenance data and the value to be gained from engaging with it. We recommend providing creator and consumer educational experiences and strongly encourage the use of language consistent to what is provided in these guidelines. Keeping communication and education aligned is a key part of promoting comprehension, value, and adoption of C2PA data by implementers, creators, and consumers.

    +
    +
    +

    Depending on the implementer’s platform and audience, there are different ways to effectively incorporate education around C2PA data. We suggest utilizing standard UI elements like links, tooltips, and modals to provide users with opportunities to seek out more information regarding the implementation or a component piece within. Certain L2 UI elements, like assertion categories, may warrant additional explanations to ensure user comprehension. For larger and more detailed explanations, implementers should consider linking out to FAQs or dedicated information pages so audiences can learn more about C2PA from a native product voice. However, when making content customizations, make sure things like brand voice are not prioritized in sacrifice of clarity and user comprehension.

    +
    +
    +
    +
    +

    11. Open issues

    +
    +
    +

    11.1. User research

    +
    +

    Correctly identifying and displaying trust signals is of paramount concern for our overall user experience. C2PA strives to understand the value consumers will apply to content attribution through ongoing user research studies and usability testing.

    +
    +
    +
    +

    11.2. Applications, use cases, and additional media formats

    +
    +

    Pending user research, C2PA will provide implementors with recommended L2 customizations based on combinations of content, audiences, and platforms. Examples may include news publishers, social sites, e-commerce and retail, travel, and entertainment platforms. The recommendations for video UX will also continue to expand in scope and complexity, along with the introduction of other media formats like audio and streaming content.

    +
    +
    +
    +
    +
    +

    12. Public review, feedback and evolution

    +
    +
    +

    The team authoring the UX recommendations is cognizant of its limitations and potential biases, recognizing that feedback, review, user testing and ongoing evolution is a requirement for success. This guidance is therefore an evolving document, informed by real world experiences deploying C2PA UX across a wide variety of applications and scenarios.

    +
    +
    +
    +
    +
    +
    +
    +
    + + + +
    + + + + + + + + diff --git a/build/site/specifications/1.1/ux/_attachments/UX_Recommendations.pdf b/build/site/specifications/1.1/ux/_attachments/UX_Recommendations.pdf new file mode 100644 index 0000000..529e7f5 Binary files /dev/null and b/build/site/specifications/1.1/ux/_attachments/UX_Recommendations.pdf differ diff --git a/build/site/specifications/1.1/ux/_images/CCby4.png b/build/site/specifications/1.1/ux/_images/CCby4.png new file mode 100644 index 0000000..cf59608 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/CCby4.png differ diff --git a/build/site/specifications/1.1/ux/_images/Discolusure_visualsummary.png b/build/site/specifications/1.1/ux/_images/Discolusure_visualsummary.png new file mode 100644 index 0000000..18334f2 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/Discolusure_visualsummary.png differ diff --git "a/build/site/specifications/1.1/ux/_images/Journey\342\200\223Multi-1.png" "b/build/site/specifications/1.1/ux/_images/Journey\342\200\223Multi-1.png" new file mode 100644 index 0000000..c6d01b9 Binary files /dev/null and "b/build/site/specifications/1.1/ux/_images/Journey\342\200\223Multi-1.png" differ diff --git "a/build/site/specifications/1.1/ux/_images/Journey\342\200\223Multi.png" "b/build/site/specifications/1.1/ux/_images/Journey\342\200\223Multi.png" new file mode 100644 index 0000000..0c95833 Binary files /dev/null and "b/build/site/specifications/1.1/ux/_images/Journey\342\200\223Multi.png" differ diff --git "a/build/site/specifications/1.1/ux/_images/Journey\342\200\223NET.png" "b/build/site/specifications/1.1/ux/_images/Journey\342\200\223NET.png" new file mode 100644 index 0000000..6277b2c Binary files /dev/null and "b/build/site/specifications/1.1/ux/_images/Journey\342\200\223NET.png" differ diff --git "a/build/site/specifications/1.1/ux/_images/Journey\342\200\223OTGP.png" "b/build/site/specifications/1.1/ux/_images/Journey\342\200\223OTGP.png" new file mode 100644 index 0000000..c6d01b9 Binary files /dev/null and "b/build/site/specifications/1.1/ux/_images/Journey\342\200\223OTGP.png" differ diff --git "a/build/site/specifications/1.1/ux/_images/Journey\342\200\223Single.png" "b/build/site/specifications/1.1/ux/_images/Journey\342\200\223Single.png" new file mode 100644 index 0000000..f946d0b Binary files /dev/null and "b/build/site/specifications/1.1/ux/_images/Journey\342\200\223Single.png" differ diff --git "a/build/site/specifications/1.1/ux/_images/Journey\342\200\223Standard.png" "b/build/site/specifications/1.1/ux/_images/Journey\342\200\223Standard.png" new file mode 100644 index 0000000..cdaa538 Binary files /dev/null and "b/build/site/specifications/1.1/ux/_images/Journey\342\200\223Standard.png" differ diff --git a/build/site/specifications/1.1/ux/_images/L1 - display options_2x.png b/build/site/specifications/1.1/ux/_images/L1 - display options_2x.png new file mode 100644 index 0000000..11b4bd5 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L1 - display options_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/L1 - states_2x.png b/build/site/specifications/1.1/ux/_images/L1 - states_2x.png new file mode 100644 index 0000000..d2d61e8 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L1 - states_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/L1-display-options_2x.png b/build/site/specifications/1.1/ux/_images/L1-display-options_2x.png new file mode 100644 index 0000000..467ca26 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L1-display-options_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/L1-states_2x.png b/build/site/specifications/1.1/ux/_images/L1-states_2x.png new file mode 100644 index 0000000..126b8f7 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L1-states_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/L1.png b/build/site/specifications/1.1/ux/_images/L1.png new file mode 100644 index 0000000..c08ae47 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L1.png differ diff --git a/build/site/specifications/1.1/ux/_images/L1_2x.png b/build/site/specifications/1.1/ux/_images/L1_2x.png new file mode 100644 index 0000000..892a532 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L1_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/L2-NET.png b/build/site/specifications/1.1/ux/_images/L2-NET.png new file mode 100644 index 0000000..d8e3460 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L2-NET.png differ diff --git a/build/site/specifications/1.1/ux/_images/L2-NET_2x.png b/build/site/specifications/1.1/ux/_images/L2-NET_2x.png new file mode 100644 index 0000000..ccb3fd1 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L2-NET_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/L2-discrete.png b/build/site/specifications/1.1/ux/_images/L2-discrete.png new file mode 100644 index 0000000..57ea7c4 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L2-discrete.png differ diff --git a/build/site/specifications/1.1/ux/_images/L2-discrete_2x.png b/build/site/specifications/1.1/ux/_images/L2-discrete_2x.png new file mode 100644 index 0000000..355933a Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L2-discrete_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/L2-errors.png b/build/site/specifications/1.1/ux/_images/L2-errors.png new file mode 100644 index 0000000..48d4632 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L2-errors.png differ diff --git a/build/site/specifications/1.1/ux/_images/L2-errors_2x.png b/build/site/specifications/1.1/ux/_images/L2-errors_2x.png new file mode 100644 index 0000000..baa9046 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L2-errors_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/L2-multi.png b/build/site/specifications/1.1/ux/_images/L2-multi.png new file mode 100644 index 0000000..55abbb1 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L2-multi.png differ diff --git a/build/site/specifications/1.1/ux/_images/L2-multi_2x.png b/build/site/specifications/1.1/ux/_images/L2-multi_2x.png new file mode 100644 index 0000000..a4b138f Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L2-multi_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/L2-standard.png b/build/site/specifications/1.1/ux/_images/L2-standard.png new file mode 100644 index 0000000..20b2678 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L2-standard.png differ diff --git a/build/site/specifications/1.1/ux/_images/L2-standard_2x.png b/build/site/specifications/1.1/ux/_images/L2-standard_2x.png new file mode 100644 index 0000000..7b80865 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L2-standard_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/L2_MVP_2x.png b/build/site/specifications/1.1/ux/_images/L2_MVP_2x.png new file mode 100644 index 0000000..d8c3d58 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L2_MVP_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/L2_depth_2x.png b/build/site/specifications/1.1/ux/_images/L2_depth_2x.png new file mode 100644 index 0000000..ce1491a Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L2_depth_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/L2_depth_breadth_examples_alltogether_incl_range_2x.png b/build/site/specifications/1.1/ux/_images/L2_depth_breadth_examples_alltogether_incl_range_2x.png new file mode 100644 index 0000000..63d8d31 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L2_depth_breadth_examples_alltogether_incl_range_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/L2_depth_breadth_explainer_2x.png b/build/site/specifications/1.1/ux/_images/L2_depth_breadth_explainer_2x.png new file mode 100644 index 0000000..8398c06 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L2_depth_breadth_explainer_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/L2_depth_breadth_range_01_2x.png b/build/site/specifications/1.1/ux/_images/L2_depth_breadth_range_01_2x.png new file mode 100644 index 0000000..6def34f Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L2_depth_breadth_range_01_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/L2_depth_breadth_range_02_2x.png b/build/site/specifications/1.1/ux/_images/L2_depth_breadth_range_02_2x.png new file mode 100644 index 0000000..c31e3a8 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L2_depth_breadth_range_02_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/L2_depth_breadth_range_03_2x.png b/build/site/specifications/1.1/ux/_images/L2_depth_breadth_range_03_2x.png new file mode 100644 index 0000000..678ae49 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L2_depth_breadth_range_03_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/L2_middle_2x.png b/build/site/specifications/1.1/ux/_images/L2_middle_2x.png new file mode 100644 index 0000000..da71032 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L2_middle_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/L2_spectrum_2x.png b/build/site/specifications/1.1/ux/_images/L2_spectrum_2x.png new file mode 100644 index 0000000..f67df30 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L2_spectrum_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/L3-compare.png b/build/site/specifications/1.1/ux/_images/L3-compare.png new file mode 100644 index 0000000..72c0688 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L3-compare.png differ diff --git a/build/site/specifications/1.1/ux/_images/L3-manifest-recovery.png b/build/site/specifications/1.1/ux/_images/L3-manifest-recovery.png new file mode 100644 index 0000000..93e2307 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L3-manifest-recovery.png differ diff --git a/build/site/specifications/1.1/ux/_images/L3-tree-view.png b/build/site/specifications/1.1/ux/_images/L3-tree-view.png new file mode 100644 index 0000000..0651238 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/L3-tree-view.png differ diff --git a/build/site/specifications/1.1/ux/_images/MVP.png b/build/site/specifications/1.1/ux/_images/MVP.png new file mode 100644 index 0000000..97c1087 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/MVP.png differ diff --git a/build/site/specifications/1.1/ux/_images/MVP_2x.png b/build/site/specifications/1.1/ux/_images/MVP_2x.png new file mode 100644 index 0000000..1cebfb3 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/MVP_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/arts_2x.png b/build/site/specifications/1.1/ux/_images/arts_2x.png new file mode 100644 index 0000000..aad2eaf Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/arts_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/c2pa-hero.svg b/build/site/specifications/1.1/ux/_images/c2pa-hero.svg new file mode 100644 index 0000000..83b2aef --- /dev/null +++ b/build/site/specifications/1.1/ux/_images/c2pa-hero.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/build/site/specifications/1.1/ux/_images/creator-manifest-storage.png b/build/site/specifications/1.1/ux/_images/creator-manifest-storage.png new file mode 100644 index 0000000..40cfdf4 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/creator-manifest-storage.png differ diff --git a/build/site/specifications/1.1/ux/_images/disclosure_summary_2x.png b/build/site/specifications/1.1/ux/_images/disclosure_summary_2x.png new file mode 100644 index 0000000..0ec3d93 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/disclosure_summary_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/discrete-1_2x.png b/build/site/specifications/1.1/ux/_images/discrete-1_2x.png new file mode 100644 index 0000000..d1eb48e Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/discrete-1_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/discrete-2_2x.png b/build/site/specifications/1.1/ux/_images/discrete-2_2x.png new file mode 100644 index 0000000..12a3923 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/discrete-2_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/error-1_2x.png b/build/site/specifications/1.1/ux/_images/error-1_2x.png new file mode 100644 index 0000000..a592fd2 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/error-1_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/error-2_2x.png b/build/site/specifications/1.1/ux/_images/error-2_2x.png new file mode 100644 index 0000000..8e48623 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/error-2_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/error-3_2x.png b/build/site/specifications/1.1/ux/_images/error-3_2x.png new file mode 100644 index 0000000..42add4d Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/error-3_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/error-4_2x.png b/build/site/specifications/1.1/ux/_images/error-4_2x.png new file mode 100644 index 0000000..3f36c3e Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/error-4_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/error-5_2x.png b/build/site/specifications/1.1/ux/_images/error-5_2x.png new file mode 100644 index 0000000..febba45 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/error-5_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/l2tol3.png b/build/site/specifications/1.1/ux/_images/l2tol3.png new file mode 100644 index 0000000..2aceda9 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/l2tol3.png differ diff --git a/build/site/specifications/1.1/ux/_images/news_2x.png b/build/site/specifications/1.1/ux/_images/news_2x.png new file mode 100644 index 0000000..0878480 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/news_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/recs_01_mvp.png b/build/site/specifications/1.1/ux/_images/recs_01_mvp.png new file mode 100644 index 0000000..75bc0c3 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/recs_01_mvp.png differ diff --git a/build/site/specifications/1.1/ux/_images/recs_01_mvp_2x.png b/build/site/specifications/1.1/ux/_images/recs_01_mvp_2x.png new file mode 100644 index 0000000..e4047e3 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/recs_01_mvp_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/recs_02_standard.png b/build/site/specifications/1.1/ux/_images/recs_02_standard.png new file mode 100644 index 0000000..2a10fad Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/recs_02_standard.png differ diff --git a/build/site/specifications/1.1/ux/_images/recs_02_standard_2x.png b/build/site/specifications/1.1/ux/_images/recs_02_standard_2x.png new file mode 100644 index 0000000..daaca4d Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/recs_02_standard_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/recs_03_NET.png b/build/site/specifications/1.1/ux/_images/recs_03_NET.png new file mode 100644 index 0000000..08f1369 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/recs_03_NET.png differ diff --git a/build/site/specifications/1.1/ux/_images/recs_03_NET_2x.png b/build/site/specifications/1.1/ux/_images/recs_03_NET_2x.png new file mode 100644 index 0000000..20e6236 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/recs_03_NET_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/recs_04_multi.png b/build/site/specifications/1.1/ux/_images/recs_04_multi.png new file mode 100644 index 0000000..f86ced7 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/recs_04_multi.png differ diff --git a/build/site/specifications/1.1/ux/_images/recs_04_multi_2x.png b/build/site/specifications/1.1/ux/_images/recs_04_multi_2x.png new file mode 100644 index 0000000..90b3578 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/recs_04_multi_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/recs_05_OTGP.png b/build/site/specifications/1.1/ux/_images/recs_05_OTGP.png new file mode 100644 index 0000000..8f694cb Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/recs_05_OTGP.png differ diff --git a/build/site/specifications/1.1/ux/_images/recs_05_OTGP_2x.png b/build/site/specifications/1.1/ux/_images/recs_05_OTGP_2x.png new file mode 100644 index 0000000..9eda815 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/recs_05_OTGP_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/redaction.png b/build/site/specifications/1.1/ux/_images/redaction.png new file mode 100644 index 0000000..1ccb0b9 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/redaction.png differ diff --git a/build/site/specifications/1.1/ux/_images/retail_2x.png b/build/site/specifications/1.1/ux/_images/retail_2x.png new file mode 100644 index 0000000..398f471 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/retail_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/social_2x.png b/build/site/specifications/1.1/ux/_images/social_2x.png new file mode 100644 index 0000000..48cb20a Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/social_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/summary-1.png b/build/site/specifications/1.1/ux/_images/summary-1.png new file mode 100644 index 0000000..5daa72f Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/summary-1.png differ diff --git a/build/site/specifications/1.1/ux/_images/summary-1_2x.png b/build/site/specifications/1.1/ux/_images/summary-1_2x.png new file mode 100644 index 0000000..a48a61e Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/summary-1_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/summary-2.png b/build/site/specifications/1.1/ux/_images/summary-2.png new file mode 100644 index 0000000..141d138 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/summary-2.png differ diff --git a/build/site/specifications/1.1/ux/_images/summary-2_2x.png b/build/site/specifications/1.1/ux/_images/summary-2_2x.png new file mode 100644 index 0000000..e3b9252 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/summary-2_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/summary-3.png b/build/site/specifications/1.1/ux/_images/summary-3.png new file mode 100644 index 0000000..5926d34 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/summary-3.png differ diff --git a/build/site/specifications/1.1/ux/_images/summary-3_2x.png b/build/site/specifications/1.1/ux/_images/summary-3_2x.png new file mode 100644 index 0000000..dd4e832 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/summary-3_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/summary-4.png b/build/site/specifications/1.1/ux/_images/summary-4.png new file mode 100644 index 0000000..a87a265 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/summary-4.png differ diff --git a/build/site/specifications/1.1/ux/_images/summary-4_2x.png b/build/site/specifications/1.1/ux/_images/summary-4_2x.png new file mode 100644 index 0000000..9da5beb Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/summary-4_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/summary-5.png b/build/site/specifications/1.1/ux/_images/summary-5.png new file mode 100644 index 0000000..0256721 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/summary-5.png differ diff --git a/build/site/specifications/1.1/ux/_images/summary-5_2x.png b/build/site/specifications/1.1/ux/_images/summary-5_2x.png new file mode 100644 index 0000000..9dd5a7d Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/summary-5_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/test.png b/build/site/specifications/1.1/ux/_images/test.png new file mode 100644 index 0000000..8f0e0bb Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/test.png differ diff --git a/build/site/specifications/1.1/ux/_images/thumbnail.png b/build/site/specifications/1.1/ux/_images/thumbnail.png new file mode 100644 index 0000000..e3a197a Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/thumbnail.png differ diff --git a/build/site/specifications/1.1/ux/_images/thumbnailexample.png b/build/site/specifications/1.1/ux/_images/thumbnailexample.png new file mode 100644 index 0000000..0ef49a5 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/thumbnailexample.png differ diff --git a/build/site/specifications/1.1/ux/_images/transcode-1_2x.png b/build/site/specifications/1.1/ux/_images/transcode-1_2x.png new file mode 100644 index 0000000..6aae5cb Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/transcode-1_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/transcode-2_2x.png b/build/site/specifications/1.1/ux/_images/transcode-2_2x.png new file mode 100644 index 0000000..b9a9896 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/transcode-2_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/transcode-3_2x.png b/build/site/specifications/1.1/ux/_images/transcode-3_2x.png new file mode 100644 index 0000000..0363b38 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/transcode-3_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/transcode-4_2x.png b/build/site/specifications/1.1/ux/_images/transcode-4_2x.png new file mode 100644 index 0000000..2689ea8 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/transcode-4_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/travel_2x.png b/build/site/specifications/1.1/ux/_images/travel_2x.png new file mode 100644 index 0000000..c0f0969 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/travel_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/video-1_2x.png b/build/site/specifications/1.1/ux/_images/video-1_2x.png new file mode 100644 index 0000000..f32f9a5 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/video-1_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/video-2_2x.png b/build/site/specifications/1.1/ux/_images/video-2_2x.png new file mode 100644 index 0000000..dcd5381 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/video-2_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/video-3_2x.png b/build/site/specifications/1.1/ux/_images/video-3_2x.png new file mode 100644 index 0000000..480e878 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/video-3_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/video-4_2x.png b/build/site/specifications/1.1/ux/_images/video-4_2x.png new file mode 100644 index 0000000..5ae905c Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/video-4_2x.png differ diff --git a/build/site/specifications/1.1/ux/_images/video-5.png b/build/site/specifications/1.1/ux/_images/video-5.png new file mode 100644 index 0000000..bde2337 Binary files /dev/null and b/build/site/specifications/1.1/ux/_images/video-5.png differ diff --git a/build/site/specifications/1.2/explainer/Explainer.html b/build/site/specifications/1.2/explainer/Explainer.html new file mode 100644 index 0000000..12d558f --- /dev/null +++ b/build/site/specifications/1.2/explainer/Explainer.html @@ -0,0 +1,470 @@ + + + + + + C2PA Explainer :: C2PA Specifications + + + + + + + + +
    + +
    +
    + +
    + +
    + +
    +

    C2PA Explainer

    + +
    +
    +
    +
    +
    +
    +Creative Commons License +
    +
    + +
    +
    + +
    +
    +
    +

    1. Introduction

    +
    +
    +

    The development of this Explainer is ongoing. This Explainer accompanies Version 1.0 of the Technical Specifications.

    +
    +
    +

    This Explainer accompanies the C2PA Specifications with the intent of providing further background and clarification on the development of the standard, its goals, mechanisms and guidelines.

    +
    +
    +

    This Explainer is not a technical document and is directed towards the general public.

    +
    +
    +
    +
    +

    2. Goals and Non-goals

    +
    +
    +

    The goal of the C2PA specifications is to tackle the extraordinary challenge of trusting media in a context of rapidly evolving technology and the democratization of powerful creation and editing techniques. To this end, the specifications are designed to enable global, opt-in, adoption of digital provenance techniques through the creation of a rich ecosystem of digital provenance enabled applications for a wide range of individuals and organizations while meeting appropriate security and privacy requirements, as well as human rights considerations.

    +
    +
    +

    It is important to highlight that C2PA specifications do not provide value judgments about whether a given set of provenance data is 'true', but instead merely whether the provenance information can be verified as associated with the underlying asset, correctly formed, and free from tampering.

    +
    +
    +
    +
    +

    3. Fundamentals (FAQs)

    +
    +
    +

    3.1. What does "Provenance" mean in the C2PA Specifications?

    +
    +

    Provenance generally refers to the facts about the history of a piece of digital content assets (image, video, audio recording, document). C2PA enables the authors of provenance data to securely bind statements of provenance data to instances of content using their unique credentials. These provenance statements are called assertions by the C2PA. They may include assertions about who created the content and how, when, and where it was created. They may also include assertions about when and how it was edited throughout its life. The content author, and publisher (if authoring provenance data) always has control over whether to include provenance data as well as what assertions are included, such as whether to include identifying information (in order to allow for anonymous or pseudonymous assets). Included assertions can be removed in later edits without invalidating or removing all of the included provenance data in a process called redaction.

    +
    +
    +
    +

    3.2. How is trust in digital assets established?

    +
    +

    In the C2PA Specifications, trust decisions are made by the consumer of the asset based on the identity of the actor(s) who signed the provenance data along with the information in the assertions contained in the provenance. This signing takes place at each significant moment in an asset’s life (e.g., creation, editing, etc.) through the use of the actor’s unique credentials and ensures that the provenance data remains cryptographically bound to the newly created or updated asset.

    +
    +
    +

    To enable consumers to make informed decisions about the provenance of an asset, and prevent unknown attackers from impersonating others, it is critical that each application and ecosystem reliably identify the actor to whom a signing credential is issued. This is accomplished through the use of a certification authority (CA). CAs perform real-world due diligence to ensure credentials are only issued to actors who are whom they claim to be. In the world wide web, CAs verify that someone requesting a certificate to operate a secure web site owns and/or controls the site’s domain name before issuing such a credential. For example, before issuing a certificate for https://c2pa.org/, the CA verified the requestor did in fact control C2PA’s domain name before issuing a certificate for that site name.

    +
    +
    +

    Unlike the world wide web, C2PA will be used in multiple different application settings, and each setting will have its own requirements. Each application will therefore provide users with one or more trust lists, which are lists of certification authorities that issue credentials for that application. For example, in a news and media aggregation application or web site, each newspaper, television network, or other media organization has a globally-recognized identity, and there is only one such organization that operates with that name. In this situation, because brand marks and other visual indicators can and have been reproduced for the purposes of impersonation, consumers want to be certain the media they are consuming actually comes from the source it claims to be. This application would provide at least one trust list maintained by a professional or non-profit organization for journalists and media, which endorses certification authorities that ensure such credentials are only issued to the genuine organization through real-world due diligence.

    +
    +
    +

    In another example, an insurance company may employ provenance tracking for images, videos, and other media as part of underwriting policies and servicing loss claims to be used by its own employees. In this case, only one trust list is applicable: the insurance company’s own certification authority operated by its Human Resources department, which may already exist to employee credentials for other purposes. Here, it is not important that every participant have a unique name, as several employees may share the same name, but it is important to be assured all participants are employees of the insurance company, which the Human Resources department is certainly able to confirm and attest.

    +
    +
    +

    Once the credential is issued by a certification authority, the identity it has confirmed and placed in the credential cannot be altered by anyone else, including and especially the credential’s owner. This allows the consumer or user to rely upon the identity presented in a signed asset.

    +
    +
    +
    +

    3.3. What does it mean that provenance data is cryptographically bound to the asset?

    +
    +

    The provenance data and the asset are the two parts of the same puzzle - a unique puzzle. The possibility of any other pieces ever matching, either by coincidence or by purposeful creation, is so low that it would be practically impossible. This is known as a hard binding.

    +
    +
    +

    In other words, any alteration to either the asset or the provenance, however insignificant, would alter the mathematical algorithm - the shape of the piece of the puzzle – in such a way that they would no longer match.

    +
    +
    +

    For more technical information on this see "Hard binding" in the glossary and the non-normative guidance.

    +
    +
    +
    +

    3.4. Can C2PA help with assets created from multiple sources?

    +
    +

    When one asset is created from a series of other assets, those sources are referred to as the ingredients. Each ingredient that is used in the final (composed) asset can be identified as part of the final provenance, including the addition of the provenance of each individual ingredient.

    +
    +
    +
    +

    3.5. What is redaction and how does it work?

    +
    +

    Redaction is the process of permanently removing information - in the world of C2PA it specifically refers to removing assertions.

    +
    +
    +

    For example, if a human rights organization wishes to remove from an image assertions about the photographer, it can do so via the redaction process. In addition, they could, at the same time, add more information about the time and location of where the image was taken. The act of redaction (and possibly adding addition information) becomes part of the provenance of the asset.

    +
    +
    +
    +

    3.6. TODO

    +
    + + + + + +
    + + +
    +

    Some of the additional areas that information will be provide about include: +- Synthetic content +- Privacy +- Guarantees C2PA is providing the consumer +- Who can be / Process of becoming a signer (signing entities) +- Discussion of how provenance does not have to include everything from the origin to current due to the Trust Model.

    +
    +
    +
    +
    +
    +
    +
    +

    4. Use-case Examples

    +
    +
    +

    The following is a non-exhaustive list of potential and general use-cases of the C2PA Specifications. Some of these are taken from, or built upon, the use-cases developed within the Project Origin Alliance and the Content Authenticity Initiative (CAI) frameworks. Each use-case wil l be described using some generic personas to help make the flow clear.

    +
    +
    +

    For technical use-case examples, see [Non-normative guidelines].

    +
    +
    +

    4.1. Helping consumers check the provenance of the media they are consuming

    +
    +

    Alice sends a video to a friend, Bob. The video includes text with alarming and controversial allegations. Bob immediately seeks confirmation of its validity, starting with its provenance.

    +
    +
    +

    The video that Alice sent contains C2PA provenance. With a C2PA-enabled application, Bob is able to establish that this video has been validated as being published by an organisation he can trust and is held in public high regard.

    +
    +
    +
    +

    4.2. Enhancing clarity around provenance and edits for journalistic work

    +
    +

    A photojournalist uses a C2PA-enabled capture device during a newsworthy event they are covering. The assets are then brought into a C2PA-enabled editing application, and after editing it, they are sent to a photo editor. The editor makes additional edits also using a C2PA-enabled application. The finalized asset is moved into the content management system of a news organization, which is also C2PA-enabled, before posting the asset to social media.

    +
    +
    +
    +

    4.3. Offering publishers opportunities to improve their brand value

    +
    +

    A news publisher is concerned about standards of public comprehension and brand value of its publications which it makes available online through a number of social media platforms. To improve audience confidence about their content, it wishes to provide a means for the audience to verify the content that originated through its output.

    +
    +
    +

    For content that is consumed without any C2PA provenance, the publisher hopes that the consumer will take extra steps to verify the provenance and authenticity of the asset, instead of immediately attributing it to the site on which it is published.

    +
    +
    +
    +

    4.4. Providing quality data for indexer / platform content decisions

    +
    +

    A news video is posted to a social media platform. By utilizing the C2PA-enabled provenance in the video, the social media platform is able to verify that it came from the same source that posted it.

    +
    +
    +
    +

    4.5. Assisting 'Intelligence' investigators to confirm provenance and integrity of media

    +
    +

    An individual in a news/other context using open-source intelligence techniques (OSINT) can use the presence of C2PA provenance in assets to better confirm the history and integrity of media. Additionally, an individual may use a [decoupled binding database] to re-correlate relevant media to its C2PA provenance.

    +
    +
    +
    +

    4.6. Enhance the evidentiary value of critical footage

    +
    +

    A human rights defender manages to capture footage containing C2PA-enabled provenance of police violence during a protest. The human rights defender sends the footage to a human rights organization that verifies that the asset meets video-as-evidence criteria. The human rights organization redacts information about the defender using a C2PA-enabled editing application in order to protect their identity. The C2PA-verified asset is then used to improve the chances of that footage being admissible in court proceedings.

    +
    +
    +
    +

    4.7. Enforcing disclaimer laws on retouched/edited images

    +
    +

    To prevent dangerous stereotypes of ideal bodies, a government enacts a law that requires advertisers and social media influencers to specify that their image has been edited if any aspect of a body’s size, shape or skin has been altered. By having their C2PA-enabled editing application add information about each action performed, they can easily comply and the government can easily confirm.

    +
    +
    +
    +
    +
    +

    5. Stakeholder Feedback

    +
    +
    + + + + + +
    + + +
    +

    Implementers and other stakeholders may already have publicly stated positions on this work. They will be listed here with links to evidence as appropriate.

    +
    +
    +
    +
    +
    +
    +

    6. References

    +
    +
    + + + + + +
    + + +
    +

    Any additional documents, articles, books, etc. that would be useful to read to get a better understanding of the work of the C2PA will go here.

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + +
    + + + + + + + + diff --git a/build/site/specifications/1.2/explainer/_attachments/Explainer.pdf b/build/site/specifications/1.2/explainer/_attachments/Explainer.pdf new file mode 100644 index 0000000..2f3d8cd Binary files /dev/null and b/build/site/specifications/1.2/explainer/_attachments/Explainer.pdf differ diff --git a/build/site/specifications/1.2/explainer/_images/CCby4.png b/build/site/specifications/1.2/explainer/_images/CCby4.png new file mode 100644 index 0000000..cf59608 Binary files /dev/null and b/build/site/specifications/1.2/explainer/_images/CCby4.png differ diff --git a/build/site/specifications/1.2/explainer/_images/c2pa-hero.svg b/build/site/specifications/1.2/explainer/_images/c2pa-hero.svg new file mode 100644 index 0000000..83b2aef --- /dev/null +++ b/build/site/specifications/1.2/explainer/_images/c2pa-hero.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/build/site/specifications/1.2/guidance/Guidance.html b/build/site/specifications/1.2/guidance/Guidance.html new file mode 100644 index 0000000..bdf951b --- /dev/null +++ b/build/site/specifications/1.2/guidance/Guidance.html @@ -0,0 +1,1058 @@ + + + + + + C2PA Implementation Guidance :: C2PA Specifications + + + + + + + + +
    + +
    +
    + +
    + +
    + +
    +

    C2PA Implementation Guidance

    + +
    +
    +
    +
    +
    +
    +Creative Commons License +
    +
    + +
    +
    + +
    +
    +
    +

    1. Introduction

    +
    +
    +

    1.1. Overview

    +
    +

    The Coalition for Content Provenance and Authenticity (C2PA) has developed their technical specification for providing content provenance and authenticity. It is designed to enable global, opt-in, adoption of digital provenance techniques through the creation of a rich ecosystem of digital provenance enabled applications for a wide range of individuals and organizations while meeting appropriate security requirements.

    +
    +
    +

    The specification has been, and continues to be, informed by scenarios, workflows and requirements gathered from industry experts and partner organizations. However many of these requirements are not normative in nature or may differ between organizations or workflows - in those cases it is important to provide non-normative guidance to implementers - which is the goal of this document.

    +
    +
    +
    +

    1.2. Scope

    +
    +

    This guidance document describes non-normative technical aspects of the C2PA architecture including construction and consumption of the C2PA manifest and its components and the digital signature technology for enabling tamper-evidence as well as establishing trust. It will also address areas where implementers can extend the C2PA architecture and its ecosystem.

    +
    +
    +

    The C2PA also created their Guiding Principles that address areas such as respecting privacy and personal control of data with a critical eye toward potential abuse and misuse. This guidance document also will help implementers to understand how these concerns should be addressed in their implementations.

    +
    +
    +

    One area of guidance that is not covered in this document is that of User Experience, as that is covered in a [separate document].

    +
    +
    +
    +
    +
    +

    2. How to use this document

    +
    +
    +

    Rather than reading this document from beginning to end, it is recommended that as an implementer is first designing each aspect of their solution, they should review the relevant section of this document to ensure that they take advantage of the guidance provided.

    +
    +
    +
    +
    +

    3. Architecture

    +
    +
    +

    3.1. Assertions

    +
    +

    3.1.1. Description

    +
    +

    Each of the actors in the system that creates or processes an asset will produce one or more assertions about when, where, and how the asset was originated or transformed. An assertion is labelled data which represents a statement made by an actor about an asset. The assertion’s label is defined either by the C2PA specification or an external entity.

    +
    +
    +
    +

    3.1.2. Encryption of Assertions

    +
    +

    The set of assertions, their associated labels, and its serialization (i.e., CBOR or JSON-LD) are defined in the C2PA specification. In order to change any of these, such as the data/schema or its serialization, it is necessary to use a new label so that the new information can be clearly identified as different from the original.

    +
    +
    +

    A use case for creating variants of existing assertions would be to encrypt them to prevent access to those not possessing the necessary decryption key. This might be for privacy protection or the establishment of a more secure end-to-end workflow.

    +
    +
    +

    For example, if an implementation from Litware.com wished to encrypt the std.exif assertion to hide the information about the capture device, they could create the new assertion label as com.litware.exif or perhaps even com.litware.encrypted-1 if they wanted to even hide what was encrypted.

    +
    +
    + + + + + +
    + + +
    Items for future guidance
    +
    +

    Guidance is required around which assertions should be chosen and when by different types of implementations.

    +
    +
    +
    +
    +
    +
    +

    3.2. Claim

    +
    + + + + + +
    + + +
    Items for future guidance
    + +
    +
    +
    +
    +

    3.3. Manifest

    +
    +

    3.3.1. General

    +
    +

    A C2PA claim generator adds a new manifest to the existing asset’s manifest store to reflect whatever changes it has made. If anything needs to be removed, then the specific assertions are redacted and the redaction reflected in the new manifest.

    +
    +
    +
    +

    3.3.2. Frequency of Creation

    +
    +

    The C2PA recommends that a manifest be created for an asset when a significant event in the lifecycle of the asset takes place, such as its initial creation or an "Export" operation from an editing tool. As the creation of a manifest is not a lightweight operation, due to the need to digitally sign the claim as well as potentially retrieve credentials from online services, it is recommended to do it as infrequently as possible. Additionally, the fewer the manifests, the easier validation will be.

    +
    +
    +
    +

    3.3.3. Standard vs. Update Manifests

    +
    +

    Normally, an asset’s digital content will be modified between "significant events". As such, a standard manifest which includes hard bindings between that digital content and the manifest are provided. However, there are times in an asset’s life where a change is required to the C2PA manifest but the digital content is not impacted. For example, the addition of some new assertion or even the redaction of an existing assertion. In those cases, an update manifest is used.

    +
    +
    +
    +

    3.3.4. Manifest Repositories

    +
    +

    The C2PA architecture supports manifest stores external to the asset they are associated with, in the form of a manifest repository. This is useful when working with a file format that does not support embedding (i.e., text or XML) or when storing the manifest store separately improves workflows (e.g., searching on manifest data in a CMS).

    +
    +
    +

    When using a cloud service to manage the manifest repository, and serving the manifest stores via http Link headers (as described in the C2PA specification), having the manifest store available at the same origin as the asset is recommended as it would reduce requirements on Cross-Origin Resource Sharing (CORS). However, it is worth noting that doing so does not provide any additional privacy or security protection of either the manifest store or the asset.

    +
    +
    +

    To mitigate risks to user privacy, we recommend manifest repository service providers to allow content creators to retain the ability to redact or remove content from the repository, or to determine which manifest may be publicly queried. For example, a content creator may want to include an information-rich manifest for internal cataloguing purposes, and an updated manifest with redacted information for public distribution.

    +
    +
    +
    +

    3.3.5. Can an application remove an existing manifest store?

    +
    +

    Completely removing an embedded manifest store from an asset is not recommended, unless the manifest store is being "externalized" - meaning that an embedded manifest store is replaced by a URI to an external location. This would be useful in scenarios where the size of assets is important but continues to support access to the asset’s provenance.

    +
    +
    + + + + + +
    + + +
    +

    Implementation of the C2PA specification is to be evaluated in the context of the current industry practices around stripping of metadata. Such action is encouraged by both MPEG and JPEG WGs. In addition many publishers including the NYT are stripping image metadata https://blog.imatag.com/state-of-image-metadata-in-news-sites-2019-update.

    +
    +
    +
    +
    +
    +

    3.3.6. Can an application replace an existing manifest store?

    +
    +

    Replacing an existing manifest store with a different manifest store is not recommended since doing so would completely change the provenance of an asset. However, there are some use cases where it could be appropriate. For example, a publisher may wish to remove all details about the capture and edit of an image and leave only their own publishing information.

    +
    +
    +
    +

    3.3.7. Manifests for existing media

    +
    +

    It may not always be possible (or practical) to embed a C2PA Manifest Store in an asset such as in the case of adding provenance information to assets that were created prior to the existence of C2PA. By creating an associated manifest repository for the asset and exposing its location via the methods described here, all assets can have provenance, no matter their age.

    +
    +
    +
    +
    +

    3.4. Ingredients

    +
    +

    Ingredients are the key to the establishment of the provenance of an asset, by serving as a listing of what other assets went into the creation of the current asset. Each ingredient that is used can itself contain its provenance, thus creating a rich provenance for the current asset and all of its ingredients.

    +
    +
    +

    Each ingredient can either be documented as the parentOf the current asset or a componentOf that asset. The value of parentOf is used in the common case where one asset is opened in an editing application, modified, and then saved or exported as another asset. That original version is the parentOf the final (now current) asset. Alternatively, when one asset is created from a series of other assets (such as audio and video clips), those sources are identified as componentOf ingredients.

    +
    +
    +

    3.4.1. Redaction of Ingredient Assertions

    +
    + + + + + +
    + + +
    Items for future guidance
    + +
    +
    +
    +
    +
    +

    3.5. Use of W3C Verifiable Credentials

    +
    +

    The C2PA specification supports the inclusion of W3C Verifiable Credentials(VC) into a C2PA Manifest to represent a human or organisation that may be directly associated with an asset in some way, such as the author or publisher. VCs on their own do not infer an association; this is done via credentials links in the various places they are used, such as the stds.schema-org.CreativeWork assertion, or in Assertion Metadata. The actual VC’s are stored as part of the "VC Store".

    +
    +
    +

    The core "identity" information is present in the VC’s credentialSubject property, which is required but the VC may also contain any other property that the issuer of the VC wishes to include. All of these properties are then signed and the signing information included as the proof of the VC. However, as mentioned, in the VC data model specification (4.7), "there are multiple viable proof mechanisms, and this specification does not standardize nor recommend any single proof mechanism for use with verifiable credentials." Since there is no standardized approach to validation of proofs, the C2PA specification does not require that VC’s be validated as part of the C2PA Manifest validation process.

    +
    +
    +
    +
    +
    +

    4. Guidance on the use of Content Bindings

    +
    +
    +

    4.1. Guidance on Hard Bindings

    +
    +

    4.1.1. General

    +
    +

    Every C2PA Manifest is required to have a hard binding to its associated digital asset. Use of hard bindings prevents collision-based attacks associated with soft bindings described below.

    +
    +
    +

    Selection of the specific hashing algorithm to use for a hard binding should be made based on the requirements of the workflow. In the absence of some compelling reason to do otherwise, it is recommended to use SHA-256.

    +
    +
    +
    +

    4.1.2. Byte Range Bindings

    +
    +

    The simplest type of hard binding that can be used to detect tampering is a cryptographic hashing algorithm over some or all of the bytes of an asset as described in the core specification. Traditionally, this type of binding is done over an inclusive list of byte ranges of the asset. However, a number of attacks on an inclusion list-based approach were identified and it was determined that they are prevented by the use of exclusions lists. These vulnerabilities would have allowed content to be added to an asset that altered the digital content without altering the hard bindings.

    +
    +
    +
    +

    4.1.3. ISO BMFF Bindings

    +
    +

    ISO BMFF-based assets utilize a well defined box structure. Accordingly, the provenance content binding for these assets needs to be expressed in terms of that box structure.

    +
    +
    +

    There are two approaches which were considered for integrating provenance into the ISO BMFF boxes - either by defining which boxes and/or box components should be included in the hash, or conversely, which should be excluded.

    +
    +
    +

    A number of attacks on an inclusion list-based approach were identified and it was determined that they are prevented by the use of exclusions lists. These vulnerabilities would have allowed content to be added to an ISO BMFF asset that altered the audio/video presentation without altering the hard binding. This is why C2PA ISO BMFF hard bindings are integrated with the box structure using Exclusion Lists.

    +
    +
    +
    4.1.3.1. ISO BMFF Binding Exclusion Lists
    +
    +

    Typically ISO BMFF content need only include the mandatory exclusions required by the C2PA specification. These should be sufficient for the most common brands registered with the MP4 Registry Authority. However, careful consideration should be given to determine if addition boxes should be included for your ISO BMFF brand of asset.

    +
    +
    +

    Do not add a box to the exclusion list if:

    +
    +
    +
      +
    • +

      the modification of the box can alter the audio-video presentation in any way.

      +
    • +
    • +

      the box declares content external to the asset which you wish to be tamper evident.

      +
    • +
    +
    +
    +
    +
    +

    4.1.4. Hashing Assertions

    + +
    +
    +
    +

    4.2. Guidance on use of Soft Bindings

    +
    +

    4.2.1. General

    +
    +

    Asset metadata (including any manifest present) may be routinely removed or corrupted by legacy or non-C2PA capable platforms during distribution. This is common, for example, on social media platforms that display asset renditions (e.g. altering the resolution, form factor or quality of the digital content) that do not have the appropriate C2PA Manifests declaring those modifications. Whilst these renditions may not create user perceptible change, they nevertheless change the underlying binary representation of the digital content.

    +
    +
    +

    Soft bindings provide a means for identifying manifests that have become 'decoupled' from their associated assets in these circumstances.

    +
    +
    +

    Examples of soft bindings are content fingerprints (such as perceptual hashes) computed from the digital content, or watermarks embedded within the digital content.

    +
    +
    +
    +

    4.2.2. Manifest Repositories

    +
    +

    Consider a data store or repository into which manifests may be stored. A content creator may, at the time of publishing an asset, opt in to the additional storage of that asset’s manifest into the manifest repository. For this workflow, the manifest contains at least one soft binding - for example, a perceptual hash of the digital content.

    +
    +
    +

    Soft bindings may be used to identify manifests that have become decoupled from their associated assets. When a consumer encounters an asset with no manifest, but would like information on the asset’s provenance, they may compute a soft binding and use it to query the manifest repository. The manifest repository would return any manifests that match that soft binding, for subsequent validation.

    +
    +
    +

    An alternative application of soft bindings is to mitigate the threat whereby an attacker substitutes the manifest within an asset with another valid manifest in an attempt to explain that asset with false provenance. In circumstances where a consumer wishes for further information on the asset’s provenance, a similar query may be made using the soft binding to return alternative manifests within the repository for the consumer’s consideration. Information within the returned manifests (such as timestamps or digital signatures) may inform subsequent trust decisions made by the consumer on that asset.

    +
    +
    +
    +

    4.2.3. Illustrative Scenarios for the use of Soft Bindings

    +
    +
      +
    1. +

      Recovery from stripping of metadata

      +
      +

      Alice is a photojournalist, and captures a photo of an important event, editing it to enhance visibility of some of the content. Alice’s camera device is C2PA capable, as is her image editing tool, and so a C2PA Manifest is added to document the capture and editing of her photo. The C2PA Manifest, added by the editing tool, is signed by Alice’s personal key. Bob works for Acme Corp, a news publisher, who wishes to license Alice’s photo for their publication. Bob decides to trust the content from Alice due to the presence of a C2PA Manifest documenting its provenance. Bob incorporates the photo into a composed image for his publication, using a C2PA capable editing tool. The C2PA Manifest is signed by Acme Corp. A soft binding assertion is computed by Acme Corp and added to the manifest prior to signing. A copy of the manifest is stored within a manifest repository maintained by a consortium of news providers. Bob publishes the photo and it is soon redistributed around social media.

      +
      +
      +

      Charlie is a news consumer and member of the general public. Charlie views a rendition of the photo on social media. The social media platform is not C2PA capable and no C2PA Manifest is contained within the rendition. Furthermore, the rendition of the photo has different resolution / form factor and changed by the social media platform.

      +
      +
      +

      Charlie wants to know about the provenance of the photo, since it documents an important event. Charlie right-clicks and submits the photo via a browser plug-in to a look-up service operated by a federation of news organisations, of which Acme Corp is a member. Charlie’s browser software computes the soft binding of the photo and send it to that service. Charlie is directed to a web page generated by the service showing matching assets. Charlie visually verifies that the retrieved asset matches the photo he is interested in, and views the manifest. Charlie uses the information in the manifest to help make an informed trust decision based on the provenance of the photo.

      +
      +
    2. +
    3. +

      Recovery from adversarial substitution of manifest

      +
      +

      Alice is a citizen journalist, and captures a video of major civil unrest using a C2PA capable device, and edits it using C2PA capable editing software. After signing the manifest in her video, a copy of the manifest is stored within a manifest repository maintained by a consortium of news providers. The manifest contains both a hard and a soft binding. Several years pass.

      +
      +
      +

      Mallory wishes to use Alice’s video to substantiate his story about a recent civil unrest. Mallory strips the C2PA Manifest from Alice’s video and substitutes his own manifest. The manifest is signed and the video asset is distributed online.

      +
      +
      +

      Bob is a news producer who receives Mallory’s video. Bob suspects the video is fake news. Bob computes a soft binding of the video and submits it to a provenance service of which his organization is a member. The service retrieves the manifest associated with Alice’s video. Bob visually verifies the retrieved manifest matches the video (it includes a thumbnail) and validates the manifest. Bob notices that Alice’s manifest contains signed assertions with a timestamp earlier than those of Mallory’s video. Bob uses knowledge of this previous existing manifest to help make a more informed trust decision on whether to trust the provenance of Mallory’s video. Bob concludes not to trust Mallory’s video, since an earlier manifest explains the video with an alternative provenance trail.

      +
      +
    4. +
    5. +

      Preserving provenance through non-C2PA capable toolchains

      +
      +

      Acme Corp maintains a content production pipeline where some stages are non-C2PA capable. Bob receives a photograph from freelance photographer Alice, containing a valid C2PA Manifest. Bob’s software inserts into the digital content of the image a watermark containing a unique identifier, and records the unique identifier as a soft binding assertion in the manifest. The manifest is placed within a manifest repository maintained internally by Acme Corp. The content passes through legacy content production processes that strip the C2PA Manifest. The final stages of production are C2PA compliant. The watermark is read from the image and submitted as a query to the manifest repository run internally by Acme Corp. After passing through the non-C2PA tools, the manifest is automatically matched using the embedded watermark, and is included as an ingredient in a new manifest, which documents that actions have been performed on the content prior to entering the C2PA capable final stage of the pipeline. The manifest is embedded into the asset in the usual way. The content is published and provenance of the image may be traced back to Alice by end consumers of the content.

      +
      +
    6. +
    +
    +
    +
    +

    4.2.4. Implementation guidance

    +
    +

    Soft bindings are not guaranteed to be exact, and so care should be taken in their use. Consider perceptual hashing; a common form of soft binding algorithm. By design, multiple renditions of the same digital content may generate the same soft binding. However different digital content, or renditions thereof, may generate the same soft binding either in error or due to attacks on the hashing function (for example, adversarial attacks on machine learning models). Therefore we make the following design recommendation on the implementation of soft bindings in C2PA.

    +
    +
    +
      +
    1. +

      Soft bindings must not be substituted for hard bindings in order to bind claims within a manifest.

      +
    2. +
    3. +

      The matches made using a soft binding must be interactively verified via human-in-the-loop checking. For example, a thumbnail of an image stored within the manifest might be displayed to aid visual verification of the match made using a soft binding.

      +
    4. +
    5. +

      Hard bindings (cryptographic hashes) may be used as an alternative to soft bindings, to query manifests within a manifest repository. However this method will fail if the digital content has been modified (for example, is an asset rendition).

      +
    6. +
    7. +

      We recommend that services provided for the lookup of manifests using hard or soft bindings advertise the types of binding that may be used as query, using the unique identifier of that binding (per the hard or soft binding registry).

      +
    8. +
    9. +

      We recommend that claim generators that add soft binding assertions to an asset’s manifest do so as an opt-in addition and not make it mandatory.

      +
    10. +
    +
    +
    +
    +

    4.2.5. Trust and Privacy Considerations

    +
    +

    To mitigate risks to user privacy, we recommend that the consumer should be informed explicitly (for example, via opt in) to the querying of the manifest repository. For example, a consumer may interactively initiate a query for an asset containing no manifest in order to recover provenance information about that asset.

    +
    +
    +

    We also recommend that content creators be informed of the trade offs involved in using manifest repositories that allow for asset link-up with soft bindings; that is, on the one hand, identifying manifests that have become 'decoupled' from their associated assets, while on the other hand, privacy risks that may result from a soft binding link-up to an earlier manifest with, for example, redacted information.

    +
    +
    +

    To mitigate risks to user privacy and to preserve bandwidth, we recommend that the soft binding used to query the manifest repository is computed on the client side to avoid transmission of query asset to the lookup service.

    +
    +
    +

    It is unlikely that a single centralized manifest repository will emerge for all content. Rather it is anticipated that decentralized model will evolve in which multiple federated manifest repositories might emerge for different industry verticals, for example a coalition of news broadcasters might maintain a federated service for soft binding lookup based upon their own manifest repositories.

    +
    +
    +

    To promote the interoperability of independent services that query manifest repositories, we recommend that a standard communication protocol be established for clients to send queries to the soft binding lookup services and for returning manifests to clients.

    +
    +
    +

    Trust in the lookup process is derived from trust in the integrity of the manifest repository. It may be desirable to use a decentralized, immutable data technology, such as a distributed ledger or blockchain, to underwrite the integrity of the manifest repository.

    +
    +
    +
    +
    +
    +
    +

    5. Trust

    +
    +
    +

    5.1. Cryptography

    +
    +

    C2PA prescribes cryptographic algorithms permitted for hashing (or message digest), and digital signatures both of manifests and of signing credentials. This list contains algorithms instantiated at multiple different security levels. Unless there are particular application needs or policy requirements that call for a higher security level, C2PA recommends using the following algorithms, key types, and key sizes.

    +
    +
    +

    For hashing, C2PA recommends using SHA2-256. Standalone hashes are used in multiple places, including hard bindings of content, lists of assertions in claims, and in hashed-uri and hashed-uri-ext structures.

    +
    +
    +

    When generating a key pair for certification in a signing credential, C2PA recommends an elliptic curve cryptography (ECC) key pair on the P-256 elliptic curve or the X25519 elliptic curve. If using ECC is not desired, as an alternate, C2PA recommends an RSA key pair with a modulus length of 2048 bits.

    +
    +
    +

    When choosing a signature algorithm for signing manifests, C2PA recommends: +* ES256 (ECDSA with SHA-256) when using an ECC key pair on the P-256, P-384, or P-521 elliptic curves, +* EdDSA (Ed25519) when using an ECC key pair on the X25519 elliptic curve, or +* PS256 (RSASSA-PSS using SHA-256 and MGF1 with SHA-256) when using an RSA key pair.

    +
    +
    +
    +

    5.2. Digital Signatures

    +
    +

    5.2.1. Revocation Information and Time-stamps

    +
    +

    C2PA strongly recommends that claim generators retrieve and attach time-stamps and credential freshness information at signing time. This information should be added into the COSE signature as described in the specification.

    +
    +
    + + + + + +
    + + +Attaching a time-stamp and freshness information to the signature allows validators to conclude the manifest is still valid a) even if the signing credential has since expired or was revoked after signing time and b) without the need of an online query. +
    +
    +
    +
    +

    5.2.2. Protecting claim signing keys

    +
    +

    In practice, C2PA claim signing keys will be issued to systems that perform claim signing operations. These systems may make these operations available to end users and/or be deployed to user-owned platforms (e.g., mobile phones). Issuance or disclosure of claim signing keys to malicious actors enables attackers to create claim signatures on arbitrary assets using the compromised identity. The resulting manifests are valid in terms of the C2PA specification, but effectively allow for spoofing provenance.

    +
    +
    +

    It is therefore important that systems that manage C2PA claim signing keys adhere to security and key management best practices. This includes leveraging platform-specific features (e.g., hardware security modules and cloud key management services), minimizing key reuse, and revoking keys when compromise is suspected. For more information on key management, see the NIST Key Management Guidelines.

    +
    +
    +
    5.2.2.1. Securing claim generation and signing operations
    +
    +

    Some C2PA claim generation and signing systems may be exposed to untrusted users. Exploitation or misuse of these systems may allow attackers to create claim signatures on arbitrary assets using identities provided by the system. The resulting manifests are valid in terms of the C2PA specification, but effectively allow for spoofing provenance. The impact of such an attack may be amplified if identities are shared between users, and/or if the attack goes undetected for an extended period of time.

    +
    +
    +

    C2PA claim generation and signing systems should consider industry best practices for information security, secure development and operation, and anti-abuse practices, including leveraging available platform-specific features for deployment (e.g., Android SafetyNet, Apple DeviceCheck and AppAttest).

    +
    +
    +
    +
    +

    5.2.3. Verifying Suitability of Signing Credentials

    +
    +

    If possible, a claim generator should attempt to validate that the signing credential used is suitable for the expected audience of validators for the asset. C2PA currently only supports X.509 certificates as signing credentials. A claim generator should be configured with the same trust anchor list and Extended Key Usage (EKU) list as the validators. Then, at signing time, the claim generator should:

    +
    +
    +
      +
    1. +

      Validate that the certificate fulfills all the requirements for C2PA signing credentials as described Certificate Profile section of the Trust Model chapter.

      +
    2. +
    3. +

      Validate that a chain of trust can be computed from the signing certificate to an entry in the trust anchor list using the contents of the x5chain COSE header, following the procedure in RFC 5280 section 6. This header will include both the signing certificate and any intermediate certification authorities required to build a trust chain to the trust anchor.

      +
    4. +
    5. +

      Validate that the signing certificate is valid for one of the Extended Key Usages listed.

      +
    6. +
    +
    +
    +

    If the claim generator is not configured with the trust anchor list and EKU list as the validators, it should not attempt any validation and sign with the provided credential.

    +
    +
    +

    If it is so configured and validation fails, the claim generator should warn its user with an explanation of the problem, but should allow the user to choose to proceed with signing. Users may choose to sign in situations where they know their audience has a different trust anchor or EKU list configuration.

    +
    +
    +
    +

    5.2.4. Trust and Privacy Considerations

    +
    +

    C2PA claim generation and signing systems should consider industry best practices for addressing common privacy concerns of its users.

    +
    +
    +
    +
    +

    5.3. Trust Model

    +
    +

    5.3.1. Trust Lists

    +
    +

    The C2PA does not mandate the use of any specific "list of certificates or CAs that can be used to verify the trustworthiness of the signer of a manifest". There exists a variety of complexities in choosing the membership for such a list, and implementers should understand them prior to the creation of their list. The C2PA will continue to improve their guidance in this matter as the ecosystem grows.

    +
    +
    +

    Although consumers should be able to modify the configuration of their validators, implementers should discourage consumers from adding or removing individual trust anchors. If appropriate for the application, implementers should provide users with a selection of lists they can choose from. Certain applications may have only one list of trust anchors, and others may have more than one list of trust anchors.

    +
    +
    +
    +

    5.3.2. Use of the Private Credential Store (also known as the "address book")

    +
    +

    The identity of signers will typically be established by identity providers through the use of trust lists, as there is no expectation that signers and validators will be directly known to one another. There are exceptions, however, where two users who do know one another will want to be able to validate assets signed by the other. For example, a journalist working for a well-known media organization may have a signing credential for their organization, but still wish to receive C2PA-protected assets from sources who are otherwise anonymous. The source’s validator may already trust the journalist’s credential based on its issuance from a trusted identity provider, but the source almost certainly will not have such a credential. In this case, the source can generate their own signing credential. Such a credential would not be trusted in general, as it is not issued by a recognized identity provider, but in this special case it can be communicated to the journalist, who can elect to add it to their private credential store.

    +
    +
    +

    The private credential store is only usable for the purpose of directly trusting assets signed by a credential that would not otherwise be accepted. Credentials in the private credential store cannot act as identity providers and issue credentials for others.

    +
    +
    +

    Implementers who want to provide this functionality should allow such a consumer to generate a credential with a simple user interface. In the case of X.509 certificates, this takes the form of a self-signed certificate. Implementers should follow the Certificate Profile in the specification when generating the certificate. Consumers can have the option to provide personally identifying information to be placed in the certificate if desired, but should not be required to do so; where such fields are required in the credential, the implementation can place non-identifying default values. Implementers should also allow the consumer to choose a validity period for the certificate after which it will become invalid, to suit the expected length of time the credential will be required. C2PA recommends a suggested default of one year.

    +
    +
    +

    Implementers should also consumers to import and export these credentials, but stress that importing such a credential should only be permitted if the consumer has personal knowledge the credential originates from the known source. Consumers should also be directed to remove credentials when assets signed with them no longer need to be validated, or the consumer learns the signing credential has been compromised or lost.

    +
    +
    +

    Implementers should enforce time validity periods on credentials in the private credential store, and either warn about or reject manifests signed by credentials that have expired. Implementers may provide functionality to time-stamp a single asset or otherwise mark it as requiring preservation, and continue to validate that particular manifest when needed.

    +
    +
    +

    Consumers should only accept credentials from others with whom they have an existing relationship and an out-of-band reason to believe the credential belongs to the intended subject.

    +
    +
    +
    +
    +
    +
    +

    6. Validation

    +
    +
    +

    6.1. Validation security practices

    +
    +

    Special care should be taken when implementing validators. Like other software that processes untrusted input, validators may be the target of memory safety attacks, parser attacks, request forgery attacks against adjacent systems (e.g., when retrieving remote content or decoupled manifests), information leaks (e.g., via OCSP queries), denial of service attacks, and so on. Thus, it is important that these validators adhere to secure development and operations practices associated with their respective execution environment.

    +
    +
    +

    A manifest consumer that is performing validation (e.g., a web browser) may detect and mitigate attempted compromise of C2PA manifests or even the complete removal of C2PA manifests. It is recommended that manifest consumers consider forthcoming C2PA User Experience guidance, retrieval of decoupled manifests via soft bindings when appropriate, and other forthcoming C2PA recommendations to mitigate the impact of these types of attacks.

    +
    +
    +
    +

    6.2. Validation of Ingredient manifests

    +
    +

    As described in the Validation section of the specification, "The validator may optionally recursively validate the ingredient’s ingredients". To do so, the implementation resolves each ingredient’s url field to find the next ingredient in the chain. It is possible that an infinite recursion situation could occur during this resolution process (whether constructed on purpose as a DoS attack or not). Implementations should be careful to check for such situations when performing this recursive resolution of ingredients.

    +
    +
    +
    +

    6.3. Data validation

    +
    +

    The C2PA Manifest consists of data that has been serialized into either CBOR or JSON-LD. The schemas (in CDDL and JSON Schema, respectively) have been published as part of the C2PA specification website. However, those schemas exist to help implementers create valid data to improve interoperability - they should not be used as part of the standard C2PA validation process.

    +
    +
    + + + + + +
    + + +A C2PA Validator can choose to offer schema validation as an "extra", but the results of that validation would not effect the validity of the C2PA Manifest. +
    +
    +
    +
    +
    +
    +

    7. Additional Guidance

    +
    +
    +

    7.1. Distributed Ledger Technology (DLT) and C2PA

    +
    +

    Distributed Ledger Technologies (DLTs) enable multiple parties to collaborate to produce a tamper-evident, distributed data store.

    +
    +
    +

    DLT enables a ledger to be shared across a set of DLT nodes and synchronized between the DLT nodes using a consensus mechanism.

    +
    +
    +

    In such a distributed system, control is distributed among the persons or organizations participating in the operation of the system (ISO 22739:2020).

    +
    +
    +

    Data stored on a DLT is immutable; once committed to a DLT, data cannot be changed or deleted. The ordering of data stored within a DLT is also immutable.

    +
    +
    +

    C2PA manifests store data on asset provenance that in most cases should similarly be immutable. However redaction mechanisms exist to remove past assertion data from a manifest. For example, to ensure the privacy of a creator, removing identity data from the assertion store and updating the manifest to record the event of that redaction. Other circumstances that may involve redaction could be the removal of personally identifiable information (PII) to comply with relevant legislation on data protection. Whilst the C2PA redaction mechanism provides for the deletion of data, the prior existence of that data and the act of redaction will be visible to the manifest consumer.

    +
    +
    + + + + + +
    + + +
    +

    For this reason we make a general recommendation that C2PA manifests should not be stored on DLTs, since the data immutability guarantees of DLTs prevent redaction of manifests stored within them.

    +
    +
    +

    DLTs may, however, be used to underwrite the integrity of a manifest repository containing C2PA manifests (for example a cloud database). For example, a hash of a manifest, or other cryptographic proof, may be stored immutably within a DLT. This may be used to prove that the manifest has not been altered, or deleted (non-repudiation).

    +
    +
    +
    +
    +

    We outline several possible ways that DLT may be used to implement or instantiate aspects of the C2PA specification:

    +
    +
    +
      +
    1. +

      Underwriting the integrity of manifest respositories

      +
      +

      Consider the case of a manifest repository, where manifests might be stored decoupled from the digital content they describe. Such a manifest repository may be used to store manifests and query those manifests via a lookup service using either a hard or a soft binding, for example to recover provenance for assets where manifests have been removed or corrupted.

      +
      +
      +

      The user of such a manifest repository trusts the governance of that manifest repository operator not to manipulate or remove manifests stored within. In other words, trust is centralized within the provider of the manifest repository. A DLT may be used to store hashes of manifests as they are committed to the manifest repository to assure consumers of the integrity of that manifest repository without the need to trust the manifest repository provider. In other words the trust placed in the centralized maintainer of the manifest repository is replaced by trust in the decentralized governance of the DLT.

      +
      +
      +

      Such an implementation does not guarantee the persistence or availability of the manifest repository.

      +
      +
      + + + + + +
      + + +In order to adhere to the C2PA Guiding Principles on Cost Burden and Performance, it is suggested that such proofs are rolled up in batches per a Layer 2 DLT solution in order to scale, and that an efficient consensus mechanism for DLT (such as proof of stake, or proof of history) is used to mitigate adverse cost or energy usage. +
      +
      +
    2. +
    3. +

      Decentralized and self-sovereign identity

      +
      +

      A separate use of DLT within the scope of C2PA might include the use of self-sovereign identity (SSI) schemes based upon DLT storage of DIDs. C2PA is agnostic to the provider of identity data and provides for the concept of an actor which is representable either via a simple identifier (such as a DID) or via a W3C Verifiable Credential (which could include a DID). In some use cases it may be preferable for users to create their own identity wallets rather than rely on a centralized or third party identity provider. In such cases DIDs stored on a DLT may provide a decentralized mechanism to ground trust in the public keys of SSI wallet holders.

      +
      +
    4. +
    5. +

      Decentralized claim signing

      +
      +

      A smart contract is a computer program stored in a DLT system wherein the outcome of any execution of the program is recorded on the distributed ledger (ISO 22739:2020). Smart contracts may be configurable via a tokenized consensus mechanism. For example, a smart contract that may be upgraded or configured according to a vote by holders of a particular cryptographic token. Such contracts are referred to as ‘decentralized autonomous organizations’ or DAOs. Like regular programs, a DAO may be used to store and process data and even take payments for doing so.

      +
      +
      +

      A DAO might be set up to sign claims autonomously, according to a certificate installed by its operators. This would provide a decentralized alternative to the claim signing services run by centralized organizations tied to particular geographies or legislative zones.

      +
      +
      +

      Alternatively, or in addition, a DAO might be used to set up and manage a certificate trust list. Signing of claims is grounded in public key cryptography rooted in a trust list managed by a federation of partners. Since C2PA allows for the existence of multiple such trust lists, the DLT may be leveraged to manage the trust list via a tokenized governance system. This might be attractive to content creators and consumers wishing to utilize a decentralized governance for such a list, and in turn agency over the issuance and revocation of signing certificates

      +
      +
    6. +
    7. +

      Federated lookup for soft-bindings

      +
      +

      A related application of DLT related to soft binding is in the creation of a federated lookup service for soft bindings. Soft bindings are identifiers derived from digital content that enable matching manifests to be recovered from within a manifest repository.

      +
      +
      +

      It is unlikely that a single manifest repository will exist for all manifests resolvable via soft bindings; multiple such manifest repositories are likely to emerge for any given vertical (e.g. journalism).

      +
      +
      +

      The DLT may be used to provide a decentralized list of such service endpoints, updated via a DAO offering a tokenized governance model.

      +
      +
      +

      Alternatively a DLT may be used to store directly a key-value index that maps soft bindings to the URLs of matching manifests within a manifest repository. A suitable sharding mechanism would be necessary to scale such a solution, for example maintaining different indexes for different portions of the soft binding hash space.

      +
      +
    8. +
    +
    +
    +
    +

    7.2. Digital Non-Fungible Tokens (NFTs)

    +
    +

    Digital NFTs (hereafter, NFTs) are digital tokens that represent assets - most commonly, creative works. NFTs are created and traded on distributed ledgers (DLT).

    +
    +
    +

    NFTs represent assets via an indirection (linking) mechanism. A standard ERC-721 compliant NFT links via URI to a metadata file, that in turn links via URI to an asset. Commonly these URIs incorporate a hashed component, providing cryptographic proof for the uniqueness of the linked metadata, and the URI linking to the asset from that metadata also incorporates a hashed component. For example, the URIs are commonly content IDs (CIDs) on a distributed filesystem such as the InterPlanetary File System (IPFS).

    +
    +
    +

    The provenance of NFT ownership is recorded through the immutable transaction history on the DLT (i.e. who currently owns or has owned the NFT).

    +
    +
    +

    C2PA specifies a technology for describing the provenance of an asset’s creation (who created it, what was done to it, etc.). This is distinct from the provenance of NFT ownership recorded by the DLT.

    +
    +
    +

    Much as with physical artwork, both the provenance of ownership and the provenance of creation, ascribe value to an NFT.

    +
    +
    +

    C2PA may add value to NFTs by attesting to the provenance of their linked asset’s creation, and also leverage that provenance to mitigate the threat of that asset being misappropriated.

    +
    +
    +

    It is common for valuable NFTs to copied and placed on the market anew (‘copy-minting’) by someone other than their creator, in order to misappropriate and potentially to gain reward for another creator’s work.

    +
    +
    +

    One or more C2PA assertions may be used to encode the wallet address(es) identifying the creator on the DLT(s) they intend to mint the asset on.

    +
    +
    +

    When a consumer, or a marketplace, encounters an NFT with a C2PA manifest in it, they may verify that the NFT being minted or offered for sale by a particular DLT user (identified by their wallet address) matches the identifier signed into the C2PA asset.

    +
    +
    +

    Additional checks can be made that the C2PA manifest signed to include that wallet address is known to come from a public key maintained by the content creator. This and other checks, for example on the wallet originating the minting transaction, may be used to additionally prevent spoofing or (‘sleep minting’) of NFTs.

    +
    +
    +

    NFTs may still be misappropriated by stripping metadata including the C2PA manifest from the asset, prior to minting it. This may be remediated through use of soft bindings to recover a manifest from a manifest repository, as with general metadata stripping attacks.

    +
    +
    +
    +

    7.3. Playback verification for audio/video content

    +
    + + + + + +
    + + +
    Items for future guidance
    +
    +

    A useful thing to add would be the steps a client audio/video player should perform to verify an actual content file for MP4/fMP4. This is currently being tracked as issue #518 the C2PA Specification github repo.

    +
    +
    +
    +
    +
    +

    7.4. Attribution, Rights and Licensing

    +
    +

    The standard assertions defined for use in a C2PA Manifest include opportunities to add information about the attribution, rights and licenses of the associated asset.

    +
    +
    +

    The following table shows which assertions and the specific fields thereof can be used for which type of information.

    +
    + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AssertionAttributionRightsLicensing

    Creative Work
    +(for all assets)

    author, contributor, creator

    copyrightHolder, copyrightNotice, copyrightYear

    acquireLicense, license, usageInfo

    IPTC Photo Metadata
    +(for images)

    dc:creator, plus:ImageCreator

    dc:rights, plus:CopyrightOwners, xmpRights:webStatement

    plus:Licensor

    Exif information
    +(for images)

    dc:creator

    dc:rights

    +
    +

    While adding this information to a C2PA Manifest via the standard assertions will provide a tamper-evident declaration of the information, it may also be important to include a duplicate of the information in their standard locations within assets as defined by as schema.org, IPTC or Exif standards. The reason for providing both versions is that currently existing solution won’t look for the information in the C2PA Manifest. For example, providing values for acquireLicense and license` in a Creative Work assertion will not invoke the Licensable badge in Google Images. The values would also need to be provided as structured data in the corresponding HTML page, as required by the specification of schema.org.

    +
    +
    +
    +

    7.5. GDPR

    +
    + + + + + +
    + + +
    Items for future guidance
    +
    +

    Another topic needs to be around GDPR and other related legal aspects. This is currently being tracked as issue #114 the C2PA Specification github repo.

    +
    +
    +
    +
    +
    +

    7.6. Social Media Platforms

    +
    + + + + + +
    + + +
    Items for future guidance
    +
    +

    Considering its potential reach and impact, specific guidance for implementations of C2PA technology in the context of social media will be developed, as discussed in issue #146 of the C2PA GitHub repo.

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + +
    + + + + + + + + diff --git a/build/site/specifications/1.2/guidance/_attachments/Guidance.pdf b/build/site/specifications/1.2/guidance/_attachments/Guidance.pdf new file mode 100644 index 0000000..15142ac Binary files /dev/null and b/build/site/specifications/1.2/guidance/_attachments/Guidance.pdf differ diff --git a/build/site/specifications/1.2/guidance/_images/CCby4.png b/build/site/specifications/1.2/guidance/_images/CCby4.png new file mode 100644 index 0000000..cf59608 Binary files /dev/null and b/build/site/specifications/1.2/guidance/_images/CCby4.png differ diff --git a/build/site/specifications/1.2/guidance/_images/c2pa-hero.svg b/build/site/specifications/1.2/guidance/_images/c2pa-hero.svg new file mode 100644 index 0000000..83b2aef --- /dev/null +++ b/build/site/specifications/1.2/guidance/_images/c2pa-hero.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/build/site/specifications/1.2/index.html b/build/site/specifications/1.2/index.html index 36efbaa..c952e98 100644 --- a/build/site/specifications/1.2/index.html +++ b/build/site/specifications/1.2/index.html @@ -74,10 +74,10 @@

    C2PA Specifications

    Technical Specifications
  • -

    Explainer

    +

    Explainer

  • -

    Guidance for Implementers

    +

    Guidance for Implementers

  • User Experience Guidance

    diff --git a/build/site/specifications/1.2/specs/C2PA_Specification.html b/build/site/specifications/1.2/specs/C2PA_Specification.html index a344571..d94d056 100644 --- a/build/site/specifications/1.2/specs/C2PA_Specification.html +++ b/build/site/specifications/1.2/specs/C2PA_Specification.html @@ -74,10 +74,10 @@

    C2PA Specifications

    Technical Specifications
  • diff --git a/build/site/specifications/1.3/guidance/Guidance.html b/build/site/specifications/1.3/guidance/Guidance.html index 3ab6818..c931893 100644 --- a/build/site/specifications/1.3/guidance/Guidance.html +++ b/build/site/specifications/1.3/guidance/Guidance.html @@ -74,13 +74,13 @@

    C2PA Specifications

    Technical Specifications
  • What is the risk to the ecosystem if a credential is issued in error or is compromised, where a malicious actor obtains a credential belonging to someone else and is able to sign with it, such as the result of a key compromise? This will inform the required real-world validation to achieve the needed level of assurance, and the importance of implementing, operating, and querying a revocation service.

    diff --git a/build/site/specifications/1.3/index.html b/build/site/specifications/1.3/index.html index 2f69f16..7134167 100644 --- a/build/site/specifications/1.3/index.html +++ b/build/site/specifications/1.3/index.html @@ -74,13 +74,13 @@

    C2PA Specifications

    Technical Specifications
  • -

    Explainer

    +

    Explainer

  • -

    Guidance for Implementers

    +

    Guidance for Implementers

  • -

    User Experience Guidance

    +

    User Experience Guidance

  • Security Considerations

    diff --git a/build/site/specifications/1.3/specs/C2PA_Specification.html b/build/site/specifications/1.3/specs/C2PA_Specification.html index fbbe844..5100cc0 100644 --- a/build/site/specifications/1.3/specs/C2PA_Specification.html +++ b/build/site/specifications/1.3/specs/C2PA_Specification.html @@ -74,13 +74,13 @@

    C2PA Specifications

    Technical Specifications
  • -

    User Experience Guidance

    +

    User Experience Guidance

  • Security Considerations

    diff --git a/build/site/specifications/1.4/security/Harms_Modelling.html b/build/site/specifications/1.4/security/Harms_Modelling.html index ca8b283..5043725 100644 --- a/build/site/specifications/1.4/security/Harms_Modelling.html +++ b/build/site/specifications/1.4/security/Harms_Modelling.html @@ -93,7 +93,7 @@

    C2PA Specifications

    Guidance for Implementers
  • @@ -205,7 +205,7 @@

    C2PA Specifications

    -

    The Coalition for Content Provenance and Authenticity (C2PA) addresses the prevalence of misleading information online through the development of technical standards for certifying the source and history (or provenance) of media content. C2PA is a Joint Development Foundation project, formed through an alliance between Adobe, Arm, Intel, Microsoft and Truepic.

    +

    The Coalition for Content Provenance and Authenticity (C2PA) addresses the prevalence of misleading information online through the development of technical standards for certifying the source and history (or provenance) of media content. C2PA is a Joint Development Foundation project.

    diff --git a/build/site/specifications/2.0/specs/C2PA_Specification.html b/build/site/specifications/2.0/specs/C2PA_Specification.html index 4a2909a..eb632dc 100644 --- a/build/site/specifications/2.0/specs/C2PA_Specification.html +++ b/build/site/specifications/2.0/specs/C2PA_Specification.html @@ -87,22 +87,22 @@

    C2PA Specifications

    Informative Documents diff --git a/build/site/specifications/2.0/ux/UX_Recommendations.html b/build/site/specifications/2.0/ux/UX_Recommendations.html index 6a48d61..827311d 100644 --- a/build/site/specifications/2.0/ux/UX_Recommendations.html +++ b/build/site/specifications/2.0/ux/UX_Recommendations.html @@ -87,22 +87,22 @@

    C2PA Specifications

    Informative Documents @@ -182,7 +182,8 @@

    C2PA Specifications

    @@ -192,7 +193,7 @@

    C2PA Specifications

    1.4 1.3 1.2 - 1.1 + 1.1 1.0