繁體中文

影像與照片·影像元資料隱私工具

EXIF、TIFF 和 IFD:每張照片中仍保留著 1990 年代的結構

· 背景

exif 檔案格式 影像隱私

JPEG APP1 段開啟到 TIFF 標頭和連結的圖片檔案目錄
原始 ToolAcre 向量圖

EXIF 在 1995 中發布,並借用了 TIFF 的資料模型,這就是為什麼 JPEG 內的元資料區塊實際上是一個帶有目錄、標籤和偏移量的小型 TIFF 檔案。了解其結構就可以解釋剝離器可以乾淨地去除什麼以及為什麼。

隱藏在 JPEG 中的 TIFF 檔案 — 為什麼 EXIF 看起來與 JPEG 格式的其餘部分完全不同的謎團

JPEG 可以包含 TIFF 形狀的資料結構,但不是 TIFF 影像。其 APP1 Exif 有效負載以標識符開始,然後是 TIFF 標頭,其偏移量和目錄組織相機、時間和 GPS 值。共享解析器也使用 PNG eXIf 和 WebP EXIF 區塊中找到的 TIFF 區塊,這就是為什麼一個讀取器為三個容器提供服務的原因。

儲存庫未建立 EXIF 的原始日期

此工作簿提供了起源故事和年份,但此處使用的儲存庫來源並未建立標準歷史、組織或發布日期。本節沒有重複未引用的年表,而是在程式碼中錨定了有用的事實:EXIF 有效負載使用 TIFF 位元組順序、魔術和目錄機制,瀏覽器解析器可以檢查這些機製而無需解碼圖片資料。

TIFF 的目錄模型 — 標頭、位元組順序標記、IFD0 和 12 位元組條目,包含標記、類型、計數和值或偏移量

TIFF 標頭說明多位元組值是小端還是大端,帶有一個神奇值並指向 IFD0。每個目錄都以計數開始,並儲存包含標籤、類型、值計數以及內聯資料或偏移量的固定大小條目。這種安排讓較小的值位於條目中,而較長的字串和有理數則位於區塊的其他位置。

此解析器實際遵循的目錄

此實作遵循 IFD0,然後是 Exif 和 GPS 指標。它故意跳過互通性指標作為面向使用者的值,並不會遞歸地追蹤 IFD1 縮圖。認為完整的 EXIF 目錄模型是錯誤的;它是產品的可讀位置、身分、時間戳、軟體和技術領域所需的有界子集。

標籤編號和資料類型 - 為什麼 Make 是 0x010F,為什麼有理數是整數對,以及為什麼字串以空位元組結尾

標籤是在其目錄上下文中解釋的數字標識符,而欄位類型決定位元組寬度和解碼。 ASCII、整數和有理數值受到不同的處理。未知標籤由十六進制數字標記而不是猜測,並 GPS 目錄內的任何未知標籤仍被分類為位置,因為其目錄提供了該上下文。

當今重要的實現邊界

操作邊界在這裡比版本時間軸更重要。目錄的上限為 512 條目,跳過 64 元素的值和超出範圍的偏移量。 MakerNote 內部結構和 IFD1 未解碼。這些限制可防止格式錯誤或惡意區塊將元資料檢視器轉變為無界解析器,同時仍允許刪除其整個容器區塊。

這不包含 JPEG 壓縮本身和 MakerNote 的私有格式

JPEG 閱讀器僅解析用於顯示的 APP1 Exif,而不解析 XMP 或 IPTC 內容,並儘管共享相關結構,但不支援的 TIFF、DNG 和 RAW 影像將被拒絕。清理過程中會刻意保留顏色設定檔。因此,該工具示範了包含 TIFF 目錄的使用,而無需聲稱是通用 TIFF 或取證元資料引擎。

重點:EXIF 在設計上是獨立的 — 影像元資料隱私工具可以向您顯示目錄並刪除整個區塊,而無需觸及影像

EXIF 是獨立的,足以進行整個區塊的檢查和刪除:找到容器區塊,解析您支援的有界目錄或刪除該區塊而不解析每個私有位元組。打開照片,比較表中的 IFD0、Exif 和 GPS 欄位,並在整個工作流程中保持可讀覆蓋範圍和移除覆蓋範圍之間的區別可見。