diff --git a/404.html b/404.html index 6550a3c..ad171bf 100644 --- a/404.html +++ b/404.html @@ -72,9 +72,6 @@
  • 1.3
  • -
  • - 1.1 -
  • 1.0
  • @@ -110,7 +107,6 @@

    Page Not Found

    { name: "specifications", title: "C2PA Specifications", url: "/specifications/specifications/1.4/index.html", prefix: "/specifications/specifications" }, { name: "specifications", title: "C2PA Specifications", version: "1.4", url: "/specifications/specifications/1.4/index.html", prefix: "/specifications/specifications/1.4" }, { name: "specifications", title: "specifications", version: "1.3", url: "/specifications/specifications/1.3/index.html", prefix: "/specifications/specifications/1.3" }, - { name: "specifications", title: "specifications", version: "1.1", url: "/specifications/specifications/1.1/index.html", prefix: "/specifications/specifications/1.1" }, { name: "specifications", title: "specifications", version: "1.0", url: "/specifications/specifications/1.0/index.html", prefix: "/specifications/specifications/1.0" }, ].reduce(function (accum, it) { var prefix = it.prefix diff --git a/sitemap.xml b/sitemap.xml index 90f0329..0e98ba7 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,42 +2,42 @@ https://c2pa.org/specifications/specifications/1.4/attestations/attestation.html -2023-11-26T23:13:19.566Z +2023-12-22T14:42:18.037Z https://c2pa.org/specifications/specifications/1.4/decoupled/Decoupled.html -2023-11-26T23:13:19.566Z +2023-12-22T14:42:18.037Z https://c2pa.org/specifications/specifications/1.4/index.html -2023-11-26T23:13:19.566Z +2023-12-22T14:42:18.037Z https://c2pa.org/specifications/specifications/1.4/specs/C2PA_Specification.html -2023-11-26T23:13:19.566Z +2023-12-22T14:42:18.037Z + + +https://c2pa.org/specifications/specifications/1.4/ux/UX_Recommendations.html +2023-12-22T14:42:18.037Z https://c2pa.org/specifications/specifications/1.3/ai-ml/ai_ml.html -2023-11-26T23:13:19.566Z +2023-12-22T14:42:18.037Z https://c2pa.org/specifications/specifications/1.3/explainer/Explainer.html -2023-11-26T23:13:19.566Z +2023-12-22T14:42:18.037Z https://c2pa.org/specifications/specifications/1.3/guidance/Guidance.html -2023-11-26T23:13:19.566Z - - -https://c2pa.org/specifications/specifications/1.1/ux/UX_Recommendations.html -2023-11-26T23:13:19.566Z +2023-12-22T14:42:18.037Z https://c2pa.org/specifications/specifications/1.0/security/Harms_Modelling.html -2023-11-26T23:13:19.566Z +2023-12-22T14:42:18.037Z https://c2pa.org/specifications/specifications/1.0/security/Security_Considerations.html -2023-11-26T23:13:19.566Z +2023-12-22T14:42:18.037Z diff --git a/specifications/1.0/security/Harms_Modelling.html b/specifications/1.0/security/Harms_Modelling.html index e37bd9a..4b855c9 100644 --- a/specifications/1.0/security/Harms_Modelling.html +++ b/specifications/1.0/security/Harms_Modelling.html @@ -78,9 +78,6 @@
  • 1.3
  • -
  • - 1.1 -
  • 1.0
  • @@ -102,7 +99,6 @@
    1.4 1.3 - 1.1 1.0
    @@ -498,7 +494,7 @@

  • 6. L3 @@ -181,7 +181,7 @@

    C2PA User Experience Guidance for Implementers

  • 10. Communication and education
  • -
  • 11. Open issues +
  • 11. Open issues @@ -152,10 +149,10 @@

    Guidance for Artificial Intelligence and Machine Learning

    1. Introduction

    -

    The C2PA specification can be used to add cryptographic information to detect the tampering of media files and streams. Similarly, the C2PA framework can also be used in artificial intelligence (AI) and machine learning (ML) systems to indicate the tampering of datasets, software, and models which are utilized during training and inference. This document provides guidance about how C2PA can be employed by AI and ML systems.

    +

    The C2PA specification can be used to add cryptographic information to detect the tampering of media files and streams. Similarly, the C2PA framework can also be used in artificial intelligence (AI) and machine learning (ML) systems to indicate the tampering of datasets, software, and models which are utilized during training and inference. This document provides guidance about how C2PA’s Content Credentials can be employed by AI and ML systems.

    -

    Recent research has demonstrated that ML systems are susceptible to different forms of poisoning attacks. For these types of attacks, the goal of the adversary is to cause the model to make incorrect predictions which can either be targeted or non-targeted attacks. In targeted attacks, a classifier can be maliciously trained to provide a backdoor that can be exploited by the attacker to produce a specific incorrect prediction class. One example of a targeted attack is to modify a face recognition system to allow the adversary to successfully log onto a computer as someone else. A model that has been poisoned using an untargeted attack may generate any result that is incorrect. At a minimum, the ML system must protect against three types of poisoning attacks including data poisoning, software poisoning, and model poisoning attacks [Stokes21]. C2PA can be used to help prevent these types of attacks by protecting the data, software, and models.

    +

    Recent research has demonstrated that ML systems are susceptible to different forms of poisoning attacks. For these types of attacks, the goal of the adversary is to cause the model to make incorrect predictions which can either be targeted or non-targeted attacks. In targeted attacks, a classifier can be maliciously trained to provide a backdoor that can be exploited by the attacker to produce a specific incorrect prediction class. One example of a targeted attack is to modify a face recognition system to allow the adversary to successfully log onto a computer as someone else. A model that has been poisoned using an untargeted attack may generate any result that is incorrect. At a minimum, the ML system must protect against three types of poisoning attacks including data poisoning, software poisoning, and model poisoning attacks [Stokes21]. Content Credentials can be used to help prevent these types of attacks by protecting the data, software, and models.

    @@ -166,13 +163,13 @@

    -

    Many of the existing training sets are stored in a single file, and these files can be protected by a single C2PA Content Credential. The dataset’s hash, which is stored in the Content Credential, can be used to verify that it has not been modified by a data poisoning attack.

    +

    Many of the existing training sets are stored in a single file, and these files can be protected by a single Content Credential. The dataset’s hash, which is stored in the Content Credential, can be used to verify that it has not been modified by a data poisoning attack.

    -

    In other settings, the training and inference data may be split across multiple files, including media files such as images which are used to train an object detection model. In addition, the training or inference data may be streamed. In these scenarios, the data may be protected by a top-level C2PA Content Credential which includes each of the files as ingredients. In the case where the ingredients are media files, they may contain their own Content Credentials.

    +

    In other settings, the training and inference data may be split across multiple files, including media files such as images which are used to train an object detection model. In addition, the training or inference data may be streamed. In these scenarios, the data may be protected by a top-level Content Credential which includes each of the files as ingredients. In the case where the ingredients are media files, they may contain their own Content Credentials.

    -

    In images and videos, a C2PA Manifest can be embedded in the media file. However, existing machine learning datasets are either text or binary files which prevents the embedding of a Manifest in the file. In these cases, the Manifest can be stored in a separate, sidecar file. The Manifest can then use the Asset Reference Assertion to provide a URI to the dataset file or streamed data chunk.

    +

    In images and videos, a C2PA Manifest can be embedded in the media file. However, existing machine learning datasets are either text or binary files which prevents the embedding of a C2PA Manifest in the file. In these cases, the C2PA Manifest can be stored in a separate, sidecar file. The C2PA Manifest can then use the Asset Reference Assertion to provide a URI to the dataset file or streamed data chunk.

    @@ -183,7 +180,7 @@

    -

    Many countries are concerned with software poisoning attacks and have taken steps to help mitigate such attacks. The European Union Cybersecurity Act 2019/881 specified a framework for certificates in [EU19]. To help prevent software supply chain attacks, the US Cybersecurity Executive Order [Biden21] requires that all software or services purchased by the US federal government be governed by a software bill of materials (SBOM). SPDX is one popular standard which is used by some software vendors to provide an SBOM. C2PA utilizes and builds upon the existing SBOM metadata standards for software. One or more SPDX text files provide metadata about the software used to build an application, library or service. Each software file and its corresponding SPDX file can then be protected by a C2PA Content Credential.

    +

    Many countries are concerned with software poisoning attacks and have taken steps to help mitigate such attacks. The European Union Cybersecurity Act 2019/881 specified a framework for certificates in [EU19]. To help prevent software supply chain attacks, the US Cybersecurity Executive Order [Biden21] requires that all software or services purchased by the US federal government be governed by a software bill of materials (SBOM). SPDX is one popular standard which is used by some software vendors to provide an SBOM. C2PA utilizes and builds upon the existing SBOM metadata standards for software. One or more SPDX text files provide metadata about the software used to build an application, library or service. Each software file and its corresponding SPDX file can then be protected by a Content Credential.

    In some cases, C2PA can improve existing SBOM standards. In one example, SPDX files in the current standard (v2.3) are not signed and its contents, including the FileChecksum, can be modified by an attacker. C2PA can be used to sign the SPDX file to prevent tampering.

    @@ -194,7 +191,7 @@

    4. Model Poisoning Attacks

    -

    Once a model has been trained with C2PA-protected data and software, it can then be used to make secure predictions during inference. However, the model can still be poisoned by modifying its architecture or parameters. To help prevent model poisoning attacks, a C2PA Content Credential can be used to protect the model by providing a signature which can be verified by the user.

    +

    Once a model has been trained with C2PA-protected data and software, it can then be used to make secure predictions during inference. However, the model can still be poisoned by modifying its architecture or parameters. To help prevent model poisoning attacks, Content Credentials can be used to protect the model by providing a signature which can be verified by the user.

    @@ -213,7 +210,7 @@

    6. Compressed Files

    -

    In many cases, large datasets are compressed to reduce storage costs. For example, the original MNIST data is compressed using gzip. The Manifest of the final, uncompressed file can include the compressed dataset file as an ingredient. In the case of lossless compression algorithms, this will allow the user to ensure that the uncompressed file was derived from a trusted compressed asset.

    +

    In many cases, large datasets are compressed to reduce storage costs. For example, the original MNIST data is compressed using gzip. The C2PA Manifest of the final, uncompressed file can include the compressed dataset file as an ingredient. In the case of lossless compression algorithms, this will allow the user to ensure that the uncompressed file was derived from a trusted compressed asset.

    @@ -221,13 +218,13 @@

    6. Co

    7. AI-ML Model Content Credential

    -

    The C2PA Content Credential for an AI-ML model provides the consumer, e.g. a system operator designing an AI-ML system, with provenance and authenticity of the model. When the model is included as an ingredient in the Content Credential of the output of an AI-ML system, the consumer of the output can check the validation state of the model and explore the model provenance to provide additional assurance that the output is trustworthy. See more about this in the AI-ML Output Content Credential section.

    +

    The Content Credential for an AI-ML model provides the consumer, e.g. a system operator designing an AI-ML system, with provenance and authenticity of the model. When the model is included as an ingredient in the Content Credential of the output of an AI-ML system, the consumer of the output can check the validation state of the model and explore the model provenance to provide additional assurance that the output is trustworthy. See more about this in the AI-ML Output Content Credential section.

    AI-ML output results have a wide range of concerns and risks depending on how the models were prepared and how the consumer uses the output. Accordingly, the AI-ML provenance information is explored in levels of depth, reflecting the consumers need to reduce risk by establishing deeper trust in the results. Briefly these levels describe the model itself, the training data used to create the model, and finally additional information about the training of the model, the training environment, and various extensions that relate explainability, transparency, and indicators of trust for the model.

    -

    If the model provider does not want the model and its output to be used to train other models in an attempt to extract the model’s functionality, the model manifest can contain a data mining assertion that asserts rights as allowed, constrained, or not allowed for generative or non-generative AI-ML models or both. See data mining for more detail.

    +

    If the model provider does not want the model and its output to be used to train other models in an attempt to extract the model’s functionality, the model C2PA Manifest can contain a data mining assertion that asserts rights as allowed, constrained, or not allowed for generative or non-generative AI-ML models or both. See data mining for more detail.

    @@ -340,16 +337,35 @@

    +

    8. AI-ML Training Data Set Content Credential

    +
    +
    +
    +Visual diagram of the elements contained in a Training Data Set Credential +
    +
    +
    +

    The figure represents a possible credential for an AIML training data set that not only establishes the credentials of the overall training data set, but also it provides transparency for how the data set was used in the training process.

    +
    +
    +

    Training data sets can be quite large, sometimes millions of assets, even trillions for an LLM. A data might be used to train many different models, and each model may only need a fraction of the data set. After that initial partitioning, the data set may be further partitioned into training, test, and evaluation data sets, each serving a unique purpose in the model development and validation process. In order to speed up training, the training may use the training data set in mini-batches (which are not mutually exclusive). All of these mini-batches are arrays of assets which may have their own credentials as well.

    +
    +
    +

    An AI-ML model can be poisoned by tampering with the training data assets, annotations, as well as by tampering with the partitioning and even the order that the data is presented to train the model. Providing these credentials for each partitioning of the training data gives the AI-ML application consumer the ability to gain more trust in how the model was trained. For example the training, test and evaluation partitions can be statistically analyzed to prove that those data sets were not cherry picked, are mutually representative of each other, and are representative of the real world. The advantage of using the collections data hash assertion in the credentials is the structure is a simple and efficient array of URIs and their corresponding hashes of the assets in the collection.

    +
    -

    7.1. Attestation for AI-ML Models

    +

    8.1. Attestation for AI-ML Models

    -

    Model providers can enhance the trust signals so relying parties can determine the software and characteristics of the devices used to create the model asset. This is done by including an xrefL1.4@specs:C2PA_Specification.adoc#_attestation[attestation assertion] in the model Content Credential. Please refer to the attestation technical specification for the description of the process for creating claims with attestations.

    +

    Model providers can enhance the trust signals so relying parties can determine the software and characteristics of the devices used to create the model asset. This is done by including an attestation assertion in the model Content Credential. Please refer to the attestation technical specification for the description of the process for creating claims with attestations.

    -

    8. AI-ML Output Content Credential

    +

    9. AI-ML Output Content Credential

    For a consumer to validate the output data produced by an AI-ML model, again, different amounts of information are needed for different risk sensitivities. The basic signed claim enables the consumer to validate the source and integrity of the results. It is important to identify the output as coming from a trained AI-ML model by using the appropriate digital source type. For a generative model this will be trainedAlgorithmicMedia and for output that is not media the c2pa.trainedAlgorithmicData designation would be appropriate. Given the growing consumer risk sensitivity from AI-ML output data, providing information in the output Content Credential beyond the basic claim and data hash is recommended. Additional Material in the assertion store such as links to the AI-ML model Content Credential, provenance of the inputs to the model, the components and security of the environment the model ran in, timestamps, and even explainability metadata that tell the consumer why the model provided the result it provided all can enable more trust in the results.

    diff --git a/specifications/1.3/explainer/Explainer.html b/specifications/1.3/explainer/Explainer.html index 1816b16..e121b7b 100644 --- a/specifications/1.3/explainer/Explainer.html +++ b/specifications/1.3/explainer/Explainer.html @@ -78,9 +78,6 @@
  • 1.3
  • -
  • - 1.1 -
  • 1.0
  • @@ -102,7 +99,6 @@
    1.4 1.3 - 1.1 1.0
    @@ -123,23 +119,21 @@

    C2PA Explainer

  • 3.1. Provenance
  • 3.2. Trust
  • 3.3. Can provenance information be used to determine whether a digital asset, such as an image or video, depicts the truth?
  • -
  • 3.4. What does it mean that provenance data is cryptographically bound to the asset?
  • -
  • 3.5. Use of Artificial Intelligence & Machine Learning (AI/ML)
  • +
  • 3.4. Use of Artificial Intelligence & Machine Learning (AI/ML)
  • -
  • 4. TODO
  • -
  • 5. Use-case Examples +
  • 4. Use-case Examples
  • -
  • 6. Stakeholder Feedback
  • +
  • 5. Stakeholder Feedback
  • @@ -163,7 +157,7 @@

    C2PA Explainer

    1. Introduction

    -

    The development of this Explainer is ongoing. 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.

    +

    The development of this Explainer is ongoing. This Explainer accompanies the C2PA Specifications for Content Credentials 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.

    @@ -174,10 +168,10 @@

    1. Introducti

    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.

    +

    The goal of the C2PA Specifications for Content Credentials 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.

    +

    It is important to highlight that Content Credentials 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.

    @@ -187,9 +181,9 @@

    3.

    3.1. Provenance

    -

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

    +

    3.1.1. What does "Provenance" mean with Content Credentials?

    -

    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.

    +

    Provenance generally refers to the facts about the history of a piece of digital content assets (image, video, audio recording, document). Content Credentials 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 in a Content Credential. 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.

    @@ -202,7 +196,7 @@

    -

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

    +

    3.1.3. Can Content Credentials 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 (composed) asset is recorded in that asset’s provenance, including the addition of the provenance of each individual ingredient. This process creates a chain of provenance that can stretch all the way back to each ingredient’s creation.

    @@ -210,7 +204,7 @@

    3.1.4. 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.

    +

    Redaction is the process of permanently removing information. In the world of Content Credentials it specifically refers to removing assertions.

    For example, if a human rights organization wishes to remove assertions about the photographer from an image, it can do so via the redaction process. The act of redaction (and the optional inclusion of a reason for that redaction) becomes part of the provenance of the asset.

    @@ -219,7 +213,7 @@

    3.1.5. Is provenance always complete?

    -

    No. Provenance is not always complete. It may happen that an asset is modified in a way that the provenance data is not updated. For example, if an asset is cropped using a non-C2PA aware tool, the provenance data may not be updated to reflect that action. However, if the asset is then brought back into a C2PA-aware tool for additional modification or preparation for publication, the actor responsible for signing the new C2PA Manifest also implicitly attests to the crop action. So even though there is missing provenance information, the asset can still be trusted based on the signer of the active C2PA Manifest.

    +

    No. Provenance is not always complete. It may happen that an asset is modified in a way that the provenance data is not updated. For example, if an asset is cropped using a non-Content Credentials aware tool, the provenance data may not be updated to reflect that action. However, if the asset is then brought back into a Content Credentials-aware tool for additional modification or preparation for publication, the actor responsible for signing the new Content Credentials also implicitly attests to the crop action. So even though there is missing provenance information, the asset can still be trusted based on the signer of the active Content Credential.

    @@ -228,13 +222,13 @@

    3.2. Trust

    3.2.1. 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.

    +

    With Content Credentials, 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 (also known as a digital certificate) is issued. A certification authority (CA) performs this real-world due diligence to ensure signing credentials are only issued to actors who are whom they claim to be.

    +

    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 (also known as a digital certificate) is issued. A certification authority (CA) performs this real-world due diligence to ensure signing 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 requester 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 signing credentials for that application.

    +

    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 requester did in fact control C2PA’s domain name before issuing a certificate for that site name. Unlike the world wide web, Content Credentials 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 signing credentials for that application.

    Once the signing credential is issued by a certification authority, the identity it has confirmed and placed in that 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.

    @@ -257,18 +251,18 @@

    -

    3.2.2. Should I distrust media without C2PA provenance?

    +

    3.2.2. Should I distrust media without Content Credentials?

    -

    No. Adding provenance to an asset is optional, and it is not the intention of the specification and guidance to create a two-tier media ecosystem where assets without C2PA provenance data are universally less trusted than assets with it. The C2PA specification is open and available to everyone, and so no assumption should be made about the trustworthiness of a particular asset or signer purely based on their usage of C2PA.

    +

    No. Adding provenance to an asset is optional, and it is not the intention of the specification and guidance to create a two-tier media ecosystem where assets without Content Credentials are universally less trusted than assets with it. The C2PA Specifications for Content Credentials is open and available to everyone, and so no assumption should be made about the trustworthiness of a particular asset or signer purely based on their usage of Content Credentials.

    -

    C2PA provenance only becomes useful to users when they can use the data and the signer’s identity to build a trust relationship with that signer. For example, if a well-known media publisher adds provenance data to an asset and signs it, a consumer that knows that publisher can use C2PA to understand that the asset and its provenance data definitely came from them, and wasn’t manipulated. Conversely, if a bad or unknown actor adds provenance data and signs it, a consumer would see the actor’s identity, and then make their own decision on whether to trust the asset and the provenance data.

    +

    Content Credentials becomes useful to users when they can use the data and the signer’s identity to build a trust relationship with that signer. For example, if a well-known media publisher adds provenance data to an asset and signs it, a consumer that knows that publisher can use Content Credentials to understand that the asset and its provenance data definitely came from them, and wasn’t manipulated. Conversely, if a bad or unknown actor adds provenance data and signs it, a consumer would see the actor’s identity, and then make their own decision on whether to trust the asset and the provenance data.

    3.2.3. Do the ingredients of an asset have verifiable provenance?

    -

    Each ingredient that is included in a C2PA Manifest can include its own provenance data, specifically its C2PA Manifest is also included in the asset’s C2PA Manifest Store. However, while the provenance data of each ingredient may be present, the ingredient’s provenance cannot be verified in the same way as the provenance data of the asset in which it is contained. This is because the actual data of the ingredient is not usually included in the asset’s C2PA Manifest. Without the actual data, the ingredient’s hard bindings cannot be verified.

    +

    Each ingredient that is included in a Content Credential can include its own provenance data, specifically its Content Credential is also included in the asset’s full set of Content Credentials. However, while the provenance data of each ingredient may be present, the ingredient’s provenance cannot be verified in the same way as the provenance data of the asset in which it is contained. This is because the actual data of the ingredient is not usually included in the asset’s Content Credential. Without the actual data, the ingredient’s hard bindings cannot be verified.

    @@ -278,7 +272,7 @@

    -

    C2PA signed provenance information can include assertions about the real-world identity of the provider of those assertions and the digital asset to which they refer. This signature allows one to determine whether those the assertions or the digital asset itself were subsequently altered. This provides users the means to make a more informed decision about whether they believe the digital content is true, accurate or factual, based in part on the trust relationship they have with the provider of those assertions.

    +

    Content Credentials can include assertions about the real-world identity of the provider of those assertions and the digital asset to which they refer. This signature allows one to determine whether those the assertions or the digital asset itself were subsequently altered. This provides users the means to make a more informed decision about whether they believe the digital content is true, accurate or factual, based in part on the trust relationship they have with the provider of those assertions.

    @@ -296,20 +290,11 @@

    -

    3.4. 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.

    -
    -
    -

    This inability to always be able to verify the provenance of an ingredient is not problematic, because the trust of the asset remains in the signer of the asset’s C2PA Manifest. However, having the ingredient’s C2PA Manifest included in the asset’s C2PA Manifest Store, enables the verification of the ingredient’s assertions (which are important trust signals), even if its hard bindings cannot be validated.

    -
    -
    -
    -

    3.5. Use of Artificial Intelligence & Machine Learning (AI/ML)

    +

    3.4. Use of Artificial Intelligence & Machine Learning (AI/ML)

    -

    3.5.1. How does C2PA address the use of AI/ML in the creation and editing of assets?

    +

    3.4.1. How does C2PA address the use of AI/ML in the creation and editing of assets?

    -

    Each action that is performed on an asset is recorded in the asset’s C2PA Manifest. These actions can be performed by a human or by an AI/ML system. When an action was performed by an AI/ML system, it is clearly identified as such through it’s digitalSourceType field.

    +

    Each action that is performed on an asset is recorded in the asset’s Content Credentials. These actions can be performed by a human or by an AI/ML system. When an action was performed by an AI/ML system, it is clearly identified as such through it’s digitalSourceType field.

    @@ -320,104 +305,75 @@

    -

    3.5.2. Can C2PA be used to label assets that should not be used for training or data mining?

    +

    3.4.2. Can C2PA be used to label assets that should not be used for training or data mining?

    -

    Yes. A C2PA Manifest include a Training and Data Mining assertion that can be used to indicate that the asset should not be used for either training or data mining purposes. The assertion is flexible and allows the author of the asset to specify whether each type of process - data mining, general AI training, or training specific to generative AI - is permitted, or not.

    +

    Yes. A Content Credential can include a Training and Data Mining assertion that can be used to indicate that the asset should not be used for either training or data mining purposes. The assertion is flexible and allows the author of the asset to specify whether each type of process - data mining, general AI training, or training specific to generative AI - is permitted, or not.

    -

    4. TODO

    -
    -
    - - - - - -
    - - -
    -

    Some of the additional areas that information will be provided about include:

    -
    -
    -
      -
    • -

      Privacy

      -
    • -
    • -

      Guarantees C2PA is providing the consumer

      -
    • -
    -
    -
    -
    -
    -
    -
    -

    5. Use-case Examples

    +

    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.

    +

    The following is a non-exhaustive list of potential and general use-cases of the C2PA Specifications for Content Credentials. 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 will be described using some generic personas to help make the flow clear.

    For technical use-case examples, see non-normative guidance.

    -

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

    +

    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.

    +

    The video that Alice sent contains Content Credentials. With a Content Credential-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.

    -

    5.2. Enhancing clarity around provenance and edits for journalistic work

    +

    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.

    +

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

    -

    5.3. Offering publishers opportunities to improve their brand value

    +

    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.

    +

    For content that is consumed without any Content Credentials, 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.

    -

    5.4. Providing quality data for indexer / platform content decisions

    +

    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.

    +

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

    -

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

    +

    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.

    +

    An individual in a news/other context using open-source intelligence techniques (OSINT) can use the presence of Content Credentials 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 Content Credentials.

    -

    5.6. Enhance the evidentiary value of critical footage

    +

    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.

    +

    A human rights defender manages to capture footage containing Content Credentials-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 Content Credentials-enabled editing application in order to protect their identity. The Content Credentials-verified asset is then used to improve the chances of that footage being admissible in court proceedings.

    -

    5.7. Enforcing disclaimer laws on retouched/edited images

    +

    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.

    +

    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 Content Credentials-enabled editing application add information about each action performed, they can easily comply and the government can easily confirm.

    -

    6. Stakeholder Feedback

    +

    5. Stakeholder Feedback

    diff --git a/specifications/1.3/explainer/_attachments/Explainer.pdf b/specifications/1.3/explainer/_attachments/Explainer.pdf index d7dd679..5044331 100644 Binary files a/specifications/1.3/explainer/_attachments/Explainer.pdf and b/specifications/1.3/explainer/_attachments/Explainer.pdf differ diff --git a/specifications/1.3/guidance/Guidance.html b/specifications/1.3/guidance/Guidance.html index e671f5c..0e3b905 100644 --- a/specifications/1.3/guidance/Guidance.html +++ b/specifications/1.3/guidance/Guidance.html @@ -78,9 +78,6 @@
  • 1.3
  • -
  • - 1.1 -
  • 1.0
  • @@ -102,7 +99,6 @@ @@ -155,7 +151,7 @@

    C2PA Implementation Guidance

  • 7. Validation
  • @@ -205,7 +201,7 @@

    1. Introducti

    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 Coalition for Content Provenance and Authenticity (C2PA) has developed their technical specification for providing content provenance and authenticity through Content Credentials. 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.

    @@ -214,13 +210,13 @@

    1.1. Overview

    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.

    +

    This guidance document describes non-normative technical aspects of the C2PA architecture including construction and consumption of Content Credentials and their components including the use of digital signature technology for enabling tamper-evidence and 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.

    +

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

    @@ -253,7 +249,7 @@

    -

    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.

    +

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

    @@ -293,37 +289,37 @@

    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.

    +

    A C2PA claim generator adds a new C2PA Manifest to the existing asset’s C2PA 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 C2PA 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.

    +

    The C2PA recommends that a C2PA 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 C2PA 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 C2PA 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.

    +

    Normally, an asset’s digital content will be modified between "significant events". As such, a standard C2PA Manifest which includes hard bindings between that digital content and the C2PA 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 C2PA 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).

    +

    The C2PA architecture supports C2PA 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 C2PA 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.

    +

    When using a cloud service to manage the manifest repository, and serving the C2PA Manifest Stores via http Link headers (as described in the C2PA specification), having the C2PA 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 C2PA 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.

    +

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

    -

    3.3.5. Can an application remove an existing manifest store?

    +

    3.3.5. Can an application remove an existing C2PA 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.

    +

    Completely removing an embedded C2PA Manifest Store from an asset is not recommended, unless the C2PA Manifest Store is being "externalized" - meaning that an embedded C2PA 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.

    @@ -341,13 +337,13 @@

    -

    3.3.6. Can an application replace an existing manifest store?

    +

    3.3.6. Can an application replace an existing C2PA 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.

    +

    Replacing an existing C2PA Manifest Store with a different C2PA 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

    +

    3.3.7. C2PA 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.

    @@ -356,10 +352,10 @@

    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.

    +

    Ingredients are 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.

    +

    Each ingredient can either be documented as the parentOf the current asset, a componentOf that asset, or as inputTo the creation of an 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. inputTo ingredients are used when describing information that was provided to a generative AI model, such as a prompt or seed image.

    3.4.1. Redaction of Ingredient Assertions

    @@ -412,7 +408,7 @@

    4.1.3. General Box Bindings

    -

    Some file formats, such as JPEG, PNG, or GIF, use a general box structure, that can be used to improve the flexibility of the bindings over that of a byte range binding. When possible, the use of a general box binding is strongly recommended over a byte range binding.

    +

    Some file formats, such as JPEG, PNG, TIFF, or GIF, use a general box structure, that can be used to improve the flexibility of the bindings over that of a byte range binding. When possible, the use of a general box binding is strongly recommended over a byte range binding.

    A general box hash assertion consists of an array of structures, each one listing one or more boxes (by their name/identifier) and a hash that covers that data of those boxes, along with the algorithm used for hashing.

    @@ -473,10 +469,10 @@

    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.

    +

    Asset metadata (including any C2PA 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.

    +

    Soft bindings provide a means for identifying C2PA 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.

    @@ -485,13 +481,13 @@

    4.2.1. General

    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.

    +

    Consider a data store or repository into which C2PA 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 C2PA Manifest into the manifest repository. For this workflow, the C2PA 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.

    +

    Soft bindings may be used to identify C2PA Manifests that have become decoupled from their associated assets. When a consumer encounters an asset with no C2PA 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 C2PA 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.

    +

    An alternative application of soft bindings is to mitigate the threat whereby an attacker substitutes the C2PA Manifest within an asset with another valid C2PA 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 C2PA Manifests within the repository for the consumer’s consideration. Information within the returned C2PA Manifests (such as timestamps or digital signatures) may inform subsequent trust decisions made by the consumer on that asset.

    @@ -501,31 +497,31 @@

    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.

    +

    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 C2PA Manifest prior to signing. A copy of the C2PA 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.

    +

    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 C2PA Manifest. Charlie uses the information in the C2PA Manifest to help make an informed trust decision based on the provenance of the photo.

  • -

    Recovery from adversarial substitution of manifest

    +

    Recovery from adversarial substitution of the C2PA 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.

    +

    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 C2PA Manifest in her video, a copy of the C2PA Manifest is stored within a manifest repository maintained by a consortium of news providers. The C2PA 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.

    +

    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 C2PA Manifest. The C2PA 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.

    +

    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 C2PA Manifest associated with Alice’s video. Bob visually verifies the retrieved C2PA Manifest matches the video (it includes a thumbnail) and validates the C2PA Manifest. Bob notices that Alice’s C2PA Manifest contains signed assertions with a timestamp earlier than those of Mallory’s video. Bob uses knowledge of this previous existing C2PA 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 C2PA Manifest explains the video with an alternative provenance trail.

  • 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.

    +

    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 C2PA Manifest. The C2PA 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 C2PA Manifest is automatically matched using the embedded watermark, and is included as an ingredient in a new C2PA Manifest, which documents that actions have been performed on the content prior to entering the C2PA capable final stage of the pipeline. The C2PA 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.

  • @@ -539,19 +535,19 @@

    1. -

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

      +

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

    2. -

      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.

      +

      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 C2PA Manifest might be displayed to aid visual verification of the match made using a soft binding.

    3. -

      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).

      +

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

    4. -

      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).

      +

      We recommend that services provided for the lookup of C2PA 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).

    5. -

      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.

      +

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

    @@ -559,10 +555,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.

    +

    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 C2PA 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.

    +

    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 C2PA 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 C2PA Manifest with, for example, redacted information.

    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.

    @@ -593,13 +589,13 @@
    5.1.1.1. Generati

    As part of a workflow, some claim generators may allow actors to enter arbitrary text as the value for fields in some assertions - for example, as the value of the copyright field in a Creative Work assertion.

    -

    The signer of the manifest is responsible for ensuring that any user generated text that will be present in the manifest is something they are willing to take responsibility for, since that is a key role of the signer as described in our trust model.

    +

    The signer of the C2PA Manifest is responsible for ensuring that any user generated text that will be present in the C2PA Manifest is something they are willing to take responsibility for, since that is a key role of the signer as described in our trust model.

    5.1.1.2. Consumption
    -

    Manifest consumers should consider doing any necessary "character filtering" on fields that could contain user-generated text, to determine if they contains characters could be used in a code injection attack when presenting that information inside of various UX frameworks.

    +

    Manifest Consumers should consider doing any necessary "character filtering" on fields that could contain user-generated text, to determine if they contains characters could be used in a code injection attack when presenting that information inside of various UX frameworks.

    @@ -654,7 +650,7 @@

    5.2.1. General

    5.2.2. Identifying use of AI/ML

    -

    Each action can identify whether it was performed by an AI/ML system through the use of the digitalSourceType field. An example c2pa.created action is shown in the specification in the parameters clause of Actions. The digitalSourceType field is used to identify the type of digital source that was used to create the asset, including the value http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia which indicates that the asset was created by an AI/ML system and is therefore "trained algorithmic media".

    +

    Each action can identify whether it was performed by an AI/ML system through the use of the digitalSourceType field. An example c2pa.created action is shown in the specification in the parameters clause of Actions. The digitalSourceType field is used to identify the type of digital source that was used to create the asset, including the value http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia[] which indicates that the asset was created by an AI/ML system and is therefore "trained algorithmic media".

    @@ -675,7 +671,7 @@

    6. Trust

    6.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.

    +

    C2PA prescribes cryptographic algorithms permitted for hashing (or message digest), and digital signatures both of C2PA 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.

    @@ -684,7 +680,7 @@

    6.1. Cryptogr

    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: +

    When choosing a signature algorithm for signing C2PA 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.

    @@ -704,7 +700,7 @@

    -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. +Attaching a time-stamp and freshness information to the signature allows validators to conclude the C2PA 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.
    @@ -713,7 +709,7 @@

    6.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.

    +

    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 C2PA 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.

    @@ -721,7 +717,7 @@

    6.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.

    +

    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 C2PA 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).

    @@ -762,10 +758,53 @@

    6.3. Trust Model

    +
    +

    C2PA follows a semantic standard adopted by existing systems that use sets of cryptographically-signed statements: such a set of statements are interpreted as spoken or asserted by the signer, and the relying party’s acceptance of those statements depends on whether or not the receiver trusts the signer to make them. Relying parties must remember all these statements are made by the signer, including statements that may actually be provided by other people or devices, like date and time of capture, or latitude/longitude coordinates of capture location. Some C2PA Assertions allow stating that data is derived from a different source, or that certain actions were performed by particular actors. In all cases, it is the signer who is making all the assertions, including the assertion of what actor or device performed some part of the creation process.

    +
    +
    +

    In other words, a C2PA Manifest must be read as statements like the following:

    +
    +
    +
      +
    • +

      Signer asserts that the title of this asset is "Photograph of Interesting Place."

      +
    • +
    • +

      Signer asserts that the author of this asset is "Joe Photojournalist."

      +
    • +
    • +

      Signer asserts that this asset was captured with a "WonderCamera 2000."

      +
    • +
    • +

      Signer asserts that this image was captured on January 1, 2020 at 12:00pm UTC, and this time was retrieved from a GPS receiver on the capture device.

      +
    • +
    • +

      Signer asserts that this image was captured at latitude/longitude 80.0 degrees N, 10 degrees W, and this location fix was retrieved from a GPS receiver on the capture device.

      +
    • +
    +
    +
    +

    The last two assertions are of particular interest because there is no separate proof, only the Signer’s good word, that the time and location information were retrieved from a reliable source.

    +
    +
    + + + + + +
    + + +C2PA has introduced an accompanying standard for supplying attestations from secure hardware that can provide a higher level of assurance that data was retrieved from trustworthy hardware. The subject of attestations is beyond the scope of this document; here we only consider assertions made by a single Signer who is usually an individual or an organization. +
    +
    +
    +

    X.509 certificates used in the secure server authentication and secure e-mail PKIs, code signing manifests, software bills of materials, and package manager manifests all use similar structures, where signers assert various properties about public keys, software packages, or other cryptographically-protected items. In all cases, it is trust in the Signer to make those assertions, as well as an identity ecosystem substantiating the signing key belongs to the Signer, that forms the basis for believing the assertions.

    +

    6.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.

    +

    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 C2PA 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.

    @@ -774,13 +813,13 @@

    6.3.1. Trust Li

    6.3.2. Initial Design of Identities and Trust Anchors for an Application and its Ecosystem

    -

    C2PA does not mandate or even suggest particular trust lists or public key infrastructure (PKI), and instead takes them and other related configuration as inputs. This is because each application built using the C2PA standard that operates within its own ecosystem will have unique requirements and relationships amongst the participants of that ecosystem. Application implementors may be tempted to take existing trust lists used in other applications, such as those used for validating secure web sites or signed documents, and adopt such lists without due consideration. However, we strongly recommend performing the analysis described in this section to determine if the PKI associated with one of those applications is appropriate for the new application of C2PA. In particular, the participants and trust relationships among the entities in the web site and document signing PKIs will likely not match those for other applications and ecosystems, and so their use as trust anchors will be likewise incorrect for those applications. Trust lists are not "one-size-fits-all."

    +

    C2PA does not mandate or even suggest particular trust lists or public key infrastructure (PKI), and instead takes them and other related configuration as inputs. This is because each application built using the C2PA standard that operates within its own ecosystem will have unique requirements and relationships amongst the participants of that ecosystem. Application implementers may be tempted to take existing trust lists used in other applications, such as those used for validating secure web sites or signed documents, and adopt such lists without due consideration. However, we strongly recommend performing the analysis described in this section to determine if the PKI associated with one of those applications is appropriate for the new application of C2PA. In particular, the participants and trust relationships among the entities in the web site and document signing PKIs will likely not match those for other applications and ecosystems, and so their use as trust anchors will be likewise incorrect for those applications. Trust lists are not "one-size-fits-all."

    Signed provenance information transits trust between a creator and a consumer, based on a trust relationship between those two that exists outside the scope of C2PA. Trust anchors operate by providing digital identities within a particular ecosystem that link to real-world identities, and perform an ecosystem-specific validation to ensure those identities are sufficiently trustworthy, and that consumers can be confident when an asset is verified as being signed by a known creator, they can rely upon their existing trust relationship with that known creator.

    -

    Mistakes and accidents do happen, and credentials sometimes need to be revoked before their natural expiration date. This is often due to the private key being mishandled or exposed. Although everything that key signed before its exposure can still be trusted, it should be revoked so nothing after that point is trusted. This requires the trust anchor that issued the certificate to operate a "revocation service." In C2PA, this service is primarily used at signing time to get a signed statement from the trust anchor stating the credential was still valid at signing time, which is then included in the manifest, so validators can be assured the credential was valid at that time, whether or not it has since expired or been revoked.

    +

    Mistakes and accidents do happen, and credentials sometimes need to be revoked before their natural expiration date. This is often due to the private key being mishandled or exposed. Although everything that key signed before its exposure can still be trusted, it should be revoked so nothing after that point is trusted. This requires the trust anchor that issued the certificate to operate a "revocation service." In C2PA, this service is primarily used at signing time to get a signed statement from the trust anchor stating the credential was still valid at signing time, which is then included in the C2PA Manifest, so validators can be assured the credential was valid at that time, whether or not it has since expired or been revoked.

    When initially creating an application, its trust anchors, and determining how identities will be issued by those trust anchors, developers should answer the following questions:

    @@ -808,7 +847,7 @@

    User Experience Guidance to help application developers determine how to present this information to the consumer.

    +

    How does the audience already know and identify the creators? This will inform how the identity should be presented in the credential, and how it is presented to the consumers. C2PA publishes User Experience Guidance to help application developers determine how to present this information to the consumer.

  • 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.

    @@ -977,7 +1016,7 @@
    +

    In following this example, implementers should be aware that secure e-mail certificates issued by the existing secure e-mail PKI will begin to follow the CA/Browser Forum S/MIME Baseline Requirements which were first adopted on January 1, 2023. Secure e-mail certificates issued before this date, as well as those issued after this date buts before the issuing CA adopted these standards, will not follow these requirements, but it is expected conforming CAs will eventually do so. In particular, implementers should review chapter 3 and the identification requirements, and determine if those requirements are sufficient to meet the assurance and risk tolerance requirements of their application ecosystem. If they are, implementers may also wish to inquire with particular CAs as to the status of their implementation of these requirements, their process for identification before the standard requirements were introduced, and the expected time horizon during which certificates issued before the standard requirements ("legacy certificates") will remain valid. Implementers may choose to onboard only those CAs with a tolerably small or zero number of legacy certificates, and onboard further CAs as their implementation of the new requirements and remaining number of valid legacy certificates reach acceptable levels.

    +
  • +

    The audience will consume the content through whatever ad-hoc tools they use for their collaborations. In this case, the users may have to be educated enough to opt in to the particular trust list that contains the CAs which issue the credentials for their contacts.

    @@ -1017,7 +1059,7 @@

    -

    Although C2PA does not make such requirements, an application may choose to impose stronger requirements if warranted by the risk of credential compromise. For example, an application may require attached credential revocation information and either require rejecting manifests that lack them immediately, or require the online query to the CA at consumption time.

    +

    Although C2PA does not make such requirements, an application may choose to impose stronger requirements if warranted by the risk of credential compromise. For example, an application may require attached credential revocation information and either require rejecting C2PA Manifests that lack them immediately, or require the online query to the CA at consumption time.

    -

    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.

    +

    Implementers should enforce time validity periods on credentials in the private credential store, and either warn about or reject C2PA 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 C2PA 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.

    @@ -1058,7 +1100,7 @@
    The truly anonymous case, where any information about the human actor publishing the content cannot be shared, provides a greater challenge. Absent any ability to establish a basis for trust with anything about the publisher, we must identify other potential sources of trust. In these cases, a common case is establishing that the asset is a true capturing of real-world events, without any malicious edits intended to create disinformation. The first potential method is through the use of a trusted third party (TTP). The news and media consumption example above is a special case of a TTP. In this case, media provided by sources that must remain anonymous is done so privately to a journalist or tip line, who then performs their own due diligence to confirm the accuracy and veracity of the asset’s content, and any additional information provided by the source. It is the trust of the consumer in the news or media organization that then becomes relevant, stemming from trust in that organization both to protect the privacy of its sources and to do its own independent due diligence on material it receives.

    -

    A more nuanced option is a non-governmental organization or other intermediary that works with people in locations where conditions make them want to remain anonymous even as they provide images or videos of newsworthy events. This may be a lower level of assurance than a consumer may expect from a news organization, but it may be sufficient to be assured that the anonymous publisher is actually in the location where the media purports to originate from, although consumers might still view it with a healthy level of skepticism as a result. As with typical publishers, the consumer’s relationship with the signer and understanding of what promises that signer makes informs the consumer’s decision about the content.

    +

    A more nuanced option is a non-governmental organization or other intermediary that works with people in locations where conditions make them want to remain anonymous even as they provide images or videos of newsworthy events. This may be a lower level of assurance than a consumer may expect from a news organization, but it may be sufficient to be assured that the anonymous publisher is actually in the location where the media purports to originate from, although consumers might still view it with a healthy level of scepticism as a result. As with typical publishers, the consumer’s relationship with the signer and understanding of what promises that signer makes informs the consumer’s decision about the content.

    In all cases, however, the consumer’s trust lies in the trusted third party, and the trust that the TTP performs suitable due diligence to ensure what they are publishing on the anonymous source’s behalf is what they claim it to be.

    @@ -1067,13 +1109,13 @@
    6.3.6.2. Trustworthy Devices
    -

    A developing possibility is through the use of trustworthy, tamper-resistant devices that attest to the genuineness of what is captured. Mobile devices with cameras have had tamper-proof security hardware for some time now, and such hardware is beginning to find its way into higher-grade image and video capture equipment, and these devices can do the signing. Manufacturers of such devices can encourage their use by properly documenting the capabilities of such devices; the assurance level of the entire path from image or video acquisition to manifest signing; the expected resistance of the device to attackers, especially attackers with unrestricted physical access to the device, both in terms of attacks resisted and the time duration it can be expected to do so; and penetration or other testing performed on the device in support of the security property of the device. Devices will vary in such capabilities, and manufacturers should provide sufficient information to allow informed decisions about their devices.

    +

    A developing possibility is through the use of trustworthy, tamper-resistant devices that attest to the genuineness of what is captured. Mobile devices with cameras have had tamper-proof security hardware for some time now, and such hardware is beginning to find its way into higher-grade image and video capture equipment, and these devices can do the signing. Manufacturers of such devices can encourage their use by properly documenting the capabilities of such devices; the assurance level of the entire path from image or video acquisition to C2PA Manifest signing; the expected resistance of the device to attackers, especially attackers with unrestricted physical access to the device, both in terms of attacks resisted and the time duration it can be expected to do so; and penetration or other testing performed on the device in support of the security property of the device. Devices will vary in such capabilities, and manufacturers should provide sufficient information to allow informed decisions about their devices.

    -

    Manufacturers can issue signing credentials to the secure hardware on their devices to enable signing of manifests, with whatever metadata (such as time and location) the device is capable of reliably capturing, as well as enabling secure attestation of the device and its capabilities, which can also be included in the C2PA Manifest. This can be paired with assurance services operated by the manufacturers to maintain up-to-date information about the health and security of their devices. Manufacturers should ensure a device’s capabilities, particularly its limitations, are well-known, so that successful attacks do not damage the manufacturer’s reputation or the entire ecosystem. In particular, manufacturers should be mindful of how reliable a device’s source of time or location information may be or how vulnerable they may be to attack, causing the device to attest to falsified information, in addition to standard resistance to having its secret key extracted.

    +

    Manufacturers can issue signing credentials to the secure hardware on their devices to enable signing of C2PA Manifests, with whatever metadata (such as time and location) the device is capable of reliably capturing, as well as enabling secure attestation of the device and its capabilities, which can also be included in the C2PA Manifest. This can be paired with assurance services operated by the manufacturers to maintain up-to-date information about the health and security of their devices. Manufacturers should ensure a device’s capabilities, particularly its limitations, are well-known, so that successful attacks do not damage the manufacturer’s reputation or the entire ecosystem. In particular, manufacturers should be mindful of how reliable a device’s source of time or location information may be or how vulnerable they may be to attack, causing the device to attest to falsified information, in addition to standard resistance to having its secret key extracted.

    -

    This information will be useful to the implementers of identity ecosystems for C2PA assets, as they consider including trustworthy, tamper-resistant devices. These ecosystems will have particular security, cost, and time requirement tradeoffs for such devices. These implementers will make these informed choices on behalf of the consumers in their ecosystem, using the documentation and other information made available to select the most suitable choice or choices. Though the capabilities of the device will of course be particularly relevant, implementers of ecosystems should also consider the duration for which a device can be considered trustworthy, particularly when considering how likely such a device may be to come into the possession of an adversary, and the expected capabilities of those adversaries. This may inform a need for signing credentials of short duration that are regularly renewed, or signing credentials which are non-renewable and thus the device becomes untrusted past a certain point in time; the use of aforementioned assurance services to establish ongoing trustworthiness of the device at signing or consumption time if possible, or at credential renewal time if not; the robustness of the revocation infrastructure for its credentials; and the robustness of the process of alerting the issuer that the device may have become compromised before its credential’s expiration.

    +

    This information will be useful to the implementers of identity ecosystems for C2PA assets, as they consider including trustworthy, tamper-resistant devices. These ecosystems will have particular security, cost, and time requirement trade-offs for such devices. These implementers will make these informed choices on behalf of the consumers in their ecosystem, using the documentation and other information made available to select the most suitable choice or choices. Though the capabilities of the device will of course be particularly relevant, implementers of ecosystems should also consider the duration for which a device can be considered trustworthy, particularly when considering how likely such a device may be to come into the possession of an adversary, and the expected capabilities of those adversaries. This may inform a need for signing credentials of short duration that are regularly renewed, or signing credentials which are non-renewable and thus the device becomes untrusted past a certain point in time; the use of aforementioned assurance services to establish ongoing trustworthiness of the device at signing or consumption time if possible, or at credential renewal time if not; the robustness of the revocation infrastructure for its credentials; and the robustness of the process of alerting the issuer that the device may have become compromised before its credential’s expiration.

    @@ -1086,14 +1128,14 @@

    7. Validation

    7.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.

    +

    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 C2PA 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.

    +

    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 C2PA Manifests via soft bindings when appropriate, and other forthcoming C2PA recommendations to mitigate the impact of these types of attacks.

    -

    7.2. Validation of Ingredient manifests

    +

    7.2. Validation of Ingredient C2PA 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.

    @@ -1179,7 +1221,7 @@

    8.1. Intr

    8.2. Keeping in sync with standard metadata

    -

    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.

    +

    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 solutions 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.

    @@ -1245,16 +1287,16 @@

    9.1. Intr

    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.

    +

    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 C2PA Manifest. For example, to ensure the privacy of a creator, removing identity data from the assertion store and updating the C2PA 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.

    +

    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 C2PA Manifests stored within them.

    -

    DLTs may, instead, be used to underwrite the integrity of a manifest repository containing C2PA manifests (e.g., a cloud database). One common use case would be where 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).

    +

    DLTs may, instead, be used to underwrite the integrity of a manifest repository containing C2PA Manifests (e.g., a cloud database). One common use case would be where a hash of a C2PA Manifest, or other cryptographic proof, may be stored immutably within a DLT. This may be used to prove that the C2PA Manifest has not been altered, or deleted (non-repudiation).

    -

    On-chain storage of manifests may still be suitable, however, for use cases where redaction is not specific consideration and where on-chain storage requirements are not prohibitive.

    +

    On-chain storage of C2PA Manifests may still be suitable, however, for use cases where redaction is not specific consideration and where on-chain storage requirements are not prohibitive.

    @@ -1267,10 +1309,10 @@

    9.2. Use Cases

  • Underwriting the integrity of manifest repositories

    -

    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.

    +

    Consider the case of a manifest repository, where C2PA Manifests might be stored decoupled from the digital content they describe. Such a manifest repository may be used to store C2PA Manifests and query those C2PA Manifests via a lookup service using either a hard or a soft binding, for example to recover provenance for assets where C2PA 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.

    +

    The user of such a manifest repository trusts the governance of that manifest repository operator not to manipulate or remove C2PA 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 C2PA 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.

    @@ -1309,16 +1351,16 @@

    9.2. Use Cases

  • 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.

    +

    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 C2PA 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).

    +

    It is unlikely that a single manifest repository will exist for all C2PA 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.

    +

    Alternatively a DLT may be used to store directly a key-value index that maps soft bindings to the URLs of matching C2PA 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.

  • @@ -1351,13 +1393,13 @@

    -

    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.

    +

    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.

    +

    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.

    +

    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 C2PA Manifest from a manifest repository, as with general metadata stripping attacks.

    diff --git a/specifications/1.3/guidance/_attachments/Guidance.pdf b/specifications/1.3/guidance/_attachments/Guidance.pdf index 99994ec..9ef9ce7 100644 Binary files a/specifications/1.3/guidance/_attachments/Guidance.pdf and b/specifications/1.3/guidance/_attachments/Guidance.pdf differ diff --git a/specifications/1.4/attestations/attestation.html b/specifications/1.4/attestations/attestation.html index 39e427e..f1c8627 100644 --- a/specifications/1.4/attestations/attestation.html +++ b/specifications/1.4/attestations/attestation.html @@ -93,7 +93,7 @@

    C2PA Specifications

    Guidance for Implementers
  • 1.3
  • -
  • - 1.1 -
  • 1.0
  • @@ -186,7 +183,6 @@

    C2PA Specifications

    diff --git a/specifications/1.4/decoupled/Decoupled.html b/specifications/1.4/decoupled/Decoupled.html index 9441f46..6c83f29 100644 --- a/specifications/1.4/decoupled/Decoupled.html +++ b/specifications/1.4/decoupled/Decoupled.html @@ -93,7 +93,7 @@

    C2PA Specifications

    Guidance for Implementers
  • 1.3
  • -
  • - 1.1 -
  • 1.0
  • @@ -185,7 +182,6 @@

    C2PA Specifications

    diff --git a/specifications/1.4/index.html b/specifications/1.4/index.html index 5660c2b..36ce0c9 100644 --- a/specifications/1.4/index.html +++ b/specifications/1.4/index.html @@ -93,7 +93,7 @@

    C2PA Specifications

    Guidance for Implementers
  • 1.3
  • -
  • - 1.1 -
  • 1.0
  • @@ -184,7 +181,6 @@

    C2PA Specifications

    1.4 1.3 - 1.1 1.0
    @@ -232,7 +228,7 @@

    Guidance for Implementers

  • -

    User Experience Guidance

    +

    User Experience Guidance

  • Security Considerations

    diff --git a/specifications/1.4/specs/C2PA_Specification.html b/specifications/1.4/specs/C2PA_Specification.html index 0c79a8e..b48d1fb 100644 --- a/specifications/1.4/specs/C2PA_Specification.html +++ b/specifications/1.4/specs/C2PA_Specification.html @@ -93,7 +93,7 @@

    C2PA Specifications

    Guidance for Implementers
  • 1.3
  • -
  • - 1.1 -
  • 1.0
  • @@ -186,7 +183,6 @@

    C2PA Specifications

    1.4 1.3 - 1.1 1.0
    @@ -6008,7 +6004,7 @@

    17. Use

    17.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.

    @@ -6205,7 +6201,7 @@

    Guidance for implementers

  • -

    User experience guidance

    +

    User experience guidance

  • Security Considerations

    diff --git a/specifications/1.4/specs/_attachments/C2PA_Specification.pdf b/specifications/1.4/specs/_attachments/C2PA_Specification.pdf index e426d3e..8e386a1 100644 Binary files a/specifications/1.4/specs/_attachments/C2PA_Specification.pdf and b/specifications/1.4/specs/_attachments/C2PA_Specification.pdf differ diff --git a/specifications/1.4/ux/UX_Recommendations.html b/specifications/1.4/ux/UX_Recommendations.html new file mode 100644 index 0000000..3a3ebf2 --- /dev/null +++ b/specifications/1.4/ux/UX_Recommendations.html @@ -0,0 +1,1788 @@ + + + + + + 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 +
    +
    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

    +
    +
    +

    4.1. Introduction

    +
    +

    C2PA requires the name "Content Credentials" to be used for provenance-enabled user experiences that follow the technical specification. It is critical that viewers of Content Credentials develop trust in the system itself, over the individual data presented. Therefore, implementors of Content Credentials must adhere to the proper usage of the Content Credentials name and visual marks to assure that each experience is consistent, coherent and cooperative.

    +
    +
    +
    +icon and wordmark +
    +
    Figure 2. Content Credentials logo and icon
    +
    +
    +

    The Content Credentials marks may be used in the following ways to provide consistency across the ecosystem:

    +
    +
    +
      +
    • +

      Verifying and displaying Content Credentials on a website or web application

      +
    • +
    • +

      Creating and writing Content Credentials to supported file formats

      +
    • +
    +
    +
    +
    +

    4.2. Design and construction

    +
    +

    The Content Credentials logo comprises an icon accompanied by a word mark set in Store Norsk Ja Medium, which is the cornerstone of the Content Credentials brand identity.

    +
    +
    +

    The icon shape is a pin, a metaphorical representation for applying (or “pinning”) Content Credentials to an asset, serves as an indicator of both the presence of C2PA data and its cryptographic validation status. It is also a navigation elements to reveal more C2PA information.

    +
    +
    +

    The icon is comprised of two lower-case characters, “cr,” which is a truncation of “credentials.” The characters are contained in an outlined circle with the lower-right corner angled to 90 degrees. Both the icon and brand word mark are set in Store Norske Ja Medium.

    +
    +
    +

    It’s proximity to other international attribution symbols, like copyright and Creative Commons, imbues the icon with a level of trust and authority. Its has been carefully considered and should not be altered or modified in any way.

    +
    +
    +

    4.2.1. Correct usage of the icon

    +
    +
    +icon usage +
    +
    Figure 3. Correct usage of the icon
    +
    +
    +

    The pin must always be represented in the highest quality possible. It can be reproduced in high contrast gray scale values depending on its application.

    +
    +
    +

    In the event that the active manifest is invalid, a stateful indicator of data validation can be displayed. A secondary icon may be appended to the pin to indicate cryptographic status. 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.

    +
    +
    +
    +

    4.2.2. Incorrect usage of the icon

    +
    +
    +icon usage incorrect +
    +
    Figure 4. Incorrect usage of the icon
    +
    +
    +

    Unacceptable modifications include adding a solid interior fill, drop shadow, or applying other graphic alterations to the icon. Avoid using an outline-only pin on patterned background or images. Do not add a valid status, as the icon alone should already indicate the presence of a valid manifest. When adding a secondary mark for cryptographic validation, avoid placing the status indicator over the characters, or using other icons that do not convey cryptographic status.

    +
    +
    +
    +
    +

    4.3. Placement and interaction

    +
    +

    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 placement 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.

    +
    +
    +
    +L1 display options +
    +
    Figure 5. Placement options for the L1 indicator
    +
    +
    +

    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.

    +
    +
    +
    +
    +
    +

    5. L2 – provenance summaries

    +
    +
    +

    5.1. Minimum viable provenance

    +
    +
    +L2 mvp +
    +
    Figure 6. 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 +
    +
    Figure 7. 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 +
    +
    Figure 8. 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.

    +
    +
    +
    +L2 summary 1 +
    +
    Figure 9. 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.

    +
    +
    +
    +L2 summary 2 +
    +
    Figure 10. 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.

    +
    +
    +
    +L2 summary 3 +
    +
    Figure 11. 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.

    +
    +
    +
    +L2 summary 4 +
    +
    Figure 12. Provenance summary, two origins
    +
    +
    +

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

    +
    +
    +
    +L2 summary 5 +
    +
    Figure 13. 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 combinatory summaries +
    +
    Figure 14. Customized summary combinations
    +
    +
    +
    +

    5.6. 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.

    +
    +
    +

    For additional invalid states, see the section on interface language.

    +
    +
    +
    +L2 invalid active +
    +
    Figure 15. Invalid data in the active manifest position
    +
    +
    +
    +L2 invalid ingredient +
    +
    Figure 16. 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 17. 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 18. 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 19. 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.

    +
    +
    +
    +L2 redaction +
    +
    Figure 20. 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.

    +
    +
    +
    +L2 thumbnail example +
    +
    Figure 21. 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.

    +
    +
    +
    +L2 to L3 +
    +
    Figure 22. 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 23. 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. Overview

    +
    +

    Video delivery methods

    +
    +
    +

    There are two predominant ways video is delivered to devices over the web, these include:

    +
    +
    +
      +
    1. +

      Dynamic video streaming (typically done via MPEG-DASH or HLS) where small video segments (also referred to as packets) are sent progressively to the browser. This allows for adaptive bitrate streaming, where the quality of the video can change on the fly depending on the viewer’s network conditions.

      +
    2. +
    3. +

      As one single file (monolithic architecture), where all aspects of the video are managed in a single tightly integrated system. This approach is less flexible and therefore rarer.

      +
    4. +
    +
    +
    +

    For both approaches, the manifest can be validated on load and subsequently provenance data can be displayed. However, different UX treatment is required when it comes to the asset validation process as the video files (asset) are handled differently depending on the video delivery method as outlined above. See sections validation process and validation states.

    +
    +
    +

    Placement

    +
    +
    +

    L1 and L2 information should be located within the video player as this will increase its visibility and association with the media. By doing this, C2PA data will also be available even when videos are embedded on third party platforms.

    +
    +
    +
    +video placement 0 +
    +
    Figure 24. Example of correct and incorrect placement of L1 indicator.
    +
    +
    +

    Manifests

    +
    +
    +

    Videos can consist of numerous clips with many composited layers, called ingredients. Due to the limited space available in the interface it is recommended to prioritise and disclose ingredients that have valid content credentials. More work is required to investigate design patterns that support the exploration of a high number of ingredients.

    +
    +
    +

    Validation States

    +
    +
    +

    An invalid state is immutable; therefore, an invalid manifest or asset (whether a video segment for streaming, or the video file for monolithic architectures) will automatically result in an invalid video. Validation is conducted per session, for streaming this is continuously as video segments are received.

    +
    +
    +
    +

    8.1.2. L1 - indicator of C2PA data

    +
    +
    8.1.2.1. Appearance
    +
    +

    If the video player doesn’t natively provide a background gradient where the indicator is to be positioned, it should be given its own background. This ensures its visibility remains constant for the entire length of the video.

    +
    +
    +
    +video appearance +
    +
    Figure 25. L1 indicator should be visible throughout the video, therefore, a background is recommended.
    +
    +
    +

    For content recommendations see the section on interface language.

    +
    +
    +

    Validation states

    +
    +
    +

    In the event that the active manifest or content 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 sections validation process and validation states.

    +
    +
    +
    +video validation states +
    +
    Figure 26. The two validation states: valid and invalid, shown respectfully
    +
    +
    +
    +
    8.1.2.2. Placement
    +
    +

    Place the L1 indicator directly on the video. This will help encourage users to associate the C2PA information with the content itself, while reducing confusion and incorrect associations with other content on the page. Another benefit is increased visibility by placing it higher in the information architecture; especially important when it comes to full screen videos where anything outside of the video container will not be visible. As best practice, it is suggested that where possible the indicator should be supported with its relevant label.

    +
    +
    +

    It is advised not to place the fully expanded L1 (using the icon and title) close to the timeline or lower down in the player as this is typically where subtitles sit.

    +
    +
    +
    +video placement 1 +
    +
    Figure 27. Illustrative examples of L1 positioning within the video player. From left to right: a) Top right b)Bottom left c) Within controls.
    +
    +
    +
    +
    8.1.2.3. Interaction
    +
    +

    The L1 Indicator should adhere to the existing interaction design pattern of the video player UI. For example, a video player UI typically goes through different visibility states during playback and on user interaction to ensure an unobtrusive viewing experience while maintaining easy control access. However, there will be times when this rule can be broken.

    +
    +
    +

    When communicating validation progress and states to the user, they should have clear visibility or knowledge of whether the validation process is ongoing, completed, or if invalidity was encountered. This ensures that the user remains informed and can take appropriate actions based on the validation state.

    +
    +
    +

    Ensuring an unaltered and undisturbed viewing experience is paramount, and any potential compromises should be kept minimal when possible, therefore:

    +
    +
    +
      +
    1. +

      The L1 indicator must be displayed as soon as the page loads and C2PA information is available. This indicator should be overlaid on the video’s poster image. This means that when someone first navigates to the page, they should be able to immediately see the L1 indicator on top of the video poster image.

      +
    2. +
    3. +

      When the process of validating the video is underway and no invalidities have been detected, the L1 indicator can behave like other elements of the video player’s UI. For example, it can fade out along with other controls (like play, pause, etc.) and then reappear when the user hovers or interacts with the video player.

      +
    4. +
    5. +

      If the validation state changes at any point, this change must be made visible to the user straight away. This means, for instance if the validation process finishes, this information should be displayed to the user immediately.

      +
    6. +
    +
    +
    +
    +
    +

    8.1.3. L2 - provenance summaries

    +
    +
    8.1.3.1. Appearance
    +
    +

    Video L2 displays should largely follow the same patterns as described in L2 – progressive disclosures. However, for now there is no recommendation on the inclusion of ingredients or non-C2PA origin content due to the potential complexity of volume. Instead, it is suggested to show a minimal manifest summary or 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.

    +
    +
    +

    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.1.1. Validated segments (for video streaming only)
    +
    +

    Validated segments will have matching time codes that make it possible to communicate precise information. It is important to communicate invalid segments to assist consumers in decision-making and ensure transparency.

    +
    +
    +

    Many player timelines are already information heavy with progress, buffering, and chapter data. Thus, it is recommended to avoid adding more information to prevent confusing or overwhelming the user. However, linking a user interaction (like a hover state) with the timeline could help users understand their relationship and enhance information transfer. This approach can be used to provide validation progress and segment status information directly in the timeline, providing the user with more context. This solution, due to its limited accessibility and desktop-specific nature, should complement other approaches rather than being the sole strategy.

    +
    +
    +
    +video placement 2 +
    +
    Figure 28. Illustrative example showing disclosure of invalid video segment on the timeline, activated on user interaction with L1.
    +
    +
    +

    Invalid segments can be communicated in written form by disclosing their time codes as part of the L2 summary. It is recommended to supplement this with a visual indicator in the timeline of the video player. An important consideration when doing this is to use color carefully, for example, showing an invalid segment in red on a natively red timeline may be confusing. Information should be encoded in distinct ways to reduce misunderstanding.

    +
    +
    +

    Further exploration could be dedicated to investigating alternative methods of encoding information, such as, form, shape, space, line, texture, or a combination of these.

    +
    +
    +
    +
    +
    8.1.3.2. Placement
    +
    +

    L2 information should be contained as part of the video player. The video should be visible alongside L2 information to support users in making comparative and contrastive assessments when interrogating the content and the data.

    +
    +
    +

    Some suggestions are provided below.

    +
    +
    +
    +video placement 3 +
    +
    Figure 29. Three examples of L2 placement, from left to right: a) within the video player, b) exploiting PiP, c) split-frame layout.
    +
    +
    +
      +
    • +

      As a video player overlay when user interacts with the C2PA indicator

      +
    • +
    • +

      Exploiting the Picture-in-Picture (PiP) feature to display information in the main video frame while video is presented in PiP window/overlay, or vice-versa.

      +
    • +
    • +

      Split-frame layout, where the main video frame is divided into two or more sections to showcase the video content and information side by side.

      +
    • +
    +
    +
    +
    +
    8.1.3.3. Interaction
    +
    +
    8.1.3.3.1. Status Summaries for Invalid States
    +
    +

    An invalid state should be surfaced to the user as soon as it is detected. There should be no distinction between an invalid manifest or an invalid asset; they are both equally invalid.

    +
    +
    +

    Failure codes manifest.inaccessible and assertion.inaccessible do not suggest invalidity and instead represent temporarily inaccessible information due to connection issues. These should be handled by the player as they are not considered validation issues.

    +
    +
    +
    +video status summaries for invalid states +
    +
    Figure 30. Illustrative example of a L2 summary for an invalid state for streaming playback.
    +
    +
    +

    Monolithic playback

    +
    +
    +

    For videos that are contained in a monolithic architecture, as one single file, the asset validation happens in one instance alongside the manifest validation process. This allows for the complete manifest and asset validation status to be communicated on receipt of the video file and before playback. Any invalidity should be surfaced to the user before playback commences.

    +
    +
    +

    Streaming playback

    +
    +
    +

    Streaming presents some complexity as the asset validation process happens throughout playback resulting in the possibility for an invalid state to present at any time during the experience.

    +
    +
    +

    Studies indicate that people often multitask while viewing videos, at times listening more than watching. This could result in them overlooking a video’s invalid status. Given that invalid states are rare yet critical, it is recommended that the video playback should pause and the system status communicated along with a L2 summary that describes the invalidity. See section 8.1.5. Validation states.

    +
    +
    +

    Further research will be carried out to explore the spectrum of UX friction in relation to invalid states and what users consider an acceptable balance between delivering a positive user experience and communicating an invalid state.

    +
    +
    +
    +
    8.1.3.3.2. Active Manifest Data
    +
    +

    There should be an easy and intuitive way for the user to view L2 information. Our recommendation is to link the L1 indicator to enable L2, hence creating a direct relationship between the two. Therefore L2 should be accessible by interacting with L1 as a minimum.

    +
    +
    +
    +
    +
    +

    8.1.4. Validation process

    +
    +
    8.1.4.1. Dynamic Video Streaming
    +
    +

    For dynamic video streaming each segment is validated as it’s rendered. While the full video’s validation status can’t be reported, the status of individual segments can. Each segment can be validated, which, in human terms would appear to be immediate. Video streams inherently have different bitrates, opening up the possibility for the same segment to show conflicting validation statuses depending on the bitrate being played at the time. As soon as a segment is requested by the player, whether it is the first or multiple times afterwards, it’s validated. The UI should communicate that validation is conducted per viewing instance, not per video. The video delivery method is dynamic and could change at anytime, it is not advised to communicate or introduce a ‘completion’ state.

    +
    +
    +
    8.1.4.1.1. On page load
    +
    +

    Manifest validation occurs quickly on page load, any Manifest failures should be surfaced to the user at this point. Depending on the video player implimentation, different levels of information can be communicated about the asset:

    +
    +
    +
      +
    • +

      Lazy loading: Players set to lazy load defer the loading of resources until they are needed, improving initial page load time and reducing bandwidth usage. User interaction is required for the asset validation process to initiate. Active Manifest data can be shown. If it is shown it should be clear that the content hasn’t yet been validated against this information, therefore there is some uncertainty.

      +
    • +
    • +

      Preloading: Players set to ‘preload’ fetch video resources ahead of time to eliminate waiting periods. In this scenario the initial segment or some segments may be downloaded before the user interacts. Active Manifest data can be shown and the validation status of these initial segments maybe communicated confidently.

      +
    • +
    • +

      Autoplay: Players set to autoplay don’t require user interaction to initiate playback, subsequently, the validation process will commence in parallel. Active Manifest data can be shown and the validation status of the rendered segments maybe communicated confidently and progressively inline with playback.

      +
    • +
    +
    +
    +
    +
    8.1.4.1.2. During streaming
    +
    +

    The Asset validation process is dependent on the video download speed. Video streaming involves progressively downloading and compiling small video chunks of the full video as one continuous stream. It is at this point that each segment is validated and their statuses can be communicated. Active Manifest data can be shown.

    +
    +
    +
    +
    8.1.4.1.3. User-video-player interactions and their impact on validation
    +
    +
      +
    • +

      Trick play: Video players allow users to easily move back and forth to specific moments in the video. When parts of the video are skipped these sections may not be validated, leading to uncertainty about their accuracy or validity. However, it is not recommended to attempt to communicate this uncertainty as it may create confusion to the user. What has not been viewed should be left as unknown.

      +
    • +
    • +

      Adjusting video quality: When a user adjusts the video quality (changes the bitrate), the new segments will be revalidated.

      +
    • +
    +
    +
    +
    +video streaming validation process +
    +
    Figure 31. Flow showing a) when the manifest and asset validations happen during the video streaming experience b) the validation status logic across this journey.
    +
    +
    +
    +
    +
    8.1.4.2. Monolithic videos
    +
    +

    For videos that are contained in a monolithic architecture, as one single file, the asset validation happens in one instance alongside the manifest validation process. This allows for the full video validation status to be communicated on receipt of the video file and before playback.

    +
    +
    +
    +
    +

    8.1.5. Validation states

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

    Status (for implementers)

    Notes (for implementers)

    Viewer-facing status

    Contextual messaging guidance (L2, modals, etc)

    Invalid

    The video player has determined that the video’s Active Manifest and/or Asset hashes have not passed validation.

    +

    This generally suggests that someone has changed or tampered with the manifest or video, so the available manifest data should be disregarded.

    +

    Unknown failures should default to an Invalid state, as the severity of the failure is unknown.

    Invalid

    Indicate that there is a problem and that users should watch with caution, if they choose to proceed.

    +

    Assess your ability to confirm and willingness to state when a video has been tampered with. However, an invalid status always means that the information in the Content Credentials should be disregarded, and this should be conveyed to users.

    +

    Example:

    +

    Watch with caution: +This video or its Content Credential may have been tampered with or contain unexpected changes. The video’s history can’t be confirmed and its Content Credentials should not be trusted.

    Valid

    The video’s Active Manifest and all Asset hashes have passed validation by the video player’s validator.

    +

    Implying a normal L2 interaction, no additional messaging is needed in a valid state.

    +
    +

    N.B. One single point of invalidity indicates that the video has been tampered with by a potentially bad actor with malicious intent, therefore the content content credentials should not be trusted. Invalid states occur infrequently on a very low proportion of videos.

    +
    +
    +
    +

    8.1.6. Open issues

    +
    +

    Further research will be carried out to explore the spectrum of UX friction in relation to invalid states and what users consider an acceptable balance between delivering a positive user experience and communicating an invalid state.

    +
    +
    +
    +
    +

    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 anatomy +
    +
    Figure 32. 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

      +
    • +
    +

    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

      +
    • +
    +

    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

    Actions should map to standardized categorizations of C2PA actions

    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 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

    +
    +
    +

    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 invalid due to connection issues.

    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/specifications/1.4/ux/_attachments/UX_Recommendations.pdf b/specifications/1.4/ux/_attachments/UX_Recommendations.pdf new file mode 100644 index 0000000..ef4e1e5 Binary files /dev/null and b/specifications/1.4/ux/_attachments/UX_Recommendations.pdf differ diff --git a/specifications/1.4/ux/_images/CCby4.png b/specifications/1.4/ux/_images/CCby4.png new file mode 100644 index 0000000..cf59608 Binary files /dev/null and b/specifications/1.4/ux/_images/CCby4.png differ diff --git a/specifications/1.4/ux/_images/Discolusure_visualsummary.png b/specifications/1.4/ux/_images/Discolusure_visualsummary.png new file mode 100644 index 0000000..18334f2 Binary files /dev/null and b/specifications/1.4/ux/_images/Discolusure_visualsummary.png differ diff --git "a/specifications/1.4/ux/_images/Journey\342\200\223Multi-1.png" "b/specifications/1.4/ux/_images/Journey\342\200\223Multi-1.png" new file mode 100644 index 0000000..c6d01b9 Binary files /dev/null and "b/specifications/1.4/ux/_images/Journey\342\200\223Multi-1.png" differ diff --git "a/specifications/1.4/ux/_images/Journey\342\200\223Multi.png" "b/specifications/1.4/ux/_images/Journey\342\200\223Multi.png" new file mode 100644 index 0000000..0c95833 Binary files /dev/null and "b/specifications/1.4/ux/_images/Journey\342\200\223Multi.png" differ diff --git "a/specifications/1.4/ux/_images/Journey\342\200\223NET.png" "b/specifications/1.4/ux/_images/Journey\342\200\223NET.png" new file mode 100644 index 0000000..6277b2c Binary files /dev/null and "b/specifications/1.4/ux/_images/Journey\342\200\223NET.png" differ diff --git "a/specifications/1.4/ux/_images/Journey\342\200\223OTGP.png" "b/specifications/1.4/ux/_images/Journey\342\200\223OTGP.png" new file mode 100644 index 0000000..c6d01b9 Binary files /dev/null and "b/specifications/1.4/ux/_images/Journey\342\200\223OTGP.png" differ diff --git "a/specifications/1.4/ux/_images/Journey\342\200\223Single.png" "b/specifications/1.4/ux/_images/Journey\342\200\223Single.png" new file mode 100644 index 0000000..f946d0b Binary files /dev/null and "b/specifications/1.4/ux/_images/Journey\342\200\223Single.png" differ diff --git "a/specifications/1.4/ux/_images/Journey\342\200\223Standard.png" "b/specifications/1.4/ux/_images/Journey\342\200\223Standard.png" new file mode 100644 index 0000000..cdaa538 Binary files /dev/null and "b/specifications/1.4/ux/_images/Journey\342\200\223Standard.png" differ diff --git a/specifications/1.4/ux/_images/L1 - display options_2x.png b/specifications/1.4/ux/_images/L1 - display options_2x.png new file mode 100644 index 0000000..11b4bd5 Binary files /dev/null and b/specifications/1.4/ux/_images/L1 - display options_2x.png differ diff --git a/specifications/1.4/ux/_images/L1 - states_2x.png b/specifications/1.4/ux/_images/L1 - states_2x.png new file mode 100644 index 0000000..d2d61e8 Binary files /dev/null and b/specifications/1.4/ux/_images/L1 - states_2x.png differ diff --git a/specifications/1.4/ux/_images/L1-display-options.png b/specifications/1.4/ux/_images/L1-display-options.png new file mode 100644 index 0000000..1ce9b40 Binary files /dev/null and b/specifications/1.4/ux/_images/L1-display-options.png differ diff --git a/specifications/1.4/ux/_images/L1-display-options_2x.png b/specifications/1.4/ux/_images/L1-display-options_2x.png new file mode 100644 index 0000000..6ecce53 Binary files /dev/null and b/specifications/1.4/ux/_images/L1-display-options_2x.png differ diff --git a/specifications/1.4/ux/_images/L1-invalid-states.png b/specifications/1.4/ux/_images/L1-invalid-states.png new file mode 100644 index 0000000..1fc26ce Binary files /dev/null and b/specifications/1.4/ux/_images/L1-invalid-states.png differ diff --git a/specifications/1.4/ux/_images/L1-states_2x.png b/specifications/1.4/ux/_images/L1-states_2x.png new file mode 100644 index 0000000..126b8f7 Binary files /dev/null and b/specifications/1.4/ux/_images/L1-states_2x.png differ diff --git a/specifications/1.4/ux/_images/L1.png b/specifications/1.4/ux/_images/L1.png new file mode 100644 index 0000000..c08ae47 Binary files /dev/null and b/specifications/1.4/ux/_images/L1.png differ diff --git a/specifications/1.4/ux/_images/L1_2x.png b/specifications/1.4/ux/_images/L1_2x.png new file mode 100644 index 0000000..892a532 Binary files /dev/null and b/specifications/1.4/ux/_images/L1_2x.png differ diff --git a/specifications/1.4/ux/_images/L2-NET.png b/specifications/1.4/ux/_images/L2-NET.png new file mode 100644 index 0000000..d8e3460 Binary files /dev/null and b/specifications/1.4/ux/_images/L2-NET.png differ diff --git a/specifications/1.4/ux/_images/L2-NET_2x.png b/specifications/1.4/ux/_images/L2-NET_2x.png new file mode 100644 index 0000000..ccb3fd1 Binary files /dev/null and b/specifications/1.4/ux/_images/L2-NET_2x.png differ diff --git a/specifications/1.4/ux/_images/L2-discrete.png b/specifications/1.4/ux/_images/L2-discrete.png new file mode 100644 index 0000000..57ea7c4 Binary files /dev/null and b/specifications/1.4/ux/_images/L2-discrete.png differ diff --git a/specifications/1.4/ux/_images/L2-discrete_2x.png b/specifications/1.4/ux/_images/L2-discrete_2x.png new file mode 100644 index 0000000..355933a Binary files /dev/null and b/specifications/1.4/ux/_images/L2-discrete_2x.png differ diff --git a/specifications/1.4/ux/_images/L2-errors.png b/specifications/1.4/ux/_images/L2-errors.png new file mode 100644 index 0000000..48d4632 Binary files /dev/null and b/specifications/1.4/ux/_images/L2-errors.png differ diff --git a/specifications/1.4/ux/_images/L2-errors_2x.png b/specifications/1.4/ux/_images/L2-errors_2x.png new file mode 100644 index 0000000..baa9046 Binary files /dev/null and b/specifications/1.4/ux/_images/L2-errors_2x.png differ diff --git a/specifications/1.4/ux/_images/L2-multi.png b/specifications/1.4/ux/_images/L2-multi.png new file mode 100644 index 0000000..55abbb1 Binary files /dev/null and b/specifications/1.4/ux/_images/L2-multi.png differ diff --git a/specifications/1.4/ux/_images/L2-multi_2x.png b/specifications/1.4/ux/_images/L2-multi_2x.png new file mode 100644 index 0000000..a4b138f Binary files /dev/null and b/specifications/1.4/ux/_images/L2-multi_2x.png differ diff --git a/specifications/1.4/ux/_images/L2-standard.png b/specifications/1.4/ux/_images/L2-standard.png new file mode 100644 index 0000000..20b2678 Binary files /dev/null and b/specifications/1.4/ux/_images/L2-standard.png differ diff --git a/specifications/1.4/ux/_images/L2-standard_2x.png b/specifications/1.4/ux/_images/L2-standard_2x.png new file mode 100644 index 0000000..7b80865 Binary files /dev/null and b/specifications/1.4/ux/_images/L2-standard_2x.png differ diff --git a/specifications/1.4/ux/_images/L2_MVP_2x.png b/specifications/1.4/ux/_images/L2_MVP_2x.png new file mode 100644 index 0000000..d8c3d58 Binary files /dev/null and b/specifications/1.4/ux/_images/L2_MVP_2x.png differ diff --git a/specifications/1.4/ux/_images/L2_combinatory_summaries.png b/specifications/1.4/ux/_images/L2_combinatory_summaries.png new file mode 100644 index 0000000..65d39ce Binary files /dev/null and b/specifications/1.4/ux/_images/L2_combinatory_summaries.png differ diff --git a/specifications/1.4/ux/_images/L2_depth.png b/specifications/1.4/ux/_images/L2_depth.png new file mode 100644 index 0000000..1c045f6 Binary files /dev/null and b/specifications/1.4/ux/_images/L2_depth.png differ diff --git a/specifications/1.4/ux/_images/L2_depth_2x.png b/specifications/1.4/ux/_images/L2_depth_2x.png new file mode 100644 index 0000000..ce1491a Binary files /dev/null and b/specifications/1.4/ux/_images/L2_depth_2x.png differ diff --git a/specifications/1.4/ux/_images/L2_depth_breadth_examples_alltogether_incl_range_2x.png b/specifications/1.4/ux/_images/L2_depth_breadth_examples_alltogether_incl_range_2x.png new file mode 100644 index 0000000..63d8d31 Binary files /dev/null and b/specifications/1.4/ux/_images/L2_depth_breadth_examples_alltogether_incl_range_2x.png differ diff --git a/specifications/1.4/ux/_images/L2_depth_breadth_explainer_2x.png b/specifications/1.4/ux/_images/L2_depth_breadth_explainer_2x.png new file mode 100644 index 0000000..8398c06 Binary files /dev/null and b/specifications/1.4/ux/_images/L2_depth_breadth_explainer_2x.png differ diff --git a/specifications/1.4/ux/_images/L2_depth_breadth_range_01_2x.png b/specifications/1.4/ux/_images/L2_depth_breadth_range_01_2x.png new file mode 100644 index 0000000..6def34f Binary files /dev/null and b/specifications/1.4/ux/_images/L2_depth_breadth_range_01_2x.png differ diff --git a/specifications/1.4/ux/_images/L2_depth_breadth_range_02_2x.png b/specifications/1.4/ux/_images/L2_depth_breadth_range_02_2x.png new file mode 100644 index 0000000..c31e3a8 Binary files /dev/null and b/specifications/1.4/ux/_images/L2_depth_breadth_range_02_2x.png differ diff --git a/specifications/1.4/ux/_images/L2_depth_breadth_range_03_2x.png b/specifications/1.4/ux/_images/L2_depth_breadth_range_03_2x.png new file mode 100644 index 0000000..678ae49 Binary files /dev/null and b/specifications/1.4/ux/_images/L2_depth_breadth_range_03_2x.png differ diff --git a/specifications/1.4/ux/_images/L2_invalid_active.png b/specifications/1.4/ux/_images/L2_invalid_active.png new file mode 100644 index 0000000..024c6f6 Binary files /dev/null and b/specifications/1.4/ux/_images/L2_invalid_active.png differ diff --git a/specifications/1.4/ux/_images/L2_invalid_ingredient.png b/specifications/1.4/ux/_images/L2_invalid_ingredient.png new file mode 100644 index 0000000..67117b6 Binary files /dev/null and b/specifications/1.4/ux/_images/L2_invalid_ingredient.png differ diff --git a/specifications/1.4/ux/_images/L2_middle.png b/specifications/1.4/ux/_images/L2_middle.png new file mode 100644 index 0000000..912c997 Binary files /dev/null and b/specifications/1.4/ux/_images/L2_middle.png differ diff --git a/specifications/1.4/ux/_images/L2_middle_2x.png b/specifications/1.4/ux/_images/L2_middle_2x.png new file mode 100644 index 0000000..da71032 Binary files /dev/null and b/specifications/1.4/ux/_images/L2_middle_2x.png differ diff --git a/specifications/1.4/ux/_images/L2_mvp.png b/specifications/1.4/ux/_images/L2_mvp.png new file mode 100644 index 0000000..fc9af47 Binary files /dev/null and b/specifications/1.4/ux/_images/L2_mvp.png differ diff --git a/specifications/1.4/ux/_images/L2_redaction.png b/specifications/1.4/ux/_images/L2_redaction.png new file mode 100644 index 0000000..dec0330 Binary files /dev/null and b/specifications/1.4/ux/_images/L2_redaction.png differ diff --git a/specifications/1.4/ux/_images/L2_spectrum.png b/specifications/1.4/ux/_images/L2_spectrum.png new file mode 100644 index 0000000..96c2844 Binary files /dev/null and b/specifications/1.4/ux/_images/L2_spectrum.png differ diff --git a/specifications/1.4/ux/_images/L2_spectrum_2x.png b/specifications/1.4/ux/_images/L2_spectrum_2x.png new file mode 100644 index 0000000..f67df30 Binary files /dev/null and b/specifications/1.4/ux/_images/L2_spectrum_2x.png differ diff --git a/specifications/1.4/ux/_images/L2_summary_1.png b/specifications/1.4/ux/_images/L2_summary_1.png new file mode 100644 index 0000000..900ab04 Binary files /dev/null and b/specifications/1.4/ux/_images/L2_summary_1.png differ diff --git a/specifications/1.4/ux/_images/L2_summary_2.png b/specifications/1.4/ux/_images/L2_summary_2.png new file mode 100644 index 0000000..ad0b20d Binary files /dev/null and b/specifications/1.4/ux/_images/L2_summary_2.png differ diff --git a/specifications/1.4/ux/_images/L2_summary_3.png b/specifications/1.4/ux/_images/L2_summary_3.png new file mode 100644 index 0000000..c2de066 Binary files /dev/null and b/specifications/1.4/ux/_images/L2_summary_3.png differ diff --git a/specifications/1.4/ux/_images/L2_summary_4.png b/specifications/1.4/ux/_images/L2_summary_4.png new file mode 100644 index 0000000..0cce2b3 Binary files /dev/null and b/specifications/1.4/ux/_images/L2_summary_4.png differ diff --git a/specifications/1.4/ux/_images/L2_summary_5.png b/specifications/1.4/ux/_images/L2_summary_5.png new file mode 100644 index 0000000..fe1339b Binary files /dev/null and b/specifications/1.4/ux/_images/L2_summary_5.png differ diff --git a/specifications/1.4/ux/_images/L2_thumbnail_example.png b/specifications/1.4/ux/_images/L2_thumbnail_example.png new file mode 100644 index 0000000..b91af03 Binary files /dev/null and b/specifications/1.4/ux/_images/L2_thumbnail_example.png differ diff --git a/specifications/1.4/ux/_images/L2_to_L3.png b/specifications/1.4/ux/_images/L2_to_L3.png new file mode 100644 index 0000000..97327ea Binary files /dev/null and b/specifications/1.4/ux/_images/L2_to_L3.png differ diff --git a/specifications/1.4/ux/_images/L3-compare.png b/specifications/1.4/ux/_images/L3-compare.png new file mode 100644 index 0000000..d1b8b6b Binary files /dev/null and b/specifications/1.4/ux/_images/L3-compare.png differ diff --git a/specifications/1.4/ux/_images/L3-manifest-recovery.png b/specifications/1.4/ux/_images/L3-manifest-recovery.png new file mode 100644 index 0000000..93e2307 Binary files /dev/null and b/specifications/1.4/ux/_images/L3-manifest-recovery.png differ diff --git a/specifications/1.4/ux/_images/L3-tree-view.png b/specifications/1.4/ux/_images/L3-tree-view.png new file mode 100644 index 0000000..79efb93 Binary files /dev/null and b/specifications/1.4/ux/_images/L3-tree-view.png differ diff --git a/specifications/1.4/ux/_images/L3_compare.png b/specifications/1.4/ux/_images/L3_compare.png new file mode 100644 index 0000000..629359a Binary files /dev/null and b/specifications/1.4/ux/_images/L3_compare.png differ diff --git a/specifications/1.4/ux/_images/L3_manifest_recovery.png b/specifications/1.4/ux/_images/L3_manifest_recovery.png new file mode 100644 index 0000000..3dd88d7 Binary files /dev/null and b/specifications/1.4/ux/_images/L3_manifest_recovery.png differ diff --git a/specifications/1.4/ux/_images/L3_tree_view.png b/specifications/1.4/ux/_images/L3_tree_view.png new file mode 100644 index 0000000..438e7e8 Binary files /dev/null and b/specifications/1.4/ux/_images/L3_tree_view.png differ diff --git a/specifications/1.4/ux/_images/MVP.png b/specifications/1.4/ux/_images/MVP.png new file mode 100644 index 0000000..97c1087 Binary files /dev/null and b/specifications/1.4/ux/_images/MVP.png differ diff --git a/specifications/1.4/ux/_images/MVP_2x.png b/specifications/1.4/ux/_images/MVP_2x.png new file mode 100644 index 0000000..1cebfb3 Binary files /dev/null and b/specifications/1.4/ux/_images/MVP_2x.png differ diff --git a/specifications/1.4/ux/_images/Video_1_Manifests.png b/specifications/1.4/ux/_images/Video_1_Manifests.png new file mode 100644 index 0000000..c1fe9e4 Binary files /dev/null and b/specifications/1.4/ux/_images/Video_1_Manifests.png differ diff --git a/specifications/1.4/ux/_images/Video_1_Placement Validation Progress.png b/specifications/1.4/ux/_images/Video_1_Placement Validation Progress.png new file mode 100644 index 0000000..b6733d3 Binary files /dev/null and b/specifications/1.4/ux/_images/Video_1_Placement Validation Progress.png differ diff --git a/specifications/1.4/ux/_images/Video_1_Placement Validation Status.png b/specifications/1.4/ux/_images/Video_1_Placement Validation Status.png new file mode 100644 index 0000000..d02b415 Binary files /dev/null and b/specifications/1.4/ux/_images/Video_1_Placement Validation Status.png differ diff --git a/specifications/1.4/ux/_images/Video_1_Placement.png b/specifications/1.4/ux/_images/Video_1_Placement.png new file mode 100644 index 0000000..8533d87 Binary files /dev/null and b/specifications/1.4/ux/_images/Video_1_Placement.png differ diff --git a/specifications/1.4/ux/_images/Video_2.1_Appearance.png b/specifications/1.4/ux/_images/Video_2.1_Appearance.png new file mode 100644 index 0000000..35f0677 Binary files /dev/null and b/specifications/1.4/ux/_images/Video_2.1_Appearance.png differ diff --git a/specifications/1.4/ux/_images/Video_2.1_Asset Validation Progress.png b/specifications/1.4/ux/_images/Video_2.1_Asset Validation Progress.png new file mode 100644 index 0000000..37f00f8 Binary files /dev/null and b/specifications/1.4/ux/_images/Video_2.1_Asset Validation Progress.png differ diff --git a/specifications/1.4/ux/_images/Video_2.1_Validated Asset Segments.png b/specifications/1.4/ux/_images/Video_2.1_Validated Asset Segments.png new file mode 100644 index 0000000..857d451 Binary files /dev/null and b/specifications/1.4/ux/_images/Video_2.1_Validated Asset Segments.png differ diff --git a/specifications/1.4/ux/_images/Video_2.1_Validation States.png b/specifications/1.4/ux/_images/Video_2.1_Validation States.png new file mode 100644 index 0000000..2de8b55 Binary files /dev/null and b/specifications/1.4/ux/_images/Video_2.1_Validation States.png differ diff --git a/specifications/1.4/ux/_images/Video_2.2_Placement.png b/specifications/1.4/ux/_images/Video_2.2_Placement.png new file mode 100644 index 0000000..7565a03 Binary files /dev/null and b/specifications/1.4/ux/_images/Video_2.2_Placement.png differ diff --git a/specifications/1.4/ux/_images/Video_2.3_Interaction.png b/specifications/1.4/ux/_images/Video_2.3_Interaction.png new file mode 100644 index 0000000..b98818f Binary files /dev/null and b/specifications/1.4/ux/_images/Video_2.3_Interaction.png differ diff --git a/specifications/1.4/ux/_images/Video_3.2_Placement.png b/specifications/1.4/ux/_images/Video_3.2_Placement.png new file mode 100644 index 0000000..da73a60 Binary files /dev/null and b/specifications/1.4/ux/_images/Video_3.2_Placement.png differ diff --git a/specifications/1.4/ux/_images/Video_3.3_Interaction.png b/specifications/1.4/ux/_images/Video_3.3_Interaction.png new file mode 100644 index 0000000..6b91d2c Binary files /dev/null and b/specifications/1.4/ux/_images/Video_3.3_Interaction.png differ diff --git a/specifications/1.4/ux/_images/Video_4_Validation States.jpg b/specifications/1.4/ux/_images/Video_4_Validation States.jpg new file mode 100644 index 0000000..cff1116 Binary files /dev/null and b/specifications/1.4/ux/_images/Video_4_Validation States.jpg differ diff --git a/specifications/1.4/ux/_images/arts_2x.png b/specifications/1.4/ux/_images/arts_2x.png new file mode 100644 index 0000000..aad2eaf Binary files /dev/null and b/specifications/1.4/ux/_images/arts_2x.png differ diff --git a/specifications/1.4/ux/_images/c2pa-hero.svg b/specifications/1.4/ux/_images/c2pa-hero.svg new file mode 100644 index 0000000..83b2aef --- /dev/null +++ b/specifications/1.4/ux/_images/c2pa-hero.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/specifications/1.4/ux/_images/creator-manifest-storage.png b/specifications/1.4/ux/_images/creator-manifest-storage.png new file mode 100644 index 0000000..40cfdf4 Binary files /dev/null and b/specifications/1.4/ux/_images/creator-manifest-storage.png differ diff --git a/specifications/1.4/ux/_images/creator_manifest_storage.png b/specifications/1.4/ux/_images/creator_manifest_storage.png new file mode 100644 index 0000000..2819534 Binary files /dev/null and b/specifications/1.4/ux/_images/creator_manifest_storage.png differ diff --git a/specifications/1.4/ux/_images/disclosure_summary.png b/specifications/1.4/ux/_images/disclosure_summary.png new file mode 100644 index 0000000..eb7af7b Binary files /dev/null and b/specifications/1.4/ux/_images/disclosure_summary.png differ diff --git a/specifications/1.4/ux/_images/disclosure_summary_2x.png b/specifications/1.4/ux/_images/disclosure_summary_2x.png new file mode 100644 index 0000000..0ec3d93 Binary files /dev/null and b/specifications/1.4/ux/_images/disclosure_summary_2x.png differ diff --git a/specifications/1.4/ux/_images/discrete-1_2x.png b/specifications/1.4/ux/_images/discrete-1_2x.png new file mode 100644 index 0000000..d1eb48e Binary files /dev/null and b/specifications/1.4/ux/_images/discrete-1_2x.png differ diff --git a/specifications/1.4/ux/_images/discrete-2_2x.png b/specifications/1.4/ux/_images/discrete-2_2x.png new file mode 100644 index 0000000..12a3923 Binary files /dev/null and b/specifications/1.4/ux/_images/discrete-2_2x.png differ diff --git a/specifications/1.4/ux/_images/error-1_2x.png b/specifications/1.4/ux/_images/error-1_2x.png new file mode 100644 index 0000000..a592fd2 Binary files /dev/null and b/specifications/1.4/ux/_images/error-1_2x.png differ diff --git a/specifications/1.4/ux/_images/error-2_2x.png b/specifications/1.4/ux/_images/error-2_2x.png new file mode 100644 index 0000000..8e48623 Binary files /dev/null and b/specifications/1.4/ux/_images/error-2_2x.png differ diff --git a/specifications/1.4/ux/_images/error-3_2x.png b/specifications/1.4/ux/_images/error-3_2x.png new file mode 100644 index 0000000..42add4d Binary files /dev/null and b/specifications/1.4/ux/_images/error-3_2x.png differ diff --git a/specifications/1.4/ux/_images/error-4_2x.png b/specifications/1.4/ux/_images/error-4_2x.png new file mode 100644 index 0000000..3f36c3e Binary files /dev/null and b/specifications/1.4/ux/_images/error-4_2x.png differ diff --git a/specifications/1.4/ux/_images/error-5_2x.png b/specifications/1.4/ux/_images/error-5_2x.png new file mode 100644 index 0000000..febba45 Binary files /dev/null and b/specifications/1.4/ux/_images/error-5_2x.png differ diff --git a/specifications/1.4/ux/_images/icon-usage-validation.png b/specifications/1.4/ux/_images/icon-usage-validation.png new file mode 100644 index 0000000..34a7b43 Binary files /dev/null and b/specifications/1.4/ux/_images/icon-usage-validation.png differ diff --git a/specifications/1.4/ux/_images/icon-usage.png b/specifications/1.4/ux/_images/icon-usage.png new file mode 100644 index 0000000..7dd014c Binary files /dev/null and b/specifications/1.4/ux/_images/icon-usage.png differ diff --git a/specifications/1.4/ux/_images/icon_and_wordmark.png b/specifications/1.4/ux/_images/icon_and_wordmark.png new file mode 100644 index 0000000..9955d40 Binary files /dev/null and b/specifications/1.4/ux/_images/icon_and_wordmark.png differ diff --git a/specifications/1.4/ux/_images/icon_usage.png b/specifications/1.4/ux/_images/icon_usage.png new file mode 100644 index 0000000..0597c47 Binary files /dev/null and b/specifications/1.4/ux/_images/icon_usage.png differ diff --git a/specifications/1.4/ux/_images/icon_usage_incorrect.png b/specifications/1.4/ux/_images/icon_usage_incorrect.png new file mode 100644 index 0000000..35d73c2 Binary files /dev/null and b/specifications/1.4/ux/_images/icon_usage_incorrect.png differ diff --git a/specifications/1.4/ux/_images/l2tol3.png b/specifications/1.4/ux/_images/l2tol3.png new file mode 100644 index 0000000..2aceda9 Binary files /dev/null and b/specifications/1.4/ux/_images/l2tol3.png differ diff --git a/specifications/1.4/ux/_images/news_2x.png b/specifications/1.4/ux/_images/news_2x.png new file mode 100644 index 0000000..0878480 Binary files /dev/null and b/specifications/1.4/ux/_images/news_2x.png differ diff --git a/specifications/1.4/ux/_images/recs_01_mvp.png b/specifications/1.4/ux/_images/recs_01_mvp.png new file mode 100644 index 0000000..75bc0c3 Binary files /dev/null and b/specifications/1.4/ux/_images/recs_01_mvp.png differ diff --git a/specifications/1.4/ux/_images/recs_01_mvp_2x.png b/specifications/1.4/ux/_images/recs_01_mvp_2x.png new file mode 100644 index 0000000..e4047e3 Binary files /dev/null and b/specifications/1.4/ux/_images/recs_01_mvp_2x.png differ diff --git a/specifications/1.4/ux/_images/recs_02_standard.png b/specifications/1.4/ux/_images/recs_02_standard.png new file mode 100644 index 0000000..2a10fad Binary files /dev/null and b/specifications/1.4/ux/_images/recs_02_standard.png differ diff --git a/specifications/1.4/ux/_images/recs_02_standard_2x.png b/specifications/1.4/ux/_images/recs_02_standard_2x.png new file mode 100644 index 0000000..daaca4d Binary files /dev/null and b/specifications/1.4/ux/_images/recs_02_standard_2x.png differ diff --git a/specifications/1.4/ux/_images/recs_03_NET.png b/specifications/1.4/ux/_images/recs_03_NET.png new file mode 100644 index 0000000..08f1369 Binary files /dev/null and b/specifications/1.4/ux/_images/recs_03_NET.png differ diff --git a/specifications/1.4/ux/_images/recs_03_NET_2x.png b/specifications/1.4/ux/_images/recs_03_NET_2x.png new file mode 100644 index 0000000..20e6236 Binary files /dev/null and b/specifications/1.4/ux/_images/recs_03_NET_2x.png differ diff --git a/specifications/1.4/ux/_images/recs_04_multi.png b/specifications/1.4/ux/_images/recs_04_multi.png new file mode 100644 index 0000000..f86ced7 Binary files /dev/null and b/specifications/1.4/ux/_images/recs_04_multi.png differ diff --git a/specifications/1.4/ux/_images/recs_04_multi_2x.png b/specifications/1.4/ux/_images/recs_04_multi_2x.png new file mode 100644 index 0000000..90b3578 Binary files /dev/null and b/specifications/1.4/ux/_images/recs_04_multi_2x.png differ diff --git a/specifications/1.4/ux/_images/recs_05_OTGP.png b/specifications/1.4/ux/_images/recs_05_OTGP.png new file mode 100644 index 0000000..8f694cb Binary files /dev/null and b/specifications/1.4/ux/_images/recs_05_OTGP.png differ diff --git a/specifications/1.4/ux/_images/recs_05_OTGP_2x.png b/specifications/1.4/ux/_images/recs_05_OTGP_2x.png new file mode 100644 index 0000000..9eda815 Binary files /dev/null and b/specifications/1.4/ux/_images/recs_05_OTGP_2x.png differ diff --git a/specifications/1.4/ux/_images/redaction.png b/specifications/1.4/ux/_images/redaction.png new file mode 100644 index 0000000..1ccb0b9 Binary files /dev/null and b/specifications/1.4/ux/_images/redaction.png differ diff --git a/specifications/1.4/ux/_images/retail_2x.png b/specifications/1.4/ux/_images/retail_2x.png new file mode 100644 index 0000000..398f471 Binary files /dev/null and b/specifications/1.4/ux/_images/retail_2x.png differ diff --git a/specifications/1.4/ux/_images/social_2x.png b/specifications/1.4/ux/_images/social_2x.png new file mode 100644 index 0000000..48cb20a Binary files /dev/null and b/specifications/1.4/ux/_images/social_2x.png differ diff --git a/specifications/1.4/ux/_images/summary-1.png b/specifications/1.4/ux/_images/summary-1.png new file mode 100644 index 0000000..5daa72f Binary files /dev/null and b/specifications/1.4/ux/_images/summary-1.png differ diff --git a/specifications/1.4/ux/_images/summary-1_2x.png b/specifications/1.4/ux/_images/summary-1_2x.png new file mode 100644 index 0000000..a48a61e Binary files /dev/null and b/specifications/1.4/ux/_images/summary-1_2x.png differ diff --git a/specifications/1.4/ux/_images/summary-2.png b/specifications/1.4/ux/_images/summary-2.png new file mode 100644 index 0000000..141d138 Binary files /dev/null and b/specifications/1.4/ux/_images/summary-2.png differ diff --git a/specifications/1.4/ux/_images/summary-2_2x.png b/specifications/1.4/ux/_images/summary-2_2x.png new file mode 100644 index 0000000..e3b9252 Binary files /dev/null and b/specifications/1.4/ux/_images/summary-2_2x.png differ diff --git a/specifications/1.4/ux/_images/summary-3.png b/specifications/1.4/ux/_images/summary-3.png new file mode 100644 index 0000000..5926d34 Binary files /dev/null and b/specifications/1.4/ux/_images/summary-3.png differ diff --git a/specifications/1.4/ux/_images/summary-3_2x.png b/specifications/1.4/ux/_images/summary-3_2x.png new file mode 100644 index 0000000..dd4e832 Binary files /dev/null and b/specifications/1.4/ux/_images/summary-3_2x.png differ diff --git a/specifications/1.4/ux/_images/summary-4.png b/specifications/1.4/ux/_images/summary-4.png new file mode 100644 index 0000000..a87a265 Binary files /dev/null and b/specifications/1.4/ux/_images/summary-4.png differ diff --git a/specifications/1.4/ux/_images/summary-4_2x.png b/specifications/1.4/ux/_images/summary-4_2x.png new file mode 100644 index 0000000..9da5beb Binary files /dev/null and b/specifications/1.4/ux/_images/summary-4_2x.png differ diff --git a/specifications/1.4/ux/_images/summary-5.png b/specifications/1.4/ux/_images/summary-5.png new file mode 100644 index 0000000..0256721 Binary files /dev/null and b/specifications/1.4/ux/_images/summary-5.png differ diff --git a/specifications/1.4/ux/_images/summary-5_2x.png b/specifications/1.4/ux/_images/summary-5_2x.png new file mode 100644 index 0000000..9dd5a7d Binary files /dev/null and b/specifications/1.4/ux/_images/summary-5_2x.png differ diff --git a/specifications/1.4/ux/_images/test.png b/specifications/1.4/ux/_images/test.png new file mode 100644 index 0000000..8f0e0bb Binary files /dev/null and b/specifications/1.4/ux/_images/test.png differ diff --git a/specifications/1.4/ux/_images/thumbnail.png b/specifications/1.4/ux/_images/thumbnail.png new file mode 100644 index 0000000..e3a197a Binary files /dev/null and b/specifications/1.4/ux/_images/thumbnail.png differ diff --git a/specifications/1.4/ux/_images/thumbnail_anatomy.png b/specifications/1.4/ux/_images/thumbnail_anatomy.png new file mode 100644 index 0000000..4a52681 Binary files /dev/null and b/specifications/1.4/ux/_images/thumbnail_anatomy.png differ diff --git a/specifications/1.4/ux/_images/thumbnailexample.png b/specifications/1.4/ux/_images/thumbnailexample.png new file mode 100644 index 0000000..0ef49a5 Binary files /dev/null and b/specifications/1.4/ux/_images/thumbnailexample.png differ diff --git a/specifications/1.4/ux/_images/transcode-1_2x.png b/specifications/1.4/ux/_images/transcode-1_2x.png new file mode 100644 index 0000000..6aae5cb Binary files /dev/null and b/specifications/1.4/ux/_images/transcode-1_2x.png differ diff --git a/specifications/1.4/ux/_images/transcode-2_2x.png b/specifications/1.4/ux/_images/transcode-2_2x.png new file mode 100644 index 0000000..b9a9896 Binary files /dev/null and b/specifications/1.4/ux/_images/transcode-2_2x.png differ diff --git a/specifications/1.4/ux/_images/transcode-3_2x.png b/specifications/1.4/ux/_images/transcode-3_2x.png new file mode 100644 index 0000000..0363b38 Binary files /dev/null and b/specifications/1.4/ux/_images/transcode-3_2x.png differ diff --git a/specifications/1.4/ux/_images/transcode-4_2x.png b/specifications/1.4/ux/_images/transcode-4_2x.png new file mode 100644 index 0000000..2689ea8 Binary files /dev/null and b/specifications/1.4/ux/_images/transcode-4_2x.png differ diff --git a/specifications/1.4/ux/_images/travel_2x.png b/specifications/1.4/ux/_images/travel_2x.png new file mode 100644 index 0000000..c0f0969 Binary files /dev/null and b/specifications/1.4/ux/_images/travel_2x.png differ diff --git a/specifications/1.4/ux/_images/video-1_2x.png b/specifications/1.4/ux/_images/video-1_2x.png new file mode 100644 index 0000000..f32f9a5 Binary files /dev/null and b/specifications/1.4/ux/_images/video-1_2x.png differ diff --git a/specifications/1.4/ux/_images/video-2_2x.png b/specifications/1.4/ux/_images/video-2_2x.png new file mode 100644 index 0000000..dcd5381 Binary files /dev/null and b/specifications/1.4/ux/_images/video-2_2x.png differ diff --git a/specifications/1.4/ux/_images/video-3_2x.png b/specifications/1.4/ux/_images/video-3_2x.png new file mode 100644 index 0000000..480e878 Binary files /dev/null and b/specifications/1.4/ux/_images/video-3_2x.png differ diff --git a/specifications/1.4/ux/_images/video-4_2x.png b/specifications/1.4/ux/_images/video-4_2x.png new file mode 100644 index 0000000..5ae905c Binary files /dev/null and b/specifications/1.4/ux/_images/video-4_2x.png differ diff --git a/specifications/1.4/ux/_images/video-5.png b/specifications/1.4/ux/_images/video-5.png new file mode 100644 index 0000000..bde2337 Binary files /dev/null and b/specifications/1.4/ux/_images/video-5.png differ diff --git a/specifications/1.4/ux/_images/video_appearance.png b/specifications/1.4/ux/_images/video_appearance.png new file mode 100644 index 0000000..a2c044a Binary files /dev/null and b/specifications/1.4/ux/_images/video_appearance.png differ diff --git a/specifications/1.4/ux/_images/video_manifests.png b/specifications/1.4/ux/_images/video_manifests.png new file mode 100644 index 0000000..edf4bea Binary files /dev/null and b/specifications/1.4/ux/_images/video_manifests.png differ diff --git a/specifications/1.4/ux/_images/video_placement_0.png b/specifications/1.4/ux/_images/video_placement_0.png new file mode 100644 index 0000000..8c0e588 Binary files /dev/null and b/specifications/1.4/ux/_images/video_placement_0.png differ diff --git a/specifications/1.4/ux/_images/video_placement_1.png b/specifications/1.4/ux/_images/video_placement_1.png new file mode 100644 index 0000000..0dc2615 Binary files /dev/null and b/specifications/1.4/ux/_images/video_placement_1.png differ diff --git a/specifications/1.4/ux/_images/video_placement_2.png b/specifications/1.4/ux/_images/video_placement_2.png new file mode 100644 index 0000000..be03f19 Binary files /dev/null and b/specifications/1.4/ux/_images/video_placement_2.png differ diff --git a/specifications/1.4/ux/_images/video_placement_3.png b/specifications/1.4/ux/_images/video_placement_3.png new file mode 100644 index 0000000..1bbab5d Binary files /dev/null and b/specifications/1.4/ux/_images/video_placement_3.png differ diff --git a/specifications/1.4/ux/_images/video_status_summaries_for_invalid_states.png b/specifications/1.4/ux/_images/video_status_summaries_for_invalid_states.png new file mode 100644 index 0000000..89b118f Binary files /dev/null and b/specifications/1.4/ux/_images/video_status_summaries_for_invalid_states.png differ diff --git a/specifications/1.4/ux/_images/video_streaming_validation_process.png b/specifications/1.4/ux/_images/video_streaming_validation_process.png new file mode 100644 index 0000000..034c161 Binary files /dev/null and b/specifications/1.4/ux/_images/video_streaming_validation_process.png differ diff --git a/specifications/1.4/ux/_images/video_validation_states.png b/specifications/1.4/ux/_images/video_validation_states.png new file mode 100644 index 0000000..8c19404 Binary files /dev/null and b/specifications/1.4/ux/_images/video_validation_states.png differ diff --git a/specifications/1.4/ux/_images/wordmark.png b/specifications/1.4/ux/_images/wordmark.png new file mode 100644 index 0000000..fea55e9 Binary files /dev/null and b/specifications/1.4/ux/_images/wordmark.png differ diff --git a/specifications/1.4/ux/_images/wordmarks.png b/specifications/1.4/ux/_images/wordmarks.png new file mode 100644 index 0000000..80706fa Binary files /dev/null and b/specifications/1.4/ux/_images/wordmarks.png differ