

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# C2PA マニフェストによるコンテンツの信頼性
<a name="c2pa-manifest"></a>

を使用して MP4 出力を作成する場合 AWS Elemental MediaConvert、オプションで C2PA マニフェストを埋め込んで、コンテンツの出所と信頼性をメディアに提供できます。C2PA (Coalition for Content Provenance and Authenticity) は、デジタルコンテンツのオリジンと履歴に関する検証可能な情報を提供する標準化された方法です。

C2PA マニフェストは、検証可能な情報をメディアファイルに埋め込むことで、誤った情報やディープフェイクの増大する問題に対処するのに役立ちます。この情報は、コンテンツのオリジンと変更の追跡可能なレコードを作成します。

ワークフローに C2PA マニフェストを含める理由には、次のようなものがあります。
+ メディアファイルのトランスコード履歴に関する検証可能な情報を提供します。
+ ダウンストリームシステムがコンテンツの信頼性を検証できるようにします。
+ デジタルメディアの透明性イニシアチブをサポートします。

コンテンツの信頼性と C2PA の詳細については、[「Content Authenticity Initiative](https://contentauthenticity.org/) and [C2PA specification](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. **出力設定**で、**Container** を **MPEG-4 コンテナ**に設定します。

1. **MPEG-4 コンテナ設定**を展開します。

1. **C2PA マニフェスト**で、**含め**る を選択します。

1. **証明書シークレット**には、C2PA パブリック証明書チェーンを含む Secrets Manager シークレットの名前または ARN を PEM 形式で入力します。

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 のサンプル ARN を 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://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 with 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 をマニフェストを生成したサービスとして識別します。

**形式**  
メディア形式 (video/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"
  }
 ]
}
```