Approfondimenti

Metadati EXIF: una guida tecnica alla falla per la privacy nelle tue foto

koboshiCo-founder
·11 min di lettura
Metadati EXIF: una guida tecnica alla falla per la privacy nelle tue foto
Riepilogo

Ogni foto scattata con un telefono o una fotocamera contiene un secondo file: impostazioni di scatto, timestamp, numeri di serie e spesso coordinate GPS. Ecco la struttura di EXIF a livello di byte, come ispezionarla, come ti espone e come la conversione di formato la elimina.

Scatta una foto con un iPhone e apri il JPEG in un editor esadecimale. Poche centinaia di byte dopo il marker iniziale FF D8, trovi questo:

FF E1 1C 24 45 78 69 66 00 00 4D 4D 00 2A 00 00 00 08

FF E1 è il marker del segmento APP1. I due byte successivi sono la lunghezza del segmento. Poi sei byte compongono Exif\0\0, e subito dietro si trova un'intestazione TIFF (4D 4D 00 2A significa big-endian). Il tuo JPEG trasporta al suo interno un secondo file, più piccolo, che spesso rivela di te più di quanto non faccia l'immagine stessa.

Cosa sono davvero i metadati EXIF

EXIF è l'acronimo di Exchangeable Image File Format. JEIDA (Japan Electronic Industry Development Association) ne pubblicò la versione 1.0 nel 1995. Oggi lo standard è mantenuto da JEITA e CIPA; EXIF 3.0 è arrivato nel 2023.

Strutturalmente, EXIF è un TIFF. Dopo l'intestazione Exif\0\0 c'è un marker di byte order, poi una catena di Image File Directory (IFD). Ogni voce IFD occupa dodici byte:

Bytes 0-1:   ID del tag (es. 0x010F = Make)
Bytes 2-3:   Tipo di dato (ASCII, rational, short, long)
Bytes 4-7:   Numero di valori
Bytes 8-11:  Valore inline, oppure offset verso il valore

Due sottodirectory sono rilevanti per la privacy. La SubIFD EXIF, a cui punta il tag 0x8769, contiene impostazioni della fotocamera, numeri di serie e timestamp. La GPS IFD (tag 0x8825) memorizza latitudine e longitudine come tre numeri razionali ciascuna: gradi, minuti, secondi.

Di solito in IFD1 è memorizzata anche una miniatura, un piccolo JPEG incorporato nei metadati. Tienila a mente, ci torneremo più avanti.

Quali contenitori trasportano EXIF:

FormatoPosizione EXIFNote
JPEGSegmento APP1Dove è nato EXIF
HEICElemento Exif nella meta boxPredefinito su iPhone da iOS 11
WebPChunk EXIF dentro VP8XOpzionale, spesso assente
PNGChunk eXIfAggiunto alle specifiche nel 2017
TIFFIl file stesso è TIFFIl formato da cui deriva EXIF
BMP/ICONon supportatoNessuna struttura di metadati

Perché le fotocamere hanno iniziato a scriverli

Il problema di metà anni Novanta era banale e pratico. Le fotocamere digitali producevano file senza alcun contesto. Chi fotografava a pellicola aveva negativi, buste del laboratorio con le date di sviluppo e appunti. Chi scattava in digitale aveva una directory piena di file DSC_0042.JPG e nient'altro.

EXIF rispondeva a tre esigenze concrete:

  • Registro dell'esposizione. Apertura, tempo di otturazione, ISO e lunghezza focale, così un fotografo poteva capire perché uno scatto funzionava e ripeterlo.
  • Ordini di stampa. DPOF (Digital Print Order Format) permetteva di contrassegnare le foto sulla fotocamera e farle stampare più tardi a un chiosco, usando campi EXIF come la rotazione.
  • Orientamento e anteprima. Il tag Orientation mantiene dritti gli scatti in verticale, e la miniatura incorporata rendeva veloce la navigazione sul display LCD della fotocamera.

Nota il presupposto alla base di tutto questo: le foto restano con il loro proprietario. EXIF fu progettato per un mondo in cui una foto si spostava dalla scheda CF al disco fisso al chiosco di stampa. Nessuno in JEIDA nel 1995 immaginava un mondo in cui carichi una decina di foto al giorno su server pubblici.

Cosa c'è davvero dentro

Apri una foto del telefono in un lettore di metadati e l'elenco dei tag si fa lungo. I campi che contano per la privacy:

