EXIF ジオタグの隠れた脅威: デジタル カメラがあなたの物理的な位置を公開するしくみ
現代のスマートフォンや専用のデジタル カメラで撮影されたすべてのデジタル写真には、EXIF metadata (Exchangeable Image File Format)。 JEITA (電子情報技術産業協会) によって標準化された EXIF は、もともと、絞り、シャッター スピード、ISO 感度、レンズの焦点距離などの露出パラメータを保存することで、写真家、写真編集者、印刷研究所を支援するために設計されました。
しかし、モバイル デバイス内で GPS、Galileo、および GLONASS ナビゲーション チップセットが大量に採用されると、カメラのファームウェアが追加され始めました。正確な衛星座標 (緯度、経度、標高)directly into the image header.リビングルーム、バルコニー、または裏庭で写真を撮影すると、画像ファイルには、範囲内の正確な自宅座標が永久にスタンプされます。3~5メートル.
EXIF セグメントの技術的構造: APP1 マーカーと TIFF エンディアン
標準の JPEG 画像ファイルでは、バイナリ データは 2 バイトの画像開始マーカーで始まります。0xFFD8(SOI)。アプリケーション固有のメタデータは、次のラベルが付いた特殊なセグメントに埋め込まれます。APP0 ~ APP15。 EXIF メタデータは、APP1 マーカー (0xFFE1):
- マーカーと長さ:
0xFFE1セグメントの合計バイト サイズを宣言する 2 バイトの符号なし整数が続きます。 - ヘッダー署名:6バイトを含む
45 78 69 66 00 00— ASCII 文字列"Exif"その後に 2 つのヌルバイトが続きます。 - TIFFヘッダー:バイトオーダーを宣言する 8 バイト。最初の 2 バイトが
0x4949(Intel、リトルエンディアン、最下位バイトが最初) または0x4D4D(モトローラ、ビッグエンディアン、最上位バイトが最初)、その後に魔法の定数が続きます42(0x002A)、およびプライマリ イメージ ファイル ディレクトリ (IFD0) への 4 バイトのポインタ。 - IFD ディレクトリ:IFD0 は、次のようなセカンダリ サブディレクトリにリンクします。ExifIFD(タグ
0x8769)光学的露出メトリクス、およびGPSInfo IFD (タグ0x8825)地理位置情報の記録用。
ロスレス EXIF ストリッピングと非可逆キャンバス再圧縮
多くの基本的なオンライン ツールは、写真を HTML5 にレンダリングすることでメタデータを削除します。<canvas>要素と呼び出しcanvas.toDataURL('image/jpeg')。このメソッドはメタデータ ヘッダーを破棄しますが、画像全体に非可逆 JPEG 解凍と再エンコード パスを強制的に実行します。これにより、顕著な圧縮アーティファクト、クロマ サブサンプリングの劣化が生じ、ピクセルの輝度値が変化します。
FlashSoftさんオンラインEXIFストリッパー実行します純粋なバイナリセグメントのストリッピング生ファイルのバイトバッファ上で直接。 APP1 (EXIF/XMP)、APP2 (ICC)、APP13 (Photoshop/IPTC)、および COM マーカーを外科的に削除しますが、量子化テーブル (DQT)、ハフマン テーブル (DHT)、フレーム開始 (SOF0/SOF2)、およびスキャン開始 (SOS) エントロピー ペイロードはそのまま残します。結果としてクリーンなイメージが維持されます。100% ビットごとの光学的忠実度圧縮損失ゼロ。