DeepFake Check
Volver al Blog
DeepCheckAI Team 4 min de lectura

URI con hash de assertions C2PA: cómo revisar ausencias y discrepancias

Conserva el archivo y la salida completa del validador

Guarda el archivo exacto sin editar antes de abrirlo en un validador compatible con C2PA. Anota URL o ruta de origen, nombre, hora de obtención, validador y versión. Conserva toda la salida junto al archivo. Esta tabla es un método editorial para repetir la revisión; C2PA no exige este formato concreto.

Delimita la pregunta: si cada referencia de assertion del claim se resuelve dentro del mismo C2PA Manifest y si sus datos coinciden con el hash registrado. Es una pregunta sobre la integridad interna del registro de procedencia. No confirma el pie, el hablante, el lugar, la captura ni el hecho representado.

Asigna un identificador local al claim y a cada assertion. Copia labels y status codes sin traducirlos. Una etiqueta de color o un único pass/fail puede ocultar la diferencia entre una referencia ausente, una referencia externa, datos inválidos y un hash discrepante.

Resuelve cada URI antes de comprobar el hash

C2PA 2.2 define las entradas de created_assertions y gathered_assertions como estructuras hashed_uri; los claims version 1 usan assertions. Una assertion gathered sigue formando parte del claim y pasa por el mismo algoritmo. Revisa todas las entradas.

Primero comprueba si la URI figura entre las redacted assertions. Un claim no puede redactar assertions de su propio manifest. Para las demás, resuelve url y conserva la ubicación. La referencia debe apuntar a un lugar self#jumbf del mismo C2PA Manifest. Si sale de ese manifest, corresponde assertion.outsideManifest. Si la URI no se resuelve y no se recuperan los datos, corresponde assertion.missing.

No juntes ambos resultados. assertion.outsideManifest cruza el límite permitido; assertion.missing indica que no se resolvió y recuperó el dato referenciado. Ninguno explica por sí solo quién cambió el archivo o por qué quedó así.

Registra también una assertion presente en el assertion store pero no declarada en los arrays del claim. C2PA usa assertion.undeclared. No la añadas a las notas como si el claim la hubiera declarado.

Determina el algoritmo y compara el hash JUMBF

Tras resolver la URI, sigue el procedimiento de la especificación para determinar el algoritmo. Anota el algoritmo usado y cualquier failure code. Calcula el hash de la assertion mediante el procedimiento para JUMBF boxes citado por C2PA y compáralo con hash en hashed_uri.

Una discrepancia produce assertion.hashedURI.mismatch; una coincidencia, assertion.hashedURI.match. Conserva el code con sus mayúsculas, el assertion label, la URI resuelta, el algoritmo y la información de digest visible. Si el validador oculta un campo, escribe que no se mostró en vez de inferirlo.

El match solo indica que los datos calculados coinciden con el valor registrado bajo ese algoritmo. No vuelve verdaderas todas las afirmaciones de la assertion. El mismatch tampoco demuestra que el medio sea sintético o que el suceso sea falso.

Registra los fallos de formato en otra columna

C2PA aplica comprobaciones posteriores. Una standard assertion que no sea well-formed CBOR recibe assertion.cbor.invalid; un JSON no conforme recibe assertion.json.invalid. Son etapas distintas de assertion.missing y del mismatch, por lo que deben quedar separadas.

Usa una fila por assertion y columnas para claim, array, label, URI, redaction, ubicación resuelta, algoritmo, hash result, data-format result y pregunta pendiente. Para comparar dos copias, completa una tabla independiente por archivo. Una celda vacía significa que el validador no mostró o encontró el valor en esa ejecución.

Si el resultado es incompleto, conserva el archivo y repite con una versión documentada del validador. Cuando exista, compáralo con el original retenido por el editor u otra copia obtenida de forma independiente. Informa solo de la diferencia observada; un C2PA code no aporta motivo, autor ni explicación del mundo real.

Separa integridad, detección y verificación de hechos

Si analizas el archivo con DeepFakeCheck, guarda la señal probabilística aparte. DeepFakeCheck no resuelve URI de assertions C2PA, no valida hashes JUMBF ni emite sus status codes. La detección automática puede producir falsos positivos sobre material auténtico y falsos negativos sobre material sintético o alterado.

Un riesgo alto pide más revisión; uno bajo no repara una assertion ausente ni autentica el archivo. assertion.hashedURI.match respalda el resultado de integridad registrado, pero no confirma escena, pie, hablante o contexto. Contrasta esas afirmaciones con la publicación original y fuentes independientes.

Cierra el expediente con archivo, validador y versión, tabla por assertion, salida completa, fuentes externas, detector si se usó, preguntas abiertas y decisión. Otra persona debe poder repetir URI y hash sin convertir el resultado técnico en veredicto sobre el suceso.

Fuentes

  • C2PA, “C2PA Technical Specification — Validate the Assertions”: https://spec.c2pa.org/specifications/specifications/2.2/specs/C2PA_Specification.html#_validate_the_assertions

¿Necesitas comprobar un archivo sospechoso?

Abre el detector adecuado y combina el resultado con la fuente y el contexto.

Abrir detector