記事一覧へ戻る
プライバシー深掘り

画像カテゴリで扱う 3 種類のリスク — EXIF・顔データ・集約

GPS タグの漏洩、人物写真や未公開デザインの流出、複数枚結合による情報の増幅 — 画像処理には固有のプライバシーリスクが 3 層あります。NoSend Tools の画像カテゴリがそれぞれをブラウザ内で完結させる仕組みを、具体的なツールと実装ライブラリとともに整理します。

リスク 1 — EXIF に埋め込まれた GPS と撮影情報の漏洩

スマートフォンで撮影した JPEG ファイルには、EXIF セグメント (SOI マーカーの直後に始まる APP1 ブロック) に GPS 座標、撮影日時、カメラ機種、レンズ情報、さらに場合によってはシリアル番号が記録されています。この情報は画像を開くだけでは目に見えませんが、exiftool や画像閲覧ソフトで一瞬で読み出せます。SNS にそのままアップロードすると、サービス側がメタデータを剥いてくれる場合もありますが、剥かれる前のオリジナルが一時的にサーバーに保持されることは避けられません。

image-exif-strip は FileReader API で JPEG バイナリを読み込み、APP0 / APP1 / APP2 などのメタデータセグメントを JavaScript 側でバイトオフセットを追って除去します。再エンコードなしでメタデータだけを切り落とすため、画像品質は完全に保持されます。exif-gps-strip は同じアプローチで GPS タグ (IFD 内の GPSLatitude / GPSLongitude / GPSAltitude など) だけをピンポイントで削除し、撮影日時やカメラ情報は残します。どちらも Canvas を使わず、Web Worker で並列処理しており、データはブラウザのメモリからどこにも出ません。サーバーサイドの同等サービスでは、バイナリ全体が一度サーバーのディスクに書き込まれ、エラーログや CDN キャッシュに残るリスクが構造として存在します。

リスク 2 — 顔データと未公開ビジュアルの機微性

人物の写真に含まれる顔は、生体認証情報として扱われる法域が増えています (EU GDPR では「特別カテゴリのデータ」に該当し、同意なしの処理が原則禁止)。背景除去ツールはまさに人物の輪郭を精密に認識・切り抜く処理を行うため、その処理がサーバー上で行われる場合、顔を含む画像が外部インフラを通過することになります。

image-bg-remove は BRIA RMBG-1.4 セグメンテーションモデルを transformers.js + ONNX Runtime Web でブラウザ内推論します。モデルファイル (約 170 MB) は初回に CDN からダウンロードされてキャッシュされますが、入力画像はブラウザのメモリ内でのみ処理され、どこにも送信されません。image-watermark も同様です。製品リリース前のデザインや著作権管理中の写真に透かしを入れる作業は、その画像が最も機密性の高いタイミングで行われます。Canvas API で合成し、toBlob で出力する実装は完全にクライアントサイドで完結しており、ドラフト段階のデザインが外部のサーバーを通過しません。

リスク 3 — 複数枚の結合による情報の集約と増幅

1 枚の写真から読み取れる情報は限られていても、複数枚を組み合わせると情報量が質的に跳ね上がることがあります。旅行写真を数枚コラージュにすると、それぞれの GPS タグが示す位置情報を重ね合わせることで行動パターンが浮かび上がります。参加者のいる会議室の写真、ホワイトボードの内容、外から見えた建物 — 3 枚がひとつの画像に収まったとき、それは「機密性が 3 倍になった画像」です。

image-collage は複数の画像を Canvas で合成して 1 枚に結合するツールです。入力画像群は OffscreenCanvas 上で drawImage によって描画され、PNG / JPEG / WebP としてメモリに書き出されます。処理はすべてブラウザ内で完結し、入力ファイルも出力ファイルも外部に送信されません。サーバーサイドのコラージュサービスでは、複数のファイルをまとめてアップロードする必要があり、それぞれの機微性を掛け合わせた情報がサーバー側に集まります。ブラウザ内完結の設計は、この「集約リスク」を構造として消します。

DevTools で送信ゼロを確かめる

上記 3 つのリスクカテゴリのいずれも、対処の要点は「処理がどこで走るか」に尽きます。NoSend Tools の画像カテゴリは、FileReader API / Canvas / OffscreenCanvas / transformers.js + ONNX Runtime Web という標準的なブラウザ API とオープンソースライブラリだけで実装されており、外部エンドポイントへの fetch は一切含まれていません。

気になる場合は、いずれかの画像ツールのページで DevTools の Network タブを開き、Preserve log を有効にした状態で処理を完走させてください。送信リクエストには、HTML / JS / WASM の初回ロード分しか現れないはずです。ソースコードは GitHub の otomomik/nosend-tools で公開されているため、実装レベルで確認することもできます。EXIF 解析・背景除去・コラージュ生成 — どの処理も、あなたの画像はあなたのブラウザの外に出ません。