Integrita

Come si dimostra che una foto non e' stata ritoccata

Cercare i segni del fotoritocco e' un lavoro senza fine. C'e' un modo piu' semplice e definitivo: fissare un'impronta al momento dello scatto e confrontarla dopo.

La domanda viene quasi sempre posta al contrario: «si puo' capire se questa foto e' stata ritoccata?». E' la strada difficile — a volte impraticabile. La strada che funziona e' l'opposta: non cercare la modifica, ma rendere impossibile nasconderla.

Perche' analizzare i pixel non basta

Esistono tecniche di analisi forense dell'immagine che cercano tracce di manipolazione: incoerenze nella compressione, discontinuita' nel rumore del sensore, ombre e prospettive che non tornano. Sono strumenti seri e in mani esperte danno risultati.

Hanno pero' due limiti strutturali. Il primo: sono probabilistici. Producono indizi, non certezze, e un ritocco fatto bene puo' non lasciare tracce rilevabili. Il secondo, piu' scomodo: sono una gara di rincorsa. Ogni tecnica di rilevamento nasce dopo la tecnica di manipolazione che deve scoprire, e viene superata dalla successiva.

Chi deve dimostrare l'autenticita' cercando i segni del falso ha gia' perso la posizione migliore. Conviene occupare quella opposta: fissare com'era, e confrontare.

L'impronta crittografica: una domanda, una risposta

Un hash e' una funzione che prende un file di qualsiasi dimensione e restituisce una stringa di lunghezza fissa. Ha una proprieta' che qui e' tutto: se cambia anche un solo bit del file, l'impronta cambia completamente. Non «un po'»: diventa irriconoscibile. E' il cosiddetto effetto valanga.

foto originale 4 128 576 byte stessa foto un solo pixel schiarito SHA-256 SHA-256 9f2a41c8b7...3e6d impronta di riferimento c40e79d2f1...8a15 nulla in comune con la prima
L'effetto valanga: una modifica invisibile a occhio nudo produce un'impronta totalmente diversa. Non esiste modo di ritoccare un file mantenendone l'hash.

Questo trasforma una questione di opinione in una questione aritmetica. Non si discute piu' se l'immagine «sembri» manipolata: si ricalcola l'impronta e la si confronta con quella firmata al momento dello scatto. O coincide, o non coincide.

LOCUS calcola tre impronte diverse dello stesso media — MD5, SHA-256 e SHA-512 — in un'unica passata di lettura. Una precisazione doverosa: MD5 e' inclusa solo per compatibilita' storica e interoperabilita' con strumenti datati. Non e' una garanzia: contro collisioni intenzionali e' considerata insicura da anni. Le garanzie effettive sono SHA-256 e SHA-512.

Il problema pratico dell'hash

C'e' un limite operativo evidente. L'impronta risponde alla domanda «e' lo stesso identico file?», che non e' sempre la domanda che interessa. Se qualcuno ridimensiona la tua foto, la ricomprime o la manda via chat, l'hash cambia — anche se l'immagine e' visivamente la stessa e nessuno ha alterato il contenuto.

Serve quindi un secondo strumento, che lavori sul contenuto visivo anziche' sui byte.

Le impronte percettive

Hash crittografico MD5 / SHA-256 / SHA-512 e' lo stesso identico file? risposta binaria autoritativo Impronte percettive aHash / dHash / pHash e' la stessa immagine? risposta graduale complementare, non tamper-proof Istogramma 256 livelli, luma e RGB stessa distribuzione di luce? descrive senza rivelare privacy-safe Tre domande diverse. L'integrita' resta ancorata alla prima colonna: le altre due la accompagnano.
Ogni strumento risponde a una domanda diversa. Confonderli e' l'errore piu' comune quando si discute di autenticita' di un'immagine.

Un'impronta percettiva descrive l'aspetto di un'immagine invece dei suoi byte. LOCUS ne calcola tre, tutte a 256 bit:

  • aHash — riduce l'immagine a una griglia e confronta ogni cella con la luminosita' media.
  • dHash — registra le variazioni di luminosita' tra celle adiacenti: coglie la struttura piu' che i toni assoluti.
  • pHash — lavora sulle frequenze basse dell'immagine, quelle che sopravvivono a ricompressione e ridimensionamento.

Due immagini visivamente simili producono impronte percettive vicine; la distanza si misura contando i bit diversi. Cosi' si riconosce una copia ricompressa — e si individua un ritocco localizzato, che sposta l'impronta molto piu' di una semplice ricompressione.

Un limite dichiarato apertamente: le impronte percettive non sono una garanzia d'integrita'. Non sono tamper-proof e possono collidere: immagini diverse possono produrre impronte vicine. Sono complementari, mai sostitutive dell'hash crittografico. Chi le presenta come prova di autenticita' sta forzando lo strumento oltre cio' che promette.

Dettaglio tecnico, per chi vuole ripetere il calcolo: aHash e dHash sono deterministici bit per bit su qualsiasi architettura, mentre pHash usa aritmetica in virgola mobile e va quindi confrontato con una tolleranza (LOCUS ammette fino a 16 bit di differenza su 256). E' scritto nel manifest, non e' una scoperta da fare in aula.

L'istogramma: descrivere senza rivelare

LOCUS calcola anche l'istogramma dell'immagine — la distribuzione dei valori di luminosita' e dei tre canali colore su 256 livelli. Ha una proprieta' preziosa: descrive l'immagine senza mostrarla.

Per questo, nel caso delle foto, l'istogramma e' l'unica cosa che il dispositivo trasmette al server: al posto della fotografia viaggia il suo grafico. Il contenuto della prova resta sul dispositivo, dentro il bundle. Chi verifica puo' comunque ricalcolare l'istogramma dal media e confrontarlo con quello firmato.

Il livello che quasi nessuno considera

C'e' un aspetto di onesta' tecnica che merita spazio, perche' spesso viene taciuto: la foto che esce da uno smartphone non e' il dato grezzo del sensore. E' il risultato della pipeline di fotografia computazionale del dispositivo — fusione di piu' scatti, riduzione del rumore, tone mapping, correzioni ottiche. Elaborazioni che non sono disattivabili e che avvengono prima che qualunque app possa intervenire.

LOCUS lo dichiara esplicitamente nel manifest firmato, con un oggetto che registra la sorgente di cattura, l'API usata e la natura dell'elaborazione, includendo la nota che il file non e' dato grezzo del sensore. Nel bundle convivono percio' tre livelli distinti: l'originale della fotocamera byte per byte, la sua versione decodificata usata come base per le impronte percettive, e il media autoritativo con watermark e metadati.

Dichiararlo non indebolisce la prova: la rende difendibile. Una controparte che scopre da sola che il file e' «computazionale» ha trovato una crepa; una controparte che lo legge scritto nel manifest firmato ha trovato solo trasparenza.

Che cosa si puo' affermare, alla fine

Con questa impostazione si puo' dire, e dimostrare: questo file e' identico a quello sigillato in quell'istante, e chiunque puo' verificarlo ricalcolando le impronte. Non serve fidarsi di noi, non serve un perito, non serve una connessione.

Non si puo' dire — e non lo diciamo — che la scena rappresentata sia autentica. L'integrita' del file e la veridicita' della scena sono due questioni diverse: la prima si risolve con la matematica, la seconda con il contesto e la responsabilita' di chi opera.

Continua con la catena di custodia di una prova fotografica e l'autenticita' nell'era dell'IA.