Co se ve skutečnosti skrývá uvnitř fotografie

Otevřete jakoukoli fotografii přímo z telefonu a samotný obrázek tvoří jen část souboru. Kolem něj je zabalen blok metadat, která fotoaparát zapsal v témže okamžiku: značka a model zařízení, objektiv, nastavení expozice, přesná sekunda stisknutí spouště, verze operačního systému a — při zapnutých polohových službách — zeměpisná šířka a délka místa, kde jste stáli, obvykle s přesností na několik metrů.

Nic z toho není v samotném obrázku vidět. Všechno však putuje se souborem. Pošlete fotografii jako přílohu e-mailu, vložte ji do sdílené složky nebo s ní vystavte inzerát a každé z těchto polí jde s ní.

Nástroj výše tento blok načte a ukáže vám jej dříve, než cokoli odstraní, protože konkrétní čísla jsou tím nejlepším argumentem. Tvrzení „tato fotografie obsahuje EXIF metadata“ zní abstraktně. Dvojice souřadnic, která ukazuje přímo na vaše vchodové dveře, už nikoli.

Odstraňte bajty, nekódujte znovu

Existují dva způsoby, jak odstranit metadata z obrázku, a pouze jeden z nich je správný.

Snadný způsob spočívá ve vykreslení obrázku na HTML plátno a jeho opětovném uložení. Metadata zmizí, protože plátno žádná neneslo. Současně se však obrázek znovu zkomprimuje — proběhne druhé kolo ztrátové komprese JPEG navrch k té z fotoaparátu — a zahodí se vložený barevný profil, takže „vyčištěný“ soubor je měřitelně horší než originál a jeho barvy se posunou. Většina bezplatných nástrojů funguje tímto způsobem, což je důvod, proč má výsledný soubor často jinou velikost a mírně odlišný obraz.

Tento nástroj dělá tu druhou věc. JPEG je sekvence značkovacích segmentů; PNG je sekvence bloků; WebP je kontejner RIFF. Metadata žijí v konkrétních, identifikovatelných segmentech — bloky APPn v JPEG, bloky eXIf, tEXt, iTXt, zTXt a tIME v PNG, bloky EXIF a XMP v WebP. Jejich odstranění je otázkou procházení samotné struktury souboru, vynechání těchto bloků a zkopírování všeho ostatního beze změny.

Komprimovaný obrázek se nikdy nedešifruje. To znamená, že data obrázku ve staženém souboru jsou bit po bitu shodná s daty v souboru, který jste dodali — nikoli „vizuálně identická“, nikoli „ve vysoké kvalitě“, ale naprosto totožná. Jediným rozdílem mezi oběma soubory jsou metadata, která byla odebrána.

Co záměrně neodstraňujeme a proč

Dvě věci záměrně zachováváme a obě jsou vám zobrazeny se zaškrtávacím políčkem pro případ, že nesouhlasíte.

Barevný profil. Profil ICC popisuje, v jakém barevném prostoru jsou pixely zakódovány. Moderní telefony fotí v širokém gamutu a fotografie s širokým gamutem bez svého profilu je interpretována jako běžný sRGB a zobrazí se špatně — obvykle vybledle, někdy nepřirozeně sytě. Profil popisuje obrázek, nikoli fotografa, proto zůstává ve výchozím nastavení zachován.

Příznak otočení, pokud jej fotka potřebuje. Telefony při otočení fotoaparátu neotáčejí samotné pixely; ukládají fotografii tak, jak ji viděl snímač, a zapíší jediné číslo EXIF udávající, kterou stranou nahoru patří. Odstraňte toto číslo a čistá kopie se v každé aplikaci, která jej respektuje, zobrazí otočená na bok. Pokud na něm fotografie závisí, tento nástroj vytvoří minimální blok obsahující pouze tuto hodnotu a nic jiného — žádný fotoaparát, žádné časové razítko, žádnou polohu.

Kde to nechává vaše ostatní fotky

Vyčištění souboru před jeho odesláním řeší tu polovinu problému, která se týká sdílení. Neřeší však nic pro fotografie, které vám stále leží v galerii telefonu, kde si ponechávají každé pole, které tento nástroj právě odstranil, a jsou čitelné čímkoli, co má k zařízení přístup.

Právě pro tuto druhou polovinu existuje Vaultine: šifrovaný trezor, kde jsou soubory uzamčeny pomocí AES-256-GCM přímo na samotném zařízení, otevírány ve vestavěném prohlížeči místo dešifrování na disk a odemykány vzorem nebo kódem PIN místo účtu. Je to jiná úloha než na této stránce — Vaultine soubory ukládá, neupravuje jejich metadata — ale obojí vychází ze stejného principu: Fotografie, které sdílíte, prozrazují, kde jste byli. Fotografie, které si necháváte, by měly být uzamčené.