EU AI Act Article 50 — content-marking durability evidence

Article 50 requires providers of generative AI to mark AI-generated content so it is detectable. The endorsed technical rail is C2PA content credentials. We measured whether that marking actually survives ordinary handling — re-encoding, resizing, cropping, screenshots, format conversion.

The measurement and its signature were produced on an independent compute node. This page re-checks the signature in your browser against the published public key — nothing here depends on trusting CSOAI's server.

The finding

✅ signature valid · unaltered
0%
of embedded C2PA manifests survived any real transform
valid ≠ bound
detached sidecar: signature stays valid, but binding to the image and issuer resolution both drop to 0%

Plain English: the marking Article 50 relies on mostly does not survive the things people do to images every day. A provider cannot assume an embedded credential proves provenance downstream — which is exactly what an “adequate alternative means” gap analysis must document.

Survival by check

Embedded credential
CheckSurvivedRate95% CI (clustered)
manifest_present0/1080%[0.0, 24.3]%
digital_source_type0/1080%[0.0, 24.3]%
signature_valid0/1080%[0.0, 24.3]%
binding_intact0/1080%[0.0, 24.3]%
issuer_resolvable0/1080%[0.0, 24.3]%
Detached sidecar
CheckSurvivedRate95% CI (clustered)
manifest_present108/108100%[75.8, 100.0]%
digital_source_type108/108100%[75.8, 100.0]%
signature_valid108/108100%[75.8, 100.0]%
binding_intact0/1080%[0.0, 24.3]%
issuer_resolvable0/1080%[0.0, 24.3]%

Machine-readable evidence

article50_oscal.jsonOSCAL 1.1.0 assessment-results · control EU-AI-ACT-50
✅ signature valid · unaltered
provbench.jsonraw measurement · signed
✅ signature valid · unaltered

OSCAL is NIST's machine-readable compliance language (accepted in FedRAMP deliverables). Per FedRAMP RFC-0024, OSCAL does not itself mandate cryptographic signatures — this pack ships the Ed25519 signature inside the envelope, closing that gap.

Verify it yourself

Signatures above are checked in your browser (WebCrypto Ed25519). To verify offline:

python3 sign.py --verify provbench.json
Published Ed25519 public key
ZnF3DZUFc5QOoy+y07rvzNUyxJgza2kUQmn1nv4S9SY=
provbench.json body sha256 (recomputed here): 5e2d715348204bdf18f44fd034459a11bbc36325ba310c1171a0f29ff3e1e04a

What is proven: the artifacts are unaltered and were signed by the holder of the published key; the survival rates are recomputed from the exact signed bytes.

What is not (yet) proven here: that the signing key belongs to CSOAI as a legal identity — that is a separate identity-binding step (a published key page and, per the roadmap, an SSL.com / C2PA conformance certificate). This page proves integrity, not attributed identity.

CSOAI is an independent measurement body. We issue measurements and signed attestations, never certificates of conformity. This evidence supports an Article 50 “adequate alternative means” case; it is not legal advice.