Análises Profundas

Metadados EXIF: um guia técnico sobre o vazamento de privacidade nas suas fotos

koboshiCo-founder
·11 min de leitura
Metadados EXIF: um guia técnico sobre o vazamento de privacidade nas suas fotos
Resumo

Toda foto de um celular ou câmera carrega um segundo arquivo dentro dela: configurações de captura, carimbos de data/hora, números de série e, muitas vezes, coordenadas de GPS. Veja a estrutura do EXIF em nível de bytes, como inspecioná-lo, como ele expõe você e como a conversão de formato o remove por completo.

Tire uma foto com um iPhone e abra o JPEG em um editor hexadecimal. Algumas centenas de bytes depois do marcador inicial FF D8, você encontra isto:

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

FF E1 é o marcador do segmento APP1. Os dois bytes seguintes são o comprimento do segmento. Depois, seis bytes formam Exif\0\0, e logo atrás deles está um cabeçalho TIFF (4D 4D 00 2A significa big-endian). Seu JPEG carrega um segundo arquivo, menor, dentro dele, que muitas vezes revela mais sobre você do que a própria imagem.

O que o EXIF realmente é

EXIF significa Exchangeable Image File Format. A JEIDA (Japan Electronic Industry Development Association) publicou a versão 1.0 em 1995. JEITA e CIPA mantêm o padrão até hoje; o EXIF 3.0 chegou em 2023.

Estruturalmente, o EXIF é um TIFF. Depois do cabeçalho Exif\0\0 vem um marcador de ordem de bytes, e em seguida uma cadeia de Image File Directories (IFDs). Cada entrada de IFD tem doze bytes:

Bytes 0-1:   ID da tag (ex. 0x010F = Make)
Bytes 2-3:   Tipo de dado (ASCII, rational, short, long)
Bytes 4-7:   Quantidade de valores
Bytes 8-11:  Valor embutido, ou um deslocamento para ele

Dois subdiretórios importam quando o assunto é privacidade. O EXIF SubIFD (apontado pela tag 0x8769) guarda configurações da câmera, números de série e carimbos de data/hora. O GPS IFD (tag 0x8825) armazena latitude e longitude como três números racionais cada: graus, minutos, segundos.

Também costuma haver uma miniatura armazenada no IFD1, um pequeno JPEG embutido nos metadados. Guarde essa informação; ela será importante mais adiante.

Quais contêineres carregam EXIF:

FormatoLocalização do EXIFObservações
JPEGSegmento APP1Onde o EXIF começou
HEICItem Exif na caixa metaPadrão do iPhone desde o iOS 11
WebPChunk EXIF dentro do VP8XOpcional, muitas vezes ausente
PNGChunk eXIfAdicionado à especificação em 2017
TIFFO próprio arquivo é TIFFO formato pai do EXIF
BMP/ICOSem suporteNenhuma estrutura de metadados

Por que as câmeras começaram a gravá-lo

O problema de meados dos anos 90 era corriqueiro e prático. Câmeras digitais produziam arquivos sem nenhum contexto. Fotógrafos de filme tinham negativos, envelopes de laboratório com datas de processamento e anotações. Quem fotografava em digital tinha um diretório cheio de arquivos DSC_0042.JPG e mais nada.

O EXIF resolveu três necessidades concretas:

  • Registros de exposição. Abertura, velocidade do obturador, ISO e distância focal, para que o fotógrafo pudesse revisar por que uma foto funcionou e repeti-la.
  • Pedidos de impressão. O DPOF (Digital Print Order Format) permitia marcar fotos na câmera e mandar imprimi-las depois em um quiosque, usando campos EXIF como rotação.
  • Orientação e pré-visualização. A tag Orientation mantém as fotos em modo retrato na vertical, e a miniatura embutida tornava rápida a navegação no LCD da câmera.

