日本語

画像と写真 · 画像メタデータ プライバシー ツール

EXIF、TIFF、IFD: すべての写真に残る 1990 年代の構造

· 背景

exif ファイル形式 画像プライバシー

TIFF ヘッダーとリンクされたイメージ ファイル ディレクトリに開く JPEG APP1 セグメント
オリジナル ToolAcre ベクトル イラスト

EXIF は 1995 で公開され、そのデータ モデルを TIFF から借用しました。そのため、JPEG 内のメタデータ ブロックは、実際にはディレクトリ、タグ、オフセットを含む小さな TIFF ファイルになります。構造を理解すると、ストリッパーで何がきれいに除去できるのか、またその理由がわかります。

JPEG の中に隠れている TIFF ファイル — EXIF が他の JPEG 形式とまったく似ていない理由の謎

JPEG には、TIFF イメージでなくても、TIFF 形状のデータ構造を含めることができます。その APP1 Exif ペイロードは識別子で始まり、次に TIFF ヘッダーが続き、そのオフセットとディレクトリによってカメラ、時間、および GPS 値が構成されます。共有パーサーは、PNG eXIf および WebP EXIF チャンクにある TIFF ブロックも消費します。そのため、1 つのリーダーが 3 つのコンテナーにサービスを提供します。

リポジトリは EXIF の作成日を確立していません

ワークブックには、その起源のストーリーと年が記載されていますが、ここで使用されているリポジトリ ソースは、標準の歴史、組織、発行日を確立していません。このセクションでは、引用されていない年表を繰り返すのではなく、コード内の有用な事実を強調します。EXIF ペイロードは、ブラウザーのパーサーが画像データをデコードせずに検査できる TIFF バイト オーダー、マジック、およびディレクトリ メカニズムを使用します。

TIFF のディレクトリ モデル — ヘッダー、バイト オーダー マーカー、IFD0、およびタグ、タイプ、カウント、値またはオフセットを含む 12 バイトのエントリ

TIFF ヘッダーは、マルチバイト値がリトルエンディアンであるかビッグエンディアンであるかを示し、マジック値を保持し、IFD0 を指します。各ディレクトリはカウントで始まり、タグ、タイプ、値カウント、およびインライン データまたはオフセットのいずれかを含む固定サイズのエントリを格納します。この配置により、小さな値をエントリに配置し、長い文字列と有理数をブロック内の他の場所に置くことができます。

このパーサーが実際にたどるディレクトリ

この実装は、IFD0 に続いて、Exif ポインターと GPS ポインターに続きます。ユーザー向けの値として相互運用性ポインターを意図的にスキップし、IFD1 サムネイルを再帰的に追跡しません。完全な EXIF ディレクトリ モデルを主張するのは間違いです。これは、製品の読み取り可能な場所、ID、タイムスタンプ、ソフトウェア、および技術分野に必要な限定されたサブセットです。

タグの番号付けとデータ型 — Make が 0x010F である理由、有理数が整数のペアである理由、文字列が null バイトで終わる理由

タグはディレクトリのコンテキストで解釈される数値識別子ですが、フィールド タイプによってバイト幅とデコードが決まります。 ASCII、整数値、有理数値は異なる扱いを受けます。未知のタグは推測ではなく 16 進数でラベル付けされ、GPS ディレクトリ内の未知のタグはそのディレクトリがそのコンテキストを提供するため、位置として分類されたままになります。

今日重要な実装境界

ここでは、バージョンのタイムラインよりも運用上の境界の方が重要です。ディレクトリは 512 エントリで制限され、64 要素の値と範囲外のオフセットはスキップされます。 MakerNote の内部構造と IFD1 はデコードされません。これらの制限により、不正なブロックまたは敵対的なブロックがメタデータ ビューアを無制限のパーサーに変えることを防ぎながら、そのコンテナ ブロック全体が削除されることを許可します。

これでカバーされないもの — JPEG 圧縮自体と MakerNote のプライベート形式

JPEG リーダーは表示用に APP1 Exif のみを解析し、XMP や IPTC コンテンツは解析しません。また、サポートされていない TIFF、DNG、および RAW 画像は、関連する構造を共有しているにもかかわらず拒否されます。カラープロファイルは、クリーニング中に意図的に維持されます。したがって、このツールは、一般的な TIFF またはフォレンジック メタデータ エンジンであることを主張することなく、含まれる TIFF ディレクトリの使用を示します。

要点: EXIF は設計上自己完結型です。画像メタデータ プライバシー ツールは、画像に触れることなくディレクトリを表示し、ブロック全体を削除できます。

EXIF は、ブロック全体の検査と削除に十分な自己完結型です。コンテナ ブロックを見つけたり、サポートする境界付きディレクトリを解析したり、すべてのプライベート バイトを解析せずにブロックを削除したりできます。写真を開き、テーブル内の IFD0、Exif、および GPS フィールドを比較し、ワークフロー全体で読み取り可能範囲と削除範囲の区別を見えるようにします。