Immagini AI e identità dell’utente: cosa dice davvero il file

Da un file PNG generato da un modello AI possiamo ricostruire la filiera tecnica (piattaforma, modello, firme), ma l’identità dell’utente è un passo successivo, che passa dai log.

Negli ultimi mesi, complice la moda delle “Content Credentials”, è diventato quasi normale leggere affermazioni del tipo: «Basta avere il file dell’immagine: dai metadati puoi vedere esattamente chi l’ha generata su ChatGPT». È una frase che funziona bene in un post social, ma è tecnicamente sbagliata e pericolosa se la si porta dentro una perizia, una consulenza di parte o un’aula di tribunale.

La realtà è meno “magica” e molto più interessante: dal solo file immagine possiamo capire con buona precisione come è stata generata e da quale piattaforma (es. ChatGPT/OpenAI con attestazione Truepic), ma l’utente umano è identificabile solo indirettamente, tramite log e altri dati che nel file non compaiono per design.

Il file immagine come pacco di Amazon

La metafora che uso con colleghi e avvocati è semplice: il file immagine è come un pacco di Amazon. Dall’etichetta leggi il corriere, il centro logistico, il codice a barre del collo, la data di spedizione. Ma il nome del tizio che ha cliccato “Compra ora” sta nel database di Amazon, non stampato sul cartone.

Con i PNG generati da OpenAI succede qualcosa di simile. Non siamo davanti a un “semplice” file con pixel e qualche metadato EXIF minimalista, ma a un contenitore che ingloba:

  • un manifest C2PA (Content Provenance and Authenticity),
  • impacchettato in JUMBF (JPEG Universal Metadata Box Format),
  • firmato con una catena di certificati X.509 riconducibile a Truepic/OpenAI.

Questo manifest è una sorta di “cartella clinica” dell’immagine, con dentro: chi dichiara di averla creata, con quale modello, quali hash ne garantiscono l’integrità e quali firme ne attestano la provenienza.

Cosa contiene davvero un manifest C2PA

Semplificando molto, senza perdere sostanza, il manifest C2PA è composto da tre blocchi principali:

1. Claim: la dichiarazione principale

Il claim (c2pa.claim.v2) è il nucleo del manifest. Contiene un identificatore di istanza, il generatore dichiarato (es. ChatGPT), l’elenco delle assertion e un riferimento alla firma digitale che copre l’insieme. È il punto in cui il sistema dice “questa è la storia che mi assumo la responsabilità di firmare”.

2. Assertion: azioni, hash, ingredienti, thumbnail

Attorno al claim ci sono uno o più blocchi di tipo assertion: c2pa.actions.v2, c2pa.hash.data, c2pa.ingredient.v3, c2pa.thumbnail.ingredient e altri possibili. Ognuno descrive un pezzo di informazione:

  • le azioni eseguite sul contenuto (create, convert, open, ecc.);
  • il modo in cui viene calcolato l’hash sul manifest e/o sui dati binari;
  • eventuali “ingredienti” (altri file di origine collegati al contenuto);
  • le thumbnail incorporate, utili per anteprime e verifiche rapide.

Nel caso di una PNG generata da ChatGPT/OpenAI, una assertion tipica può dire: azione c2pa.created, softwareAgent.name = GPT-4o e digitalSourceType = .../trainedAlgorithmicMedia. Tradotto: l’immagine è stata creata da un modello AI (GPT-4o) e classificata esplicitamente come “media generato da algoritmo addestrato”.

3. Signature: la firma COSE con catena X.509

Infine c’è la parte di firma: c2pa.signature contiene una struttura COSE_Sign1, che a sua volta include:

  • l’algoritmo di firma (tipicamente ES256, ECDSA P-256 + SHA-256);
  • una o più firme binarie;
  • una catena di certificati X.509 (CA + certificato foglia).

In molte immagini OpenAI si trovano certificati con soggetti del tipo WebClaimSigningCA / Truepic come CA e Truepic Lens CLI in ChatGPT / OpenAI / ChatGPT come certificato foglia, con un periodo di validità ben definito.

Metafora: il manifest è la cartella clinica, la firma COSE è il timbro del medico e la catena X.509 è l’ordine dei medici che certifica che quello non è un timbro di gomma.

Cosa posso affermare dal solo file

Da un punto di vista forense, dal solo PNG con manifest C2PA integro posso affermare, in modo difendibile, almeno quattro cose importanti.

1. Identità del file

Calcolando MD5, SHA-1 e SHA-256 sul file e confrontandoli con gli hash interni al manifest (là dove previsti), posso dimostrare che due copie sono bit-per-bit identiche. Se trovo lo stesso hash su un sito A e su un sito B, non sto parlando di “due immagini simili” ma dello stesso oggetto digitale.