Note a premissa por baixo de tudo isso: as fotos ficam com o dono. O EXIF foi projetado para um mundo em que uma foto ia do cartão CF para o disco rígido e dali para o quiosque de impressão. Ninguém na JEIDA em 1995 planejava um mundo em que você envia uma dúzia de fotos por dia para servidores públicos.

O que realmente está lá dentro

Abra qualquer foto de celular em um leitor de metadados e a lista de tags é longa. Os campos relevantes para a privacidade:

TagValor de exemploO que revela
Make / ModelApple, iPhone 15 ProSeu hardware
BodySerialNumber / LensSerialNumberÚnico por dispositivoUma impressão digital da câmera
DateTimeOriginal + OffsetTime2026:06:30 18:42:11 +09:00Quando, com precisão de segundos
GPSLatitude / GPSLongitude37°46'29" N, 122°25'10" WOnde, com precisão de metros
GPSAltitude14,2 mQual andar, aproximadamente
SoftwareInstagram, Photoshop 26.1O que mexeu no arquivo
Artist / CopyrightTexto livreÀs vezes um nome real
Miniatura do IFD1Um segundo JPEGUma cópia da imagem não editada

Saída do exiftool de uma foto real de iPhone, abreviada por brevidade:

$ 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

Trinta segundos de leitura e um estranho sabe com o que você fotografa, quando esteve lá e onde fica esse "lá", com precisão de poucos metros.

Como ler no seu computador

Windows

Clique com o botão direito no arquivo, abra Propriedades e vá até a aba Detalhes. Fabricante, modelo, datas e coordenadas de GPS estão todos listados ali. A mesma aba tem um link "Remover Propriedades e Informações Pessoais" na parte inferior, que abre uma caixa de diálogo básica de remoção.

Para ler os dados brutos no 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()

Campos numéricos saem como bytes brutos, mas tags ASCII como Make e Software saem em texto legível.

macOS

Abra a imagem no Pré-Visualização, abra o menu Ferramentas, escolha Mostrar Inspetor e verifique as abas EXIF e GPS. A aba GPS chega a renderizar um alfinete no mapa.

No terminal, o mdls lista tudo o que o Spotlight indexou:

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

Ou instale o ExifTool com brew install exiftool para a lista completa de tags.

Linux

O ExifTool é o padrão:

exiftool IMG_4021.jpg

Alternativas mais leves: exiv2 IMG_4021.jpg, ou o identify -verbose IMG_4021.jpg | grep -i exif do ImageMagick.

No navegador, com vinte linhas de TypeScript

Encontrar o segmento APP1 por conta própria exige um loop sobre a cadeia de marcadores do 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
}

Como o EXIF vaza sua privacidade

Coordenadas de GPS revelam sua localização

Celulares gravam o GPS sempre que o app de câmera tem permissão de localização — o padrão que a maioria das pessoas aceita uma vez e depois esquece. Poste uma foto da sua varanda, da sua mesa ou do trabalho escolar do seu filho em um fórum ou anúncio de marketplace, e você publicou seu endereço com precisão de metros.

O caso famoso é o de John McAfee. Em dezembro de 2012, ele estava foragido e escondido na Guatemala. A Vice publicou uma foto dele tirada com um iPhone 4S, e os dados EXIF continham coordenadas completas de GPS. Qualquer pessoa podia ler exatamente em que ponto da Guatemala ele estava. Dias depois, ele estava sob custódia das autoridades guatemaltecas.

Números de série conectam suas contas

BodySerialNumber e LensSerialNumber são únicos por dispositivo. Duas contas anônimas postando fotos tiradas com a mesma câmera podem ser conectadas com quase certeza. Pesquisadores já varreram sites de fotos para agrupar imagens pelo número de série da câmera exatamente por isso. Você consegue separar suas identidades online. Sua câmera, não.

Carimbos de data/hora desenham sua rotina

DateTimeOriginal, mais o deslocamento de fuso horário. Sozinho, um carimbo diz pouco, mas um ano de uploads mostra quando você acorda, quando sai de casa e quando viaja.

