

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# C2PA 資訊清單的內容真實性
<a name="c2pa-manifest"></a>

當您使用 建立 MP4 輸出時 AWS Elemental MediaConvert，您可以選擇嵌入 C2PA 資訊清單，以提供媒體的內容來源和真實性。C2PA （內容實物與真實性聯盟） 是一種標準化方法，可提供有關數位內容來源和歷史記錄的可驗證資訊。

C2PA 資訊清單透過將可驗證的資訊嵌入媒體檔案中，協助解決不斷增長的錯誤資訊和深層仿造問題。此資訊會建立內容原始伺服器和修改的可追蹤記錄。

在工作流程中包含 C2PA 資訊清單的一些原因可能包括：
+ 提供媒體檔案轉碼歷史記錄的可驗證資訊。
+ 允許下游系統驗證內容的真實性。
+ 支援數位媒體的透明度計畫。

如需內容真偽和 C2PA 的詳細資訊，請參閱：[內容真偽計畫](https://contentauthenticity.org/)和 [C2PA 規格](https://c2pa.org/specifications/specifications/2.2/index.html)

**Topics**
+ [使用 C2PA 資訊清單設定任務](c2pa-manifest-use.md)
+ [C2PA 資訊清單的需求](c2pa-manifest-requirements.md)
+ [C2PA 資訊清單結構](c2pa-manifest-structure.md)
+ [驗證 C2PA 資訊清單](c2pa-manifest-verification.md)

# 使用 C2PA 資訊清單設定任務
<a name="c2pa-manifest-use"></a>

若要在 MP4 輸出中包含 C2PA 資訊清單，您需要使用簽署和內嵌資訊清單所需的參數來設定任務設定。

## MediaConvert 主控台
<a name="collapsible-section-1"></a>

若要使用 MediaConvert 主控台在 MP4 輸出中包含 C2PA 資訊清單：

1. 在**輸出群組**區段中，新增**檔案**輸出群組。

1. 在**輸出設定**中，將**容器**設定為 **MPEG-4 容器**。

1. 展開 **MPEG-4 容器設定**。

1. 針對 **C2PA 資訊清單**，選擇**包含**。

1. 針對**憑證秘密**，以 PEM 格式輸入包含 C2PA 公有憑證鏈之 Secrets Manager 秘密的名稱或 ARN。

1. 針對**簽署 KMS 金鑰**，輸入用於簽署 C2PA 資訊清單之 AWS KMS 金鑰的 ID 或 ARN。

## API、SDK 或 AWS Command Line Interface (AWS CLI)
<a name="collapsible-section-2"></a>

若要使用 API、 SDK 或 AWS Command Line Interface (AWS CLI) 包含 C2PA 資訊清單，請在 MP4 容器設定中包含下列項目。將**憑證秘密**和**簽署 KMS 金鑰**的範例 ARNs 取代為您的 ARNs：

```
...
    "OutputGroups": [{
        "Name": "File Group",
        "OutputGroupSettings": {
            "Type": "FILE_GROUP_SETTINGS",
            "FileGroupSettings": {}
        },
        "Outputs": [{
            "VideoDescription": {...},
            "AudioDescriptions": [...],
            "ContainerSettings": {
                "Container": "MP4",
                "Mp4Settings": {
                    "C2paManifest": "INCLUDE",
                    "CertificateSecret": "arn:aws:secretsmanager:us-west-2:111122223333:secret:c2pa-certificate-abc123",
                    "SigningKmsKey": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
                }
            }
        }]
    }]
...
```

# C2PA 資訊清單的需求
<a name="c2pa-manifest-requirements"></a>

若要在 MediaConvert 輸出中包含 C2PA 資訊清單，您需要下列項目：

**MP4 容器**  
C2PA 資訊清單僅支援 MP4 輸出。

**C2PA 憑證**  
存放在 Secrets Manager 中的 PEM 格式公有憑證鏈。憑證鏈應包含簽署者的憑證和所有中繼憑證，但不包含根憑證。  
如需取得 C2PA-compatible憑證的詳細資訊，請參閱 https：//[https://opensource.contentauthenticity.org/docs/signing/get-cert](https://opensource.contentauthenticity.org/docs/signing/get-cert)  
如需 Secrets Manager 的資訊，請參閱 [Secrets Manager 使用者指南](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)。

**AWS KMS 金鑰**  
具有 ECDSA\$1SHA\$1256 簽署功能的 AWS KMS 金鑰。此金鑰用於簽署 C2PA 資訊清單。目前，MediaConvert 僅支援 ES256 (ECDSA 搭配 SHA-256) 簽署演算法。  
如需 的詳細資訊 AWS KMS，請參閱 [AWS KMS 使用者指南](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)。

**IAM 許可**  
您的 MediaConvert 服務角色必須具有存取指定 Secrets Manager 秘密和 AWS KMS 金鑰的許可。將下列許可新增至您的服務角色：    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "kms:Sign",
            "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        },
        {
            "Effect": "Allow",
            "Action": "secretsmanager:GetSecretValue",
            "Resource": "arn:aws:secretsmanager:us-west-2:111122223333:secret:c2pa-certificate-abc123"
        }
    ]
}
```

**大小限制**  
C2PA 資訊清單的大小限制為 32KB。如果您的憑證鏈或其他資訊清單元件超過此限制，任務將會失敗並顯示錯誤。

# C2PA 資訊清單結構
<a name="c2pa-manifest-structure"></a>

當您在 MP4 輸出中嵌入 C2PA 資訊清單時，MediaConvert 會產生包含下列元件的資訊清單：

**宣告產生器資訊**  
將 MediaConvert 識別為產生資訊清單的服務。

**格式**  
指定媒體格式 （影片/mp4)。

**聲明**  
包括對內容執行動作的相關陳述式，例如：  
+ `c2pa.opened`：表示內容已開啟進行處理
+ `c2pa.transcoded`：表示內容已轉碼

**資產雜湊**  
媒體內容的密碼編譯雜湊，以驗證其完整性。MediaConvert 使用 SHA-256 雜湊演算法進行資產驗證。

**數位簽章**  
使用 KMS 金鑰建立的簽章，可驗證資訊清單的真實性。簽章包含來自 DigiCert 時間戳記授權單位 (http://timestamp.digicert.com：//) 的時間戳記字符，以確保長期簽章驗證。

資訊清單使用標準 C2PA UUID 方塊內嵌在 MP4 檔案中，放置在 FTYP 方塊之後和 MOOV 方塊之前。

**注意**  
如果您的輸入檔案已包含 C2PA 資訊清單，MediaConvert 不會將其保留在輸出中。而是產生新的資訊清單。

# 驗證 C2PA 資訊清單
<a name="c2pa-manifest-verification"></a>

使用 C2PA 資訊清單建立 MP4 輸出後，您可以使用與 C2PA-compatible工具來驗證資訊清單。這些工具可以擷取和驗證資訊清單，包括檢查數位簽章和資產雜湊。

正確驗證的 C2PA 資訊清單可確認：
+ 資訊清單由指定的憑證簽署
+ 自資訊清單建立以來，內容尚未修改
+ 資訊清單中的動作和聲明保持不變

如需 C2PA 和可用驗證工具的詳細資訊，請參閱 [C2PA 網站](https://c2pa.org)。您可以使用開放原始碼 [c2patool](https://github.com/contentauth/c2pa-rs/tree/main/cli) 來驗證媒體檔案中的 C2PA 資訊清單。例如：

```
c2patool example.mp4 --info
```

成功的驗證會顯示類似以下的輸出：

```
$ c2patool example.mp4 --info
Information for example.mp4
Manifest store size = 32000 (0.56% of file size 5705967)
Validated
One manifest
```

如需資訊清單內容的詳細資訊，請使用 `--detailed`旗標：

```
c2patool example.mp4 --detailed
```

以下是 c2patool 的範例輸出：

```
$ c2patool example.mp4 --detailed
{
 "active_manifest": "urn:uuid:0b3bd0b6-9783-4adc-9609-fb29fff858da",
 "manifests": {
  "urn:uuid:0b3bd0b6-9783-4adc-9609-fb29fff858da": {
   "claim": {
    "dc:title": "example.mp4",
    "dc:format": "video/mp4",
    "instanceID": "xmp:iid:190fb451-7dc4-4878-b0d2-512d9b1c5dab",
    "claim_generator": "mediaconvert/1.0",
    "claim_generator_info": [
     {
      "name": "MediaConvert",
      "version": "1.0",
      "org.cai.c2pa_rs": "0.39.0"
     }
    ],
    "signature": "self#jumbf=/c2pa/urn:uuid:0b3bd0b6-9783-4adc-9609-fb29fff858da/c2pa.signature",
    "assertions": [
     {
      "url": "self#jumbf=c2pa.assertions/c2pa.actions",
      "hash": "P2+zrSTu2U5aGo4mNC35EWEM7vjfLho/2tTKmZ+ls+k="
     },
     {
      "url": "self#jumbf=c2pa.assertions/c2pa.hash.bmff",
      "hash": "majeRA6voTIMvHShWBR5Vqg7e4c7dVFsfTbezIzn63o="
     }
    ],
    "alg": "sha256"
   },
   "assertion_store": {
    "c2pa.actions": {
     "actions": [
      {
       "action": "c2pa.opened"
      },
      {
       "action": "c2pa.transcoded"
      }
     ]
    },
    "c2pa.hash.bmff": {
     "alg": "sha256",
     "hash": "BHZI6ml1LqBf2xLaKAzYS8uOYwWo5/Wsc30wRYmnr4M=",
     "name": "jumbf manifest",
     "exclusions": [
      {
       "data": null,
       "exact": null,
       "flags": null,
       "xpath": "/ftyp",
       "length": null,
       "subset": null,
       "version": null
      },
      {
       "data": null,
       "exact": null,
       "flags": null,
       "xpath": "/uuid",
       "length": null,
       "subset": null,
       "version": null
      },
      {
       "data": null,
       "exact": null,
       "flags": null,
       "xpath": "/free",
       "length": null,
       "subset": null,
       "version": null
      },
      {
       "data": null,
       "exact": null,
       "flags": null,
       "xpath": "/mdat",
       "length": null,
       "subset": [
        {
         "length": 8,
         "offset": 0
        }
       ],
       "version": null
      },
      {
       "data": null,
       "exact": null,
       "flags": null,
       "xpath": "/moov",
       "length": null,
       "subset": null,
       "version": null
      },
      {
       "data": null,
       "exact": null,
       "flags": null,
       "xpath": "/mfra",
       "length": null,
       "subset": null,
       "version": null
      }
     ]
    }
   },
   "signature": {
    "alg": "es256",
    "issuer": "Test Organization",
    "time": "2025-04-11T23:17:33+00:00"
   }
  }
 },
 "validation_status": [
  {
   "code": "claimSignature.validated",
   "url": "self#jumbf=/c2pa/urn:uuid:0b3bd0b6-9783-4adc-9609-fb29fff858da/c2pa.signature",
   "explanation": "claim signature valid"
  },
  {
   "code": "assertion.hashedURI.match",
   "url": "self#jumbf=/c2pa/urn:uuid:0b3bd0b6-9783-4adc-9609-fb29fff858da/c2pa.assertions/c2pa.actions",
   "explanation": "hashed uri matched: self#jumbf=c2pa.assertions/c2pa.actions"
  },
  {
   "code": "assertion.hashedURI.match",
   "url": "self#jumbf=/c2pa/urn:uuid:0b3bd0b6-9783-4adc-9609-fb29fff858da/c2pa.assertions/c2pa.hash.bmff",
   "explanation": "hashed uri matched: self#jumbf=c2pa.assertions/c2pa.hash.bmff"
  },
  {
   "code": "assertion.bmffHash.match",
   "url": "self#jumbf=/c2pa/urn:uuid:0b3bd0b6-9783-4adc-9609-fb29fff858da/c2pa.assertions/c2pa.hash.bmff",
   "explanation": "data hash valid"
  }
 ]
}
```