驗證 C2PA 資訊清單 - MediaConvert

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

驗證 C2PA 資訊清單

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

正確驗證的 C2PA 資訊清單可確認:

  • 資訊清單由指定的憑證簽署

  • 自資訊清單建立以來,內容尚未修改

  • 資訊清單中的動作和聲明是完整的

如需 C2PA 和可用驗證工具的詳細資訊,請參閱 C2PA 網站。您可以使用開放原始碼 c2patool 來驗證媒體檔案中的 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" } ] }