画像を公開する前に確認したいことは、本当は「何が写っているか」だけではありません。ファイルの中に、写真を見ただけでは分からない情報が同梱されているからです。撮影した緯度経度、撮影した時刻、使った端末の機種、そして画面の隅に小さく写り込んだQRコードの中身。どれも、公開してから気づいても取り返しがつきません。
プライバシーチェッカーは、この「見えない側」をまとめて洗い出すためのツールです。EXIFビューアでもなく、QRリーダーでもなく、公開直前の総点検として作られています。解析はすべてブラウザ内で行われるため、位置情報が入っているかどうかを調べるために画像をどこかへアップロードする必要がありません。これは矛盾を避けるうえで本質的な点です。プライバシーを確認するために、その画像を他人のサーバーに渡していては意味がありません。
何を検査しているか
GPS位置情報 — 座標を地図で開いて確かめられる
EXIFに緯度経度が記録されていれば検出し、値をそのまま表示します。さらに、その座標を開く地図へのリンクを生成します。「GPSタグがあります」と言われても危険度は判断できませんが、地図を開いて自宅が表示されれば一目で分かります。緯度・経度・高度に加え、南北や東西を示す参照値も検査対象です。
写真に位置情報が付くかどうかは、撮影時のカメラアプリの設定や、その画像がどういう経路を通ってきたかで変わります。「自分の端末は位置情報オフにしているはず」という思い込みが外れているケースを見つけるのが、この検査の役割です。
撮影時刻と端末情報
撮影日時、デジタル化日時、更新日時に加えて、GPS由来の日付・時刻タグも検査します。時刻は単独では無害に見えますが、複数の投稿を並べると生活パターンが読めてしまう種類の情報です。「不在の時間帯」が推測できる、という形で効いてきます。
端末やカメラの機種、レンズや撮影設定も表示します。これらは匿名で投稿しているつもりの画像同士を結びつける手掛かりになりえます。検出したEXIFは全項目をJSONとしてコピーできるので、必要なら手元に控えておくこともできます。
埋め込みサムネイル — 加工前の姿が残っていることがある
この検査がこのツールで最も見落とされやすく、そして最も影響が大きい項目です。多くのカメラは撮影時に、EXIFの中へ縮小版の画像を一緒に埋め込みます。問題は、その後で画像を切り取ったり一部を塗りつぶしたりしても、編集ソフトによってはこの埋め込みサムネイルが更新されないことです。
その場合、見えている画像では切り落としたはずの範囲や、隠したはずの部分が、サムネイルの中には元のまま残ります。つまりファイルを受け取った側は、加工前の構図を取り出せてしまいます。このツールは埋め込みサムネイルを検出するだけでなく、それを画像として表示します。見えている本画像と見比べれば、食い違いがあるかどうかを自分の目で判断できます。
なお、OFFilerの画像ツール(圧縮・リサイズ・形式変換・EXIF削除など)はキャンバスに描き直す方式なので、通した時点でEXIFごとサムネイルも失われます。この経路を通した画像でこの問題は起きません。
QRコード・バーコード — 中身まで読んで見せる
画像に写り込んだQRコードやバーコードを検出し、そこに埋め込まれている文字列そのものを表示します。背景に置いてあった配送伝票、社員証、イベントの入場券、Wi-Fi接続用のQR。人間の目には模様にしか見えないものが、読み取れば個人情報や認証情報だった、という事故を防ぐための検査です。
検出できるのはQRコードだけではありません。Code 128、Code 39、Code 93、EAN-13、EAN-8、UPC-A、UPC-E、ITF、PDF417、Data Matrix、Aztec といった形式に対応しています(ブラウザによる差は次の項で説明します)。
検出の仕組みと、ブラウザによる差
バーコード検出は2段構えで、Safari・Firefoxでは範囲が狭い
コードの検出はまず、ブラウザ自身が持つバーコード検出機能を使おうとします。Chrome、Edge、Androidのブラウザにはこれが搭載されており、前項に挙げた全形式を高速に読み取れます。
この機能が使えない環境(SafariやFirefox)では、サイトに同梱しているQRコード解析ライブラリへ自動的に切り替わります。ただしこちらはQRコードのみが対象で、バーコード類は検出できません。つまり同じ画像でも、ChromeとSafariでは検出結果が変わりえます。バーコードの写り込みまで確実に確認したい場合は、Chrome系のブラウザで実行してください。この差を書いていないツールが多いので、あえて明記しています。
画像は読み込まれるだけで、どこにも送られない
EXIFの解析、サムネイルの取り出し、コードの検出は、いずれも選んだ画像を端末のメモリ上で読むことで行われます。ファイル本体も、そこから読み取った座標や文字列も、外部のサーバーへ送信されません。地図リンクはクリックして初めて地図サービスへ移動するもので、開かなければ座標が外に出ることはありません。
画像はドラッグ&ドロップのほか、Ctrl+Vでクリップボードから直接貼り付けても検査できます。スクリーンショットを撮ってそのまま点検する、という使い方ができます。
このツールが検出できないもの
写り込んでいる内容そのものは判定できない
検査対象はファイルに含まれるデータと、機械的に読み取れるコードです。背景の表札、窓から見える景色、机の上の書類の文字、制服のロゴ、瞳に映った風景。こうした「写っているもの」から場所や個人が特定される経路は、このツールでは検出できません。最終的な判断は目視に頼る必要があります。
隠すべきものが見つかった場合は、画像マークアップで黒塗りやぼかしをかけてください。塗りつぶしは画素の上に描かれるため、画像として保存した時点で下の情報は復元できなくなります。
公開先がどう扱うかは、確認しても分からない
投稿先のサービスによっては、アップロード時にEXIFを削除する処理が入ります。しかしその挙動はサービスごとに異なり、変更されることもあり、メール添付・チャットへの直接送信・クラウドストレージでの共有・フリマアプリの出品画像など、経路によっては元のまま渡ります。
つまり「このサービスなら大丈夫らしい」に依存するのは危うい前提です。確実なのは、渡すファイル自体に何も入っていない状態にしておくことです。検査で問題が見つかったら、EXIF削除を通してから公開してください。
検査のあと、どう処理するか
仕様と制限
- 検査項目
- GPS位置情報/撮影時刻/端末・カメラ情報/埋め込みサムネイル/QR・バーコード
- GPSの確認
- 座標の表示に加え、地図で開くリンクを生成
- サムネイル
- 検出したEXIF内サムネイルを画像として表示
- コード形式
- QR/Code 128・39・93/EAN-13・8/UPC-A・E/ITF/PDF417/Data Matrix/Aztec
- ブラウザ差
- Safari・FirefoxではQRコードのみ検出(他形式は非対応)
- コードの中身
- 検出したコードに含まれる文字列を表示
- EXIFの書き出し
- 検出した全項目をJSONでコピー可
- 入力方法
- ドラッグ&ドロップ、ファイル選択、Ctrl+Vでの貼り付け
- 検出できないもの
- 画像に写り込んでいる内容そのもの
- 通信
- 画像も検出結果も送信なし。解析はすべてブラウザ内