TagValore di esempioCosa rivela
Make / ModelApple, iPhone 15 ProIl tuo hardware
BodySerialNumber / LensSerialNumberUnivoco per dispositivoUn'impronta digitale della fotocamera
DateTimeOriginal + OffsetTime2026:06:30 18:42:11 +09:00Quando, al secondo
GPSLatitude / GPSLongitude37°46'29" N, 122°25'10" WDove, entro pochi metri
GPSAltitude14,2 mQuale piano, all'incirca
SoftwareInstagram, Photoshop 26.1Cosa ha toccato il file
Artist / CopyrightTesto liberoA volte un nome vero
Miniatura IFD1Un secondo JPEGUna copia dell'immagine non modificata

Output di exiftool su una foto reale scattata con iPhone, ridotto per brevità:

$ exiftool IMG_4021.HEIC
Make                            : Apple
Camera Model Name               : iPhone 15 Pro
Serial Number                   : F2LX8A1BCD
Date/Time Original              : 2026:06:30 18:42:11
GPS Latitude                    : 37 deg 46' 29.28" N
GPS Longitude                   : 122 deg 25' 10.41" W
GPS Altitude                    : 14.2 m Above Sea Level

Trenta secondi di lettura e uno sconosciuto sa con cosa scatti, quando eri lì e dov'è quel «lì», con un margine di pochi metri.

Come leggerli sulla tua macchina

Windows

Fai clic con il tasto destro sul file, apri Proprietà e vai alla scheda Dettagli. Marca, modello, date e coordinate GPS sono tutti elencati lì. In fondo alla stessa scheda si trova il collegamento «Rimuovi proprietà e informazioni personali», che apre una finestra di dialogo con le opzioni di rimozione di base.

Per l'accesso raw in PowerShell:

Add-Type -AssemblyName System.Drawing
$img = [System.Drawing.Image]::FromFile("C:\photos\IMG_4021.jpg")
$img.PropertyItems | ForEach-Object {
    $text = [System.Text.Encoding]::ASCII.GetString($_.Value).Trim([char]0)
    "Tag 0x{0:X4} (len {1}): {2}" -f $_.Id, $_.Len, $text
}
$img.Dispose()

I campi numerici escono come byte raw, ma i tag ASCII come Make e Software si leggono senza problemi.

macOS

Apri l'immagine in Anteprima, poi Strumenti, Mostra Inspector, e controlla le schede EXIF e GPS. La scheda GPS mostra persino un pin sulla mappa.

Dal terminale, mdls elenca tutto ciò che Spotlight ha indicizzato:

mdls IMG_4021.jpg | grep -iE "gps|latitude|longitude|model"

Oppure installa ExifTool con brew install exiftool per l'elenco completo dei tag.

Linux

ExifTool è lo standard:

exiftool IMG_4021.jpg

Alternative più leggere: exiv2 IMG_4021.jpg, oppure identify -verbose IMG_4021.jpg | grep -i exif di ImageMagick.

Da un browser, con venti righe di TypeScript

Per trovare da solo il segmento APP1 serve un ciclo sulla catena dei marker JPEG:

async function findExifSegment(file: File): Promise<number> {
  const bytes = new Uint8Array(await file.slice(0, 128 * 1024).arrayBuffer())
  if (bytes[0] !== 0xff || bytes[1] !== 0xd8) return -1 // not a JPEG

  let offset = 2
  while (offset < bytes.length - 12) {
    if (bytes[offset] !== 0xff) break
    const marker = bytes[offset + 1]
    const length = (bytes[offset + 2] << 8) | bytes[offset + 3]
    if (
      marker === 0xe1 &&
      String.fromCharCode(...bytes.slice(offset + 4, offset + 10)) ===
        "Exif\0\0"
    ) {
      return offset
    }
    offset += 2 + length
  }
  return -1
}

Come EXIF espone la tua privacy

Le coordinate GPS rivelano la tua posizione

I telefoni registrano il GPS ogni volta che l'app fotocamera ha il permesso di localizzazione, un'impostazione predefinita che quasi tutti accettano una volta e poi dimenticano. Pubblica la foto del tuo balcone, della tua scrivania o del progetto scolastico di tuo figlio su un forum o in un annuncio su un marketplace, e avrai pubblicato il tuo indirizzo con una precisione di pochi metri.

Il caso più noto è quello di John McAfee. Nel dicembre 2012 era in fuga e si nascondeva in Guatemala. Vice pubblicò una sua foto scattata con un iPhone 4S, e i dati EXIF contenevano le coordinate GPS complete. Chiunque poteva leggere esattamente in che punto del Guatemala si trovasse. Pochi giorni dopo era nelle mani delle autorità guatemalteche.

I numeri di serie collegano i tuoi account

