

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# C2PA 매니페스트를 사용한 콘텐츠 신뢰성
<a name="c2pa-manifest"></a>

를 사용하여 MP4 출력을 생성할 때 선택적으로 C2PA 매니페스트를 포함하여 미디어에 콘텐츠 출처와 신뢰성을 제공할 AWS Elemental MediaConvert수 있습니다. C2PA(Coalition for Content Provenance and Authenticity)는 디지털 콘텐츠의 출처 및 기록에 대한 검증 가능한 정보를 제공하는 표준화된 방법입니다.

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. **인증서 보안 암호**에 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을 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(SHA-256을 사용하는 ECDSA) 서명 알고리즘만 지원합니다.  
에 대한 자세한 내용은 [AWS KMS 사용 설명서를](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) AWS KMS참조하세요.

**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"
  }
 ]
}
```