Quando la miniatura EXIF tradisce la foto

Dentro quasi ogni fotografia scattata con una fotocamera o uno smartphone c'è una seconda immagine: una miniatura di poche decine di kilobyte, incorporata nei metadati EXIF al momento dello scatto. Molti editor la ignorano quando salvano. Se la miniatura non somiglia più alla foto che accompagna, qualcuno ha modificato quella foto dopo lo scatto — e ha dimenticato di dirlo alla miniatura.

Che cos'è la miniatura EXIF

Quando la fotocamera scrive un JPEG, ci infila dentro un blocco di metadati EXIF. Fra le date, il modello dell'obiettivo e i tempi di esposizione, quel blocco contiene spesso una copia in miniatura dell'immagine: tipicamente 160×120 pixel, salvata come JPEG a sua volta. Serviva a mostrare l'anteprima sul display della macchina senza decodificare l'intero file.

La miniatura è generata dall'immagine originale, nell'istante dello scatto. È, in un certo senso, una fotografia della fotografia, fatta prima che chiunque potesse metterci le mani.

Perché è un reperto

Un editor d'immagini che modifica la foto dovrebbe rigenerare anche la miniatura. Molti lo fanno. Molti altri, soprattutto strumenti frettolosi, app di ritocco mobile e script automatici, riscrivono i pixel dell'immagine principale e lasciano intatto il blocco EXIF, miniatura compresa.

Il risultato è una fotografia che porta con sé la propria versione precedente. Se la persona nell'immagine principale è stata cancellata, nella miniatura potrebbe esserci ancora. Se il volto è stato sostituito, la miniatura mostra il volto originale.

La miniatura non è una prova di manomissione. È una testimone: dice che l'immagine e la sua anteprima raccontano storie diverse. Perché lo facciano, va accertato guardandole.

Come Probatio confronta le due immagini

Confrontarle con un hash crittografico non ha senso: sono due immagini di risoluzione diversa, i loro byte non hanno alcun rapporto. Serve un confronto percettivo, che ignori risoluzione e compressione e guardi alla struttura.

foto.jpg blocco EXIF miniatura 160×120 immagine principale dHash 8×8 pHash 8×8 distanza dd distanza dp regola di consenso dd ≥ 18 E dp ≥ 16 → mismatch in ogni altro caso → coerente Entrambe le soglie devono essere superate. Una sola non basta. Su 64 bit, dd ≥ 18 significa similarità ≤ 71,9%; dp ≥ 16 significa similarità ≤ 75,0%. Le soglie sono prudenti: una miniatura coerente resta molto al di sotto di entrambe. aHash non partecipa a questo controllo: la miniatura ha una compressione diversa, e la sua luminanza media non è confrontabile.
Il controllo usa due algoritmi indipendenti e richiede che entrambi segnalino distanza elevata. È una scelta conservativa: preferisce mancare qualche manomissione piuttosto che accusarne una inesistente.

Probatio estrae la miniatura dal blocco EXIF, la decodifica, e calcola su entrambe le immagini — miniatura e immagine principale — le impronte dHash e pHash a 8×8, cioè 64 bit. Poi misura le due distanze di Hamming.

Il verdetto arriva per consenso: si dichiara mismatch solo se la distanza dHash è almeno 18 e la distanza pHash è almeno 16. Tradotto in similarità, servono valori sotto il 71,9% sul primo e sotto il 75,0% sul secondo.

Perché due algoritmi e non uno? Perché hanno punti ciechi diversi, come abbiamo visto. Un ritocco locale fa impennare dHash lasciando pHash tranquillo; un ritaglio fa il contrario. Pretendere che entrambi gridino significa scartare i casi in cui è uno solo dei due a essere sensibile a un'operazione innocua.

Come si legge un mismatch

Un mismatch non dice cosa è cambiato, né quando, né per mano di chi. Dice una cosa sola, ma pesante: la miniatura incorporata e l'immagine visibile non raffigurano la stessa scena, entro la tolleranza di due algoritmi percettivi indipendenti.

Da lì il lavoro comincia, non finisce:

  1. Guarda la miniatura. Probatio la estrae e la mostra. Molto spesso la differenza è visibile a occhio nudo, ed è quella la prova, non la distanza in bit.
  2. Confronta i metadati. Il campo del software di elaborazione, le date di modifica, la presenza di tabelle di quantizzazione non standard raccontano la stessa storia da un altro lato.
  3. Verifica la coerenza interna del blocco EXIF: date impossibili, GPS assente in una foto da smartphone, modello di fotocamera che non corrisponde ai parametri di scatto.

Quando il mismatch è innocente

Ci sono ragioni perfettamente lecite perché una miniatura non corrisponda. Vanno escluse prima di scrivere qualsiasi cosa in relazione.

Ritaglio o rotazione Operazioni legittime che cambiano la composizione. La miniatura resta quella dell'inquadratura originale. Causa più frequente in assoluto. Miniatura non conforme Alcune fotocamere scrivono anteprime già ritagliate, o applicano un profilo colore solo all'immagine grande. Verificabile su altri scatti della stessa macchina. Modifica dichiarata Un'immagine legittimamente editata e presentata come tale non diventa falsa perché la miniatura è vecchia. Il mismatch è coerente con la dichiarazione. Un mismatch è una domanda da porre all'immagine, non una risposta che l'immagine ha già dato. L'assenza di mismatch, per contro, non dimostra nulla: la miniatura può essere stata rigenerata.
Il ritaglio è la causa benigna più comune. Ed è anche la ragione per cui il controllo pretende il consenso di due algoritmi: pHash da solo lo segnalerebbe quasi sempre.

Il limite decisivo

Va detto con chiarezza, perché è il punto su cui una relazione mal scritta si rompe: l'assenza di mismatch non dimostra che l'immagine è autentica.

Un editor che rigenera correttamente la miniatura — e i software professionali lo fanno — produce un'immagine modificata con una miniatura perfettamente coerente. Anzi: chiunque può cancellare del tutto il blocco EXIF, e allora non c'è nemmeno il controllo da fare.

Il controllo della miniatura è asimmetrico. Quando trova qualcosa, ha trovato qualcosa. Quando non trova niente, non ha detto niente. È esattamente la stessa asimmetria di molti indizi forensi, e va scritta in relazione con queste parole, non con altre.

In pratica

  • Il controllo è automatico nell'analisi immagini di Probatio, insieme a EXIF, GPS, DQT, ICC, C2PA ed ELA.
  • La miniatura estratta è mostrata: guardala sempre, prima di leggere qualsiasi numero.
  • Se c'è mismatch, cerca la conferma altrove: metadati del software, tabelle di quantizzazione, Error Level Analysis. Un solo indizio non fa una perizia.
  • Se non c'è mismatch, non scrivere che l'immagine è integra. Scrivi che il controllo della miniatura non ha rilevato discordanze — che è un'altra frase.