BodySerialNumber e LensSerialNumber sono univoci per dispositivo. Due account anonimi che pubblicano foto scattate con la stessa fotocamera possono essere collegati con quasi certezza. Alcuni ricercatori hanno passato al setaccio siti di foto per raggruppare le immagini in base al numero di serie della fotocamera proprio per questo motivo. Online puoi tenere separate le tue identità. La tua fotocamera non fa questa distinzione.

I timestamp delineano la tua routine

DateTimeOriginal, più l'offset del fuso orario. Da solo un timestamp dice poco, ma un anno di caricamenti mostra quando ti svegli, quando esci di casa e quando viaggi.

La miniatura ti tradisce

La miniatura IFD1 è un JPEG separato dentro i metadati. Ritaglia un volto o un documento dall'immagine principale, e molti editor lasciano la miniatura originale intatta. Chi la estrae ottiene la foto non ritagliata. Nel 2003 una conduttrice di TechTV pubblicò alcune sue foto ritagliate, e i lettori recuperarono le versioni complete dalle miniature EXIF. La lezione è rimasta attuale perché gli strumenti continuano a ripetere lo stesso errore.

Dove EXIF sopravvive al caricamento

Le grandi piattaforme social (Facebook, Instagram, X) eliminano gli EXIF dalle immagini al caricamento. Quasi tutto il resto no: allegati email, caricamenti su forum, annunci sui marketplace, link di condivisione da servizi cloud, AirDrop e qualsiasi app di messaggistica impostata per inviare in qualità originale. Se il file lascia il tuo dispositivo invariato, i metadati viaggiano con lui.

Cosa succede quando converti i formati

Convertire una foto non significa automaticamente ripulirla. I convertitori sono di due tipi:

  1. Copiatori di metadati. Strumenti che ricodificano ma portano deliberatamente i tag con sé: ExifTool, ffmpeg e la maggior parte dei convertitori con interfaccia grafica con l'opzione «mantieni metadati» predefinita. Passa un JPEG a WebP con un copiatore e le tue coordinate GPS finiscono intatte nel chunk EXIF del WebP.
  2. Ricodificatori di pixel. Strumenti che decodificano in pixel raw e codificano un file completamente nuovo a partire da quei pixel. L'output contiene solo dati immagine, perché i metadati non hanno mai fatto parte dei pixel.

Per ripulire a mano basta un comando in entrambi i casi:

# ExifTool: wipe every tag, keep the image
exiftool -all= -overwrite_original photo.jpg

# ImageMagick 7: re-encode without metadata
magick photo.jpg -strip photo-clean.jpg

Un dettaglio qui richiede attenzione: l'orientamento. Il tag EXIF Orientation (0x0112) dice ai visualizzatori di ruotare l'immagine, spesso di 90 gradi. Elimina i tag senza fissare quella rotazione nei pixel, e ogni foto in verticale uscirà ruotata di lato. L'ordine corretto è decodificare con l'orientamento applicato e poi eliminare i metadati. Uno strumento che ripulisce senza ruotare è peggio di uno che non ripulisce affatto.

Cosa fanno i nostri convertitori con EXIF

Ogni convertitore di questo sito è un ricodificatore di pixel. La pipeline è identica per tutti:

  1. Decodifica del file sorgente in pixel raw nel tuo browser (una build WebAssembly di libheif per HEIC, il decodificatore nativo del browser per il resto).
  2. Disegno dei pixel su un canvas, con l'orientamento EXIF già applicato durante la decodifica.
  3. Codifica del canvas nel formato di destinazione.

Il file di output contiene pixel compressi e nient'altro. Nessun segmento APP1, nessun chunk EXIF o eXIf, nessuna GPS IFD, nessun numero di serie, nessuna miniatura incorporata. Non esiste un percorso nel codice che copi i metadati, perché non ci sono metadati in memoria da copiare. E dato che tutto avviene lato client, il file non esce mai dal tuo dispositivo, quindi nessun server vede nemmeno l'originale.

Scegli il tuo formato sorgente:

Trascina un file dentro, scarica la copia convertita e condividi quella al posto dell'originale. I pixel sono identici; i metadati sono spariti.

La versione breve

  • Prima di condividere una foto dove gli EXIF sopravvivono (email, forum, marketplace, link diretti), controllala. Proprietà su Windows, Inspector su macOS, exiftool su Linux.
  • Se il file contiene dati GPS e preferiresti di no, convertilo. Ogni strumento collegato sopra produce solo pixel.
  • Se pubblichi con identità separate, i numeri di serie della fotocamera possono collegarle. La rimozione dei metadati risolve anche questo.
  • Conserva intatti i tuoi originali. EXIF è davvero utile nel tuo archivio personale. Le copie che pubblichi sono quelle che devono essere pulite.

Altri post del blog da leggere