A miniatura entrega você

A miniatura do IFD1 é um JPEG separado dentro dos metadados. Recorte um rosto ou um documento da imagem principal, e muitos editores deixam a miniatura original intacta. Quem a extrai fica com a foto sem recorte. Em 2003, uma apresentadora da TechTV postou fotos recortadas de si mesma, e leitores recuperaram os quadros completos a partir das miniaturas EXIF. A lição permaneceu porque as ferramentas continuaram cometendo o mesmo erro.

Onde o EXIF sobrevive ao upload

As grandes plataformas sociais (Facebook, Instagram, X) removem o EXIF das imagens no upload. Quase todo o resto não remove: anexos de e-mail, uploads em fóruns, anúncios de marketplace, links de compartilhamento de armazenamento em nuvem, AirDrop e qualquer mensageiro configurado para enviar em qualidade original. Se o arquivo sai do seu dispositivo sem alterações, os metadados saem junto com ele.

O que acontece quando você converte formatos

Converter uma foto não significa limpá-la automaticamente. Há dois tipos de conversores:

  1. Copiadores de metadados. Ferramentas que recodificam, mas deliberadamente carregam as tags junto: ExifTool, ffmpeg e a maioria dos conversores com interface gráfica que têm "manter metadados" como padrão. Passe um JPEG para WebP por um copiador e suas coordenadas de GPS migram intactas para o chunk EXIF do WebP.
  2. Recodificadores de pixels. Ferramentas que decodificam para pixels brutos e codificam um arquivo totalmente novo a partir deles. A saída contém apenas dados de imagem, porque os metadados nunca fizeram parte dos pixels.

Remover manualmente é um comando só, com qualquer uma das duas:

# 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

Um detalhe exige cuidado aqui: a orientação. A tag EXIF Orientation (0x0112) instrui os visualizadores a girar a imagem, geralmente em 90 graus. Remova as tags sem fixar essa rotação nos pixels, e toda foto em modo retrato sai deitada. A ordem correta é decodificar com a orientação aplicada e só então descartar os metadados. Uma ferramenta que remove sem rotacionar é pior do que não remover nada.

O que nossos conversores fazem com o EXIF

Todo conversor deste site é um recodificador de pixels. O pipeline é idêntico em todos eles:

  1. Decodificar o arquivo de origem em pixels brutos no seu navegador (uma compilação WebAssembly do libheif para HEIC, o decodificador nativo do navegador para o resto).
  2. Desenhar os pixels em um canvas, com a orientação EXIF já aplicada durante a decodificação.
  3. Codificar o canvas no formato de destino.

O arquivo de saída contém pixels comprimidos e nada mais. Sem segmento APP1, sem chunk EXIF ou eXIf, sem GPS IFD, sem números de série, sem miniatura embutida. Não existe caminho de código que copie metadados, porque não há metadados na memória para copiar. E como tudo roda no lado do cliente, o arquivo nunca sai do seu dispositivo — então nenhum servidor chega a ver o original.

Escolha seu formato de origem:

Arraste um arquivo, baixe a cópia convertida e compartilhe essa no lugar. Os pixels são idênticos; os metadados desaparecem.

A versão curta

  • Antes de compartilhar uma foto em qualquer lugar onde o EXIF sobrevive (e-mail, fóruns, marketplaces, links diretos), verifique-a primeiro. Propriedades no Windows, Inspetor no macOS, exiftool no Linux.
  • Se o arquivo carrega dados de GPS e você preferia que não carregasse, converta-o. Todas as ferramentas listadas acima geram apenas pixels.
  • Se você publica sob identidades separadas, os números de série da câmera podem conectá-las. A remoção resolve isso também.
  • Mantenha seus originais intactos. O EXIF é genuinamente útil dentro do seu próprio acervo. As cópias que você publica são as que devem estar limpas.

Mais posts do blog