Assertions de acciones C2PA: cómo validar estructura y referencias
Conserva el activo y la salida completa
Guarda el activo exacto antes de abrirlo con un validador compatible con C2PA. Anota URL o ruta local, hora de obtención, identificador, nombre y versión del validador, label del active manifest, versión del claim y salida completa. Esta hoja es una propuesta operativa, no un formato exigido por C2PA. No reexportes el archivo ni lo sustituyas por una captura antes de la primera ejecución.
Revisa solo la actions assertion que la herramienta informa. Registra si el label es c2pa.actions o c2pa.actions.v2, su posición en el claim y cada action en orden. Conserva los campos visibles parameters, ingredients o el antiguo ingredient, redacted, softwareAgent, softwareAgents y templates. Marca como no informado lo que la herramienta no muestre.
La revisión comprueba estructura y referencias. No reconstruye un historial que el manifest no registró. Un resultado conforme no demuestra quién ejecutó una action, si el pie es correcto ni si el suceso ocurrió. Un fallo tampoco demuestra que el medio sea falso.
Comprueba actions y la regla de primera posición
Una assertion c2pa.actions o c2pa.actions.v2 debe tener el campo actions. Si falta, el claim se rechaza con assertion.action.malformed. Conserva label, campo observado y código exacto.
Para c2pa.created o c2pa.opened se aplica además una regla de orden. En un claim v2, la actions assertion debe ser la primera de created_assertions o gathered_assertions; en v1, la primera actions assertion de assertions. La action también debe ser el primer elemento de su array actions. El incumplimiento produce assertion.action.malformed.
Registra versión, nombre del array, posición de assertion, posición de action y código en columnas distintas. Una insignia general no identifica qué condición falló; en ese caso conserva la salida y deja el punto sin resolver.
Resuelve ingredients según la action
c2pa.opened, c2pa.placed y c2pa.removed necesitan parameters no vacío y una referencia a ingredients. V2 usa ingredients; el formato anterior usa ingredient. En v2 debe ser un array con al menos un elemento. Si falta o está vacío, el código es assertion.action.ingredientMismatch.
c2pa.opened exige exactamente una URI hash válida que resuelva en el current manifest a una ingredient assertion con relationship igual a parentOf. c2pa.placed exige una o más URI que resuelvan en el current manifest a ingredients componentOf. c2pa.removed también exige componentOf, pero en otro manifest.
Para c2pa.transcoded o c2pa.repackaged, las referencias son opcionales. Si aparecen, cada URI debe resolver a una ingredient assertion parentOf del current manifest. Un resultado contrario produce assertion.action.ingredientMismatch. Guarda URI literal, manifest resuelto, relationship y código; no sustituyas una referencia por otra de nombre parecido.
Separa redaction e iconos
Si parameters contiene redacted, comprueba su URI JUMBF. Una URI ausente o que no resuelve a una assertion produce assertion.action.redactionMismatch. No la mezcles con un ingredient mismatch.
Si softwareAgent, softwareAgents o un template incluye icon, C2PA remite a la validación de referencias. Registra solo lo que expone el validador. Un icono, nombre de agente o template no prueba que la action ocurriera como se describe.
La tabla debe incluir activo, manifest y claim, label y posición de assertion, action y posición, estado de parameters, URI de ingredient o redaction, manifest resuelto, relationship, código, versión y dudas. Adjunta la salida íntegra.
Informa el resultado sin dictaminar la verdad
Un pase solo indica que la assertion revisada cumplió estas reglas en esa ejecución. Firma, certificados, hashes, asset binding e ingredient manifests requieren otras pruebas. Verifica editor, personas, pie, fecha, lugar y suceso con la fuente original y pruebas independientes.
Si analizas el activo con DeepFakeCheck, mantén la señal probabilística fuera de la tabla C2PA. La detección puede dar falsos positivos en medios auténticos y falsos negativos en medios sintéticos o alterados. DeepFakeCheck no valida actions assertions ni emite estos códigos.
Fuentes
- C2PA, “C2PA Technical Specification, C2PA Actions Validation”: https://spec.c2pa.org/specifications/specifications/2.2/specs/C2PA_Specification.html#_c2pa_actions_validation
¿Necesitas comprobar un archivo sospechoso?
Abre el detector adecuado y combina el resultado con la fuente y el contexto.
Abrir detector