2. Filiera tecnica di generazione

Dal claim e dalle assertion estraggo:

  • claim_generator_info.name = ChatGPT;
  • softwareAgent.name = GPT-4o;
  • digitalSourceType = .../trainedAlgorithmicMedia;
  • certificati X.509 riconducibili a Truepic/OpenAI.

Questo mi consente di classificare il file come: immagine generata dalla pipeline di ChatGPT/OpenAI, modello GPT-4o, con attestazione C2PA firmata da Truepic. Non è un’opinione, è ciò che risulta dai dati firmati.

3. Unicità dell’evento di generazione

Se vedo una sola azione c2pa.created e, al massimo, un c2pa.converted tecnico, senza una catena di editing complessa, posso ragionevolmente concludere che esiste un solo evento originario di creazione registrato dalla piattaforma. Il resto del mondo, quando mostra la stessa PNG, sta usando copie di quel master.

4. Esclusione di certe versioni difensive

Il manifest mi consente di smontare, già sul file, alcune narrazioni comode:

  • «L’ho disegnata io con Photoshop» → il file porta la firma ChatGPT/Truepic, non quella di un editor locale;
  • «È una foto scattata da me» → il digitalSourceType è “trainedAlgorithmicMedia”, non una foto da camera;
  • «Ho usato un altro generatore AI qualsiasi» → la catena di certificati punta a una piattaforma specifica.

Non ho ancora il nome dell’utente, ma ho ristretto il campo e reso incompatibili alcune versioni che altrimenti resterebbero sul tavolo.

Perché l’utente non è scritto nel PNG

A questo punto arriva di solito la domanda: “Ma perché allora il nome utente non è scritto nei metadati, così ci togliamo il pensiero?”. La risposta sta in due parole che in tribunale sentiamo spesso: privacy e proporzionalità.

Se il manifest C2PA contenesse nome, cognome, email, IP, ID dispositivo e via dicendo, ogni immagine condivisa sarebbe un leak ambulante. Chi riceve il file potrebbe leggerne l’identità del creatore senza alcun controllo, senza logging e senza alcuna forma di necessità.

Lo standard C2PA è pensato per certificare la filiera del contenuto, non per fare doxxing degli utenti. L’informazione sull’account che ha generato l’immagine rimane nei log del provider (OpenAI, nel nostro esempio), soggetto a contratti, leggi, ordini del giudice e procedure di accesso controllato.

Come si arriva comunque all’utente (per via indiretta)

Dire che “dal file non posso leggere il nome dell’utente” non significa che “è impossibile identificarlo”. Significa che il file è solo il primo anello della catena. Da lì in poi servono log, hosting, ISP e un minimo di gioco di squadra tra tecnici e legali.

La sequenza tipica è questa:

  1. Dal manifest individuo con precisione la piattaforma di generazione: ChatGPT/OpenAI con certificazione Truepic, modello GPT-4o, istanza identificata da un certo ID interno.
  2. In sede di causa o indagine, chiedo al Giudice di ordinare al provider: log di generazione, timestamp, ID account, eventualmente il prompt usato. Il provider può mappare quell’ID tecnico al proprio database utenti.
  3. In parallelo, l’hosting del sito che ospita l’immagine (o gli hosting dei siti coinvolti) può fornire log di upload, IP, credenziali usate per pubblicare il contenuto.
  4. Incrociando log del provider AI e log dell’hosting si può spesso risalire a una utenza concreta, o quantomeno restringere il cerchio in maniera significativa.

Metafora finale: il manifest C2PA non è il nome sulla cassetta delle lettere, è il timbro dell’ufficio postale. Ti dice da quale sportello è partito il pacco, in che giorno, con quale servizio. Per sapere chi ha consegnato il modulo allo sportello devi aprire gli archivi dell’ufficio postale, non guardare più forte il francobollo.

Perché la distinzione diretto/indiretto conta (soprattutto in aula)

In conclusione, la distinzione tra identificazione diretta e indiretta non è pignoleria da tecnici, è la linea che separa la buona consulenza dalle promesse impossibili nei post dei social.

Dal solo file posso:

  • dimostrare origine AI e piattaforma di generazione;
  • dimostrare identità bit-per-bit tra copie diverse;
  • escludere certe versioni difensive sul “come è nata” l’immagine;
  • indicare esattamente quali soggetti tecnici vanno coinvolti per i log.

Il nome e cognome dell’utente, se serve, arriva dopo: tramite richieste mirate, ordini del Giudice e attività istruttoria. Confondere questi piani non aiuta né chi difende, né chi giudica, né chi fa il lavoro sporco sui log.

Tag: forensics immagini PNG leggende

← Torna all’indice del blog