AI Act art. 50 e Content Credentials

Disclaimer legale. Questa applicazione è uno strumento tecnico dimostrativo. Non costituisce consulenza legale né garanzia di conformità all'AI Act. La responsabilità del rispetto degli obblighi (art. 50 in particolare) resta del provider o del deployer del sistema di IA.

I quattro obblighi dell'art. 50

CommaSoggettoObbligo
50(1)Provider IA conversazionaliInformare che si sta interagendo con IA.
50(2)Provider di GenAIMarker machine-readable rilevabile e robusto.
50(3)Deployer riconoscimento emozioni/biometriaInformare le persone esposte.
50(4)Deployer di deep fake / testo IA pubblicoDisclosure visibile agli utenti finali.

Come questa app aiuta

  • Marker machine-readable (50(2)) — IPTC/XMP DigitalSourceType embedded nel JPEG + manifest C2PA sidecar.
  • Disclosure visibile (50(4)) — badge CR sovrapposto e opzionale watermark steganografico.
  • Verifica — controllo del manifest e della trust list C2PA + rilevamento XMP e watermark.
  • Distinzione ruoli — form bimodale Provider vs Deployer con gestione delle eccezioni artistica/editoriale.

Opzioni di firma C2PA

OpzioneFirma realeTrust list ufficialeCostoStato
Sidecar + c2patoolSì (locale)Dipende dal cert usato0 €Attivo
Test signer embedded (signing-service/)Sì (self-signed)No0 € + hosting NodeAttivo se configurato
DigiCert Content Trust ManagerCommerciale (contatto sales)Disattivato — stub documentato
Truepic SignCommercialeDisattivato — stub documentato

Il repository include signing-service/, un microservizio Node deployabile su Fly.io / Render / Docker che effettua la firma crittografica reale. DigiCert e Truepic restano disattivati per assenza di contratto commerciale; i punti di estensione sono documentati in src/lib/signing-provider.ts e nel README del signing service.

Cosa questa app NON garantisce

  • La firma crittografica C2PA completa richiede c2patool + certificato di una CA della trust list — l'app produce manifest e script pronti ma non firma nel browser.
  • Il watermark LSB è dimostrativo: non resiste alla ricompressione JPEG aggressiva o al ridimensionamento.
  • Nessun marker è a prova di rimozione volontaria: un attaccante determinato può sempre rimuovere metadati e ri-encodare.
  • L'app non conserva log delle operazioni: se ti serve un audit trail per uso deployer, integra un backend esterno.

SDK utilizzato

L'app è costruita interamente sul CAI Open Source SDK, l'implementazione di riferimento della specifica C2PA mantenuta dalla Content Authenticity Initiative:

  • c2pa-js — verifica in-browser (rotte /verify e /showcase).
  • c2patool — CLI ufficiale eseguita dal signing-service companion per l'embedding JUMBF e la firma X.509.
  • Motore condiviso c2pa-rs (Rust) → firme byte-per-byte equivalenti a quelle di qualunque altro Conforming Product.

Il gap rispetto ai prodotti ufficialmente conformi non è tecnologico ma di trust anchor: vedi Conforming Products per la roadmap.

Riferimenti

Documenti legali


English summary

EU AI Act art. 50 requires providers of generative AI to mark synthetic outputs in a machine-readable way (50(2)) and deployers of deep fakes to visibly disclose the artificial nature of the content (50(4)).

This app produces (a) an IPTC/XMP DigitalSourceType tag embedded in the JPEG, (b) an optional visible CR badge overlay, (c) an optional LSB steganographic watermark, and (d) a C2PA sidecar manifest ready to be signed with c2patool and a certificate.

This tool is a demonstrative technical utility, not legal advice, and does not by itself guarantee